有些时候我们需要使用 VPN 服务器作为网关接入 Internet。下面我们来说一下服务器端(Linux)和客户端具体如何配置。
服务器端
服务器端我们以 Ubuntu 操作系统为例,其它发行版也都类似。
安装PPTP服务器软件
$ sudo apt-get install pptpd
配置服务器端
设置 localip 和 remoteip。
$ sudo vim /etc/pptpd.conf
# (Recommended)
localip 192.168.10.1 # VPN 连接后的服务器(网关)地址
remoteip 192.168.10.2-200 # VPN连接后给客户端分配的地址段
设置账号
sudo vim /etc/ppp/chap-secrets
"username" pptpd "password" "*" # username (用户名) password(密码)
配置防火墙(iptables) 放行 VPN 数据包
PPTP 使用 1723 端口和编号为47的IP协议(GRE常规路由封装),我们需要让防火墙里放行。
$ sudo iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
$ sudo iptables -A INPUT -p gre -j ACCEPT
启动内核转发数据包
$ sudo sysctl net.ipv4.ip_forward=1
写入配置文件,每次启动都生效。
$ sudo vim /etc/sysctl.conf
net.ipv4.ip_forward=1
配置防火墙(iptables)使用NAT
在这个例子里,服务器接入 Internet 的网络接口是 eth0,需要根据自己的实际需要修改。
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
写入脚本,每次启动都生效。
$ sudo vim /etc/rc.local
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
exit 0
客户端
Windows
在“控制面板”里打开“网络连接”
在“网络连接”的“文件”菜单里选择“新建连接”
下一步,选择如下图
下一步,选择如下图
下一步,输入“名称”
下一步,输入服务器“地址”或“域名”
下一步,完成。
这时的连接还不可以直接连接,还需要设置DNS服务器地址。
打开新建的VPN连接的“属性”,转到“网络”面页
打开“TCP/IP协议”的“属性”,设置“DNS服务器”
现在就可以打开新建的VPN连接,输入“用户名”和“密码”连接了。
Linux
Linux 客户端也是差不多的设置,同样需要设置DNS服务器。
具体见 如何使用 Ubuntu VPN