Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
SgrAlpha edited this page Oct 3, 2019 · 19 revisions

如何使用 Ubuntu 搭建软路由透明代理服务器

目的

搭建透明代理服务器的目的,主要是希望用它作为跳板(jumpbox),为内网的机器提供代理服务,同时解决潜在的DNS污染问题,这样内网的机器无需任何配置即可实现访问真・外网。

原理

利用一台有两张网卡的机器,一张用于访问外网,一张用于内网,在上面假设DNS服务,并利用iptables将流量转发到外部代理上。

准备工作

  • 硬件
    • 光猫,主要用于PPPoE拨号访问外网,不是光纤的话普通的也可以。
    • 一台有两张网卡的机器,可以是小主机,也可以是其他闲置的旧电脑。笔者使用的是一台2011年的Mac Mini主机,Intel i5 2.3GHz + 8G 内存,其优点是性能其他路由,个头小,几乎可以放在任何地方,自带一个千兆网口和一个Thundbolt口,可以通过转接器扩展为两个千兆网口。
    • 内网交换机/有线路由器/无线路由,任意一个即可。
    • 内网主工作站,笔记本或者台式机一台。
    • 六类网线若干
  • 软件

网络拓扑

  • 跳板机用于访问外网的网口 -> 光猫的LAN口(注意区分百兆口和千兆口,优先使用千兆口)。
  • 跳板机用于内网的的网口 -> 内网交换机/有线路由器/无线路由的WAN口。

跳板机网络配置

这部分需要在跳板机的命令行里进行操作,后面以 Ubuntu Server 18.04 为例,低版本或者桌面版可能会有些许不同,但基本原理类似。

配置IP

运行 ifconfig -a 查看网卡信息,应该会看到三个或者以上的网卡,名称可能会不同,需要自行区分:

  • enp2s0f0,这是连接光猫的网卡,视为外网网卡
  • ens9,另一块网卡,视为内网网卡
  • lo,本地

在新的 Ubuntu Server 18.04 TLS 中,控制网络组件是一个叫做netplan的东西,与之前大家熟悉的直接编辑/etc/network/interfaces不太一样。其配置文件在 /etc/netplan/ 目录下,通常以数字开头,数字越大权重越大。全新安装的系统通常是有一个配置文件,可以使用:

sudo ls /etc/netplan/

列出所有的配置文件,找其中最大的一个编辑,我这里是50-cloud-init.yaml

sudo vi /etc/netplan/50-cloud-init.yaml

将其中的内容替换成:

network:
 ethernets:
 enp2s0f0:
 dhcp4: yes
 ens9:
 dhcp4: no
 addresses: [192.168.3.1/24, ]
 version: 2

其中对于外网网卡 enp2s0f0 我们使用了DHCP,接受由光猫动态分配的地址;而对于内网网卡 ens9 我们给他分配了一个静态的地址 192.168.3.1,这个地址将会成为内网机器的DHCP服务器地址、网关以及DNS服务器地址。保存之后运行下面的命令可以让配置马上生效:

sudo netplan apply

成功之后可以再运行 ifconfig -a 检查是否配置正确。

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /