A-A+

使用Ubuntu/Debian或CentOS6.x搭建PPTP VPN服务器

2017年03月01日 VPS类, 技术文章 暂无评论

VPN是虚拟专用网(Virtual Private Network)的简称,是一种利用加密的隧道协议传输数据的方式,常用于大型企业和团体的内部网络之间的通讯。常用的VPN协议有PPTP、L2TP、IPSec、IKEv1、IKEv2等。

本文就介绍一下如何在Ubuntu/Debian、CentOS 6.x上快速搭建基于PPTP协议的VPN服务器。

具体方法如下:

以下命令均以root用户执行,如需使用普通用户执行,请在每条命令前加上"sudo "即可,sudo后的空格不可省略。

1.  安装pptpd服务

2.  编辑pptpd.conf

在最后添加

3.  编辑options文件

找到

将其改为

4.  编辑chap-secrets设置VPN的用户名和密码

在最下方添加

这里的"user"是vpn连接时所需的用户名,"password"是vpn连接时所需的密码,可根据需要进行修改,引号需要保留。pptpd对应options文件中的name pptpd,两个地方一定要设置一致。如需让多个人使用vpn,可在此处添加多行进行设置。

5.  重启pptpd服务

6.  设置转发

编辑/etc/sysctl.conf文件

找到net.ipv4.ip_forward,把前头的#去掉并将其值改为1后保存并退出。

执行

看到输出的内容中有net.ipv4.ip_forward = 1就可以了。

[okbox]至此,VPN服务器已经可以正常运行,并且客户端可以访问内网资源了。[/okbox]

如果想要使客户端可以通过VPN服务器访问外网,就需要对iptables规则进行一下设置。

[warningbox]这里的192.168.0.0/24要和之前设置的remoteip对应[/warningbox]

设置过规则后,对于CentOS 6.x来说,只需用"iptables-save"来保存一下规则,下次重启服务器时规则就会自动加载。对于Ubuntu和Debian来说,还需要进行一些额外的操作,才能使iptables规则在重启后也能生效。

打开rc.local文件后,在exit 0之前添加su root -c "iptables-restore < /etc/iptables-rules",看起来像这样

[okbox]这样,我们的服务器就彻底搭建完毕[/okbox] [questionbox]如果我们是在VPS上搭建VPN,会有什么不同呢?[/questionbox]

主流的VPS构架有KVM/XEN/OpenVZ三种,对于KVM和XEN构架的VPS来说,按照上边的步骤操作,就可以把VPN搭建成功,但是对于OpenVZ来说,还需要一些额外的步骤才能把VPN搭建成功。

首先,OpenVZ构架的VPS要在先在运营商的管理后台中把TUN/TAP和PPP打开,其次,要运行两个检查

第一个检查

如果返回结果为:cat: /dev/net/tun: File descriptor in bad state 则检查通过

第二个检查

如果返回结果为:cat: /dev/ppp: No such device or address 则检查通过

这两个检查的结果如果不是如上边显示的那样,则说明不能搭建PPTP VPN,或者是TUN/TAP和PPP没有正确打开,请联系系统管理员进行确认。

两个检查的结果都通过后,就可以按照上边的搭建步骤进行VPN的搭建了,不过在设置iptables规则时,应把规则设置为

xxx.xxx.xxx.xxx是VPS的公网地址,要和localip相同。

给我留言