这是一个简短的教程,目的是为了快速搭建一个可用的PPTP VPN,本文并不涉及有关VPN的正常使用内容。本简短教程基于以下硬件条件:一台安装了Debian GNU/Linux 5.0的VPS。当然理论上所有可以安装pptpd包的Linux/Unix系统都可以作为主机,教程中安装方式是基于Debian的apt-get命令,其他发行版请自行对照使用。

正文

推荐windows用户使用PuTTY连接服务器。
在Host Name处填写vps的ip地址,连接
用root跟你得到的root密码登录。
安装PPTPD

apt-get install pptpd


安装nano(如果你能够熟练的使用vi,可以省略这一步)

apt-get install nano


编辑pptpd.conf文件

nano /etc/pptpd.conf


将以下内容行的注释去掉:

option /etc/ppp/pptpd-options
localip 192.168.0.1
remoteip 192.168.0.201-245


这两句设置了当外部计算机通过pptp联接到vpn后所能拿到的ip地址范围和服务器的ip地址设置。

添加登录用户

nano /etc/ppp/chap-secrets


添加一行,内容如下

你想要的用户名 pptpd "你想要的密码" *


密码用半角双引号括起来

上面内容很好理解,最后那个星号是说允许从任何IP地址联接,如果你想单独设定IP地址也可以。

理论上到这里一个vpn就已经搭建完毕了。无论你用的是Windows还是OSX,或者是iPhone OS,都可以通过建立一个pptp链接来联入这个VPN。不过你并不能通过这个来上Internet,因为所有的数据都作用于那台pptpd的服务器上, 而不会传入拨入的计算机设备上。要上Internet还需要这么干:

设置DNS解析,编辑pptpd-options

nano /etc/ppp/pptpd-options


找到ms-dns,取消掉注释,并修改DNS地址(推荐OpenDNS或者Google DNS)

ms-dns 8.8.8.8
ms-dns 8.8.4.4


我后来发现似乎不设置DNS也可以,系统会直接使用服务器/etc/resolve.conf中的设置。

开启转发

nano /etc/sysctl.conf


取消如下内容行的注释

net.ipv4.ip_forward=1


运行下面这条命令

echo 1 > /proc/sys/net/ipv4/ip_forward


安装iptables并设置

apt-get install iptables
iptables -t nat -I POSTROUTING -j MASQUERADE


启动服务

/etc/init.d/pptpd restart


VPN搭建完毕,可以尝试用客户端登录了。注意,在ubuntu上连接VPN要把Use Point-to-Point encryption (MPPE)的选项勾上。

相关文章