原文链接
安装 pptpd 服务
执行如下命令安装,遇到提示输入 Y/n 时,输入 Y 回车即可:
apt-get install pptpd
配置 pptpd
为了避免和本地网络冲突,我们创建VPN的IP范围为 192.168.10.21-192.168.10.100
执行如下命令:
echo 'localip 192.168.10.1-20' >> /etc/pptpd.confecho 'remoteip 192.168.10.21-100' >> /etc/pptpd.confecho 'ms-dns 8.8.8.8' >> /etc/ppp/pptpd-optionsecho 'ms-dns 8.8.4.4' >> /etc/ppp/pptpd-optionsecho 'nopcomp' >> /etc/ppp/pptpd-optionsecho 'noaccomp' >> /etc/ppp/pptpd-options
继续增加 pptp 用户帐号:
格式为 [UserName] pptpd [Password] * ,我们增加一个 guest 密码 为 123456 的用户如下:
echo 'guest pptpd 123456 *' >> /etc/ppp/chap-secrets
重启下pptpd:
/etc/init.d/pptpd restart
8.开启ip转发
#iptables -t nat -A POSTROUTING -s 192.168.13.0/24 -o eth0 -j MASQUERADE
完成。
注意:如果需要在 iphone 上使用,请在 iphone 的 PPTP 设置页将 "加密级别" 设置为 "最高" ,否则将无法连接上。
建立连接之后,您会发现除了可以访问服务器的资源,其余内外和互联网的内容均无法访问。如果需要访问这些内容的话,我们还需要进一步设置:
首先,开启 ipv4 forward。方法是,修改 /etc/sysctl.conf,找到类似下面的行并取消它们的注释:net.ipv4.ip_forward=1然后使新配置生效:sudo sysctl -p有些时候,经过这样设置,客户端机器就可以上网了(我在虚拟机上这样操作后就可以了)。但我在实验室的服务器上这样操作后仍然无法访问网络,这样我们就需要建立一个 NAT。这里我们使用强大的 iptables 来建立 NAT。首先,先安装 iptables:sudo apt-get intall iptables装好后,我们向 nat 表中加入一条规则:#iptables -t nat -A POSTROUTING -s 192.168.13.0/24 -o eth0 -j MASQUERADE
这样操作后,客户端机器应该就可以上网了。
但是,只是这样,iptables 的规则会在下次重启时被清除,所以我们还需要把它保存下来,方法是使用 iptables-save 命令:sudo iptables-save > /etc/iptables-rules然后修改 /etc/network/interfaces 文件,找到 eth0 那一节,在对 eth0 的设置最末尾加上下面这句:pre-up iptables-restore < /etc/iptables-rules这样当网卡 eth0 被加载的时候就会自动载入我们预先用 iptables-save 保存下的配置。到此,一个 VPN Server/Gateway 基本就算架设完毕。当然,也许你按照我的方法做了,还是无法成功,那么下面总结一些我碰到的问题和解决方案: