Linux搭建vpn服务器

演示中使用的是Debain系统,但思路相同,好的我们开始吧

1、安装PPTPD

1
apt-get install pptpd

2、编辑pptpd.conf

1
vim /etc/pptpd.conf

使非注释的内容如下

1
2
3
option /etc/ppp/pptpd-options
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

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

3、添加登录用户

1
vim /etc/ppp/chap-secrets

添加一行,内容如下

1
2
3
#client server secret IP addresses
#用户名 pptpd 密码 允许连接IP
test pptpd "test" *

密码用引号括起来,最后那个星号是说允许从任何IP地址连接,如果你想单独设定IP地址也可以

理论上到这里一个vpn就已经搭建完毕了。
不过你并不能通过这个来上Internet,因为所有的数据都作用于那台pptpd的服务器上, 而不会传入拨入的计算机设备上。要上Internet还需要配置iptables

4、 设置DNS解析,编辑pptpd-options

1
vim /etc/ppp/pptpd-options

名称可能会不同,具体位置在/etc/pptpd.conf18行左右

找到ms-dns,取消掉注释,并修改DNS地址
我用的是google dns,如下 :

1
2
ms-dns 8.8.8.8
ms-dns 8.8.4.4

5、 开启转发

1
vim /etc/sysctl.conf

取消如下内容行的注释

1
net.ipv4.ip_forward=1

6、打开IP转发功能

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

7、设置iptables

1
iptables -t nat -I POSTROUTING -j MASQUERADE

8、 启动服务

1
/etc/init.d/pptpd restart

VPN搭建完毕,可以尝试用客户端登录了。pptpd监听端口号为1723