都说基于OpenVZ虚拟技术的VPS不能安装PPTP,其实说的太绝对了,新版OpenVZ也可以支持PPTP了,当然要你的服务商给开通TUN, PPP模块。安装步骤如下:
首先要检查你的VPS是否支持PPP,使用PUTTY登录VPS,使用以下命令:
#cat /dev/ppp 结果显示- cat: /dev/ppp: No such device or address
#cat /dev/net/tun 结果显示- cat: /dev/net/tun: File descriptor in bad state
如果你的VPS测试结果和上面一样,那么恭喜你,你可以安装PPTP了。如果不一样,说明你的PPP模块和TUN未激活,要联系你的服务器商开通PPP和TUN.
现在可是安装,我的VPS系统是CentOS 5.7 x84_64,
64位版本。首先是安装PPP和IPtables两个软件,一般linux系统自带了安装包,
这里直接用yum来安装即可,输入这个命令:
yum install -y ppp iptables
下面接着下载并安装PPTP软件:
32位系统:
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.i386.rpm
rpm -ivh pptpd-1.3.4-2.rhel5.i386.rpm
64位系统:
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.x86_64.rpm
rpm -ivh pptpd-1.3.4-2.rhel5.x86_64.rpm
pptp配置,使用vi命令执行。也可以使用WinSCP登录vps后直接编辑相关文件。
vi /etc/pptpd.conf
localip 192.168.2.1
remoteip 192.168.2.2-25
解释下: localip是pptp服务器使用的ip, 可以随意指定; remoteip链接到vpn的用户分配到ip的访问, 和localip同一个网段即可. 一般可使用192.168.xx.xx, 10.10.x.x等内部IP地址。
vi /etc/ppp/options.pptpd
ms-dns 8.8.8.8
ms-dns 8.8.4.4
解释: 设置链接到vpn的用户如果访问网络时使用的dns, 和他们自己电脑与服务器设置的dns没任何关系.
vi /etc/ppp/chap-secrets
test pptpd 123456 *
解释: 这里设置vpn用户的账号、密码, 每行一个, 代表一个用户.
格式说明: 第一列为用户, 依次是 -用户名、服务器名称、密码和ip, 中间使用一个空格或者tab隔开.
用户和密码可随意, 服务器名(pptpd)不要改, 后面的*代表ip由pptpd自动分配
这时,PPTP基本上配置好了,输入service pptpd start启动。
下面来配置iptables,首先输入service iptables start启动。
然后分别输入下面四条命令,配置iptables添加转发规则,每天输完后要记得按回车:
iptables -A INPUT -p tcp ?dport 1723 -j ACCEPT iptables -A INPUT -p tcp ?dport 47 -j ACCEPT iptables -A INPUT -p gre -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT ?to-source 88.88.88.88(这里填你的公网IP,即你的VPS IP)完成后输入/etc/init.d/iptables save保存,并且输入/etc/init.d/iptables restart重新启动。这里注意:
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT
?to-source *.*.*.*
(适合于OpenVZ架构的VPS,*.*.*.*为您VPS的公网IP地址)
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j
MASQUERADE
(适合于XEN架构的VPS)
以上两条命令分别对应OpenVZ架构和XEN架构的VPS,您的VPS是什么架构需要询问供应商。
开启路由转发。因为VPN客户端在拨号后实际是通过服务器外网网卡进行数据通信的,那么要访问内网网段的地址就必须开启数据包转发,使外网网卡的数据包能够转发到内网网卡上
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 0
修改为:
net.ipv4.ip_forward = 1
# sysctl -p /etc/sysctl.conf (使修改立即生效)
如果VPN客户端能连接成功但还是不能上外网,可能是因为VPS开启了SELinux认证。对于默认开启了SELinux认证:需执行以下命令使pppd与pptp穿透SELinux
# setsebool pppd_disable_trans 1
也可关闭SELinux认证,方法:
编辑vi /etc/sysconfig/selinux文件,配置以下选项
SELINUX=disabled
如果不重启生效就执行以下命令使修改生效
# setenforce 0
如果你需要服务器启动时候自动启动VPN服务,还需要输入chkconfig pptpd on和chkconfig iptables on这两条命令。
这个时候,PPTP的VPN就已经全部配置好了,由于内容太多,就不截图了,说明已经很详细。
在Windows下新建一个VPN连接,输入服务器ip、用户名和密码,如无意外就能连上去了。如果VPN连接出现619错误,使用以下命令修复:
rm /dev/ppp