整个了Linode来玩玩,首选了日本节点,不过感觉还没我的香港虚拟主机快啊(题外话,呵呵),不过vps是方便很多。帮客户配了不知道多少vps,自己却还用虚拟主机,懒!
由于在安装过程中遇到了很多问题,匪夷所思,所以record下来,方便日后check。
一键安装
2016年5月17日更新:
由于之前发布的一键安装已经失效了,捉摸着弄了个新的!这个方法在网上也很流行。在我的CentOS7 64x上测试通过。
执行命令查看是否可以启用PPTP
cat /dev/net/tun #必须返回如下内容 cat: /dev/net/tun: File descriptor in bad state cat /dev/ppp #必须返回如下内容 cat: /dev/ppp: No such device or address
如果上面返回的不是这两个结果的话,请与VPS客服联系开通ppp和tun权限!
一键安装命令
cd /root wget –no-check-certificate https://raw.githubusercontent.com/teddysun/across/master/pptp.sh chmod +x pptp.sh ./pptp.sh
稍等片刻,执行完毕后会返回以下信息:
VPN service installed successfully, your VPN username is vpn, VPN password is XXXXXX 。
已经成功了,账号和密码在里面。用户和密码在这里修改:
/etc/ppp/chap-secrets
当然,你得确保防火墙没有封掉以下端口:
47(GRE)、53(DNS)、68(DHCP)、1723(PPTP)
如果VPN上去之后上不了外网,指执行下:
iptables -t nat -A POSTROUTING -j MASQUERADE
对于有学术性研究和受虐倾向的朋友,可以往下看,反正我是被虐得体无完肤,也总算是写完了。
自虐式完整安装
资源列表
在下文中将会使用到一些文件,集中在这里发布。
ppp和pptpd全版本下载Link(无需翻墙),如果在这里面没有你需要的,同样可以在这里(需要翻墙)找,有这2个就够了。
yum install perl ppp iptables
这是彼此依赖的关系,都装。
32位下载:
wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm
64位下载:
wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm
进行安装:
rpm -ivh pptpd-1.3.4-2.rhel5.x86_64.rpm
如果出现类似错误:
warning: pptpd-1.3.4-2.rhel5.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 862acc42: NOKEY error: Failed dependencies: ppp = 2.4.4 is needed by pptpd-1.3.4-2.rhel5.x86_64
原因是pptpd与PPP不兼容,下载pptpd-1.3.4-2.el6.x86_64.rpm安装即可,可以在上方的“资源列表”中找到。
修改配置:
编辑PPTP配置文件 /etc/ppp/options.pptpd 如内容下(你可以先备份下源文件,但是这份配置没有问题的)。
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
idle 2592000
ms-dns 8.8.8.8
ms-dns 8.8.4.4
编辑配置文件 /etc/pptpd.conf ,内容如下。
option /etc/ppp/options.pptpd logwtmp localip 192.168.254.1 remoteip 192.168.254.100-254
其中localip与remoteip定义了客户端连接VPN服务器后被分配到的内网IP地址,可根据需要自己修改。
现在对用户认证文件 /etc/ppp/chap-secrets 进行配置,内容如下:
konakona_vpn pptpd mypwd *
konakona_vpn和mypwd就是登录的vpn帐号和vpn密码。
将 /etc/sysctl.conf 文件中net.ipv4.ip_forward设置为 1 (如果没有,则按照格式新建一行):
net.ipv4.ip_forward = 1
保存,退出,执行一下代码使其生效。
/sbin/sysctl -p
设置IPTABLES进行转发。
/etc/init.d/iptables start /sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.254.0/24 -j MASQUERADE /etc/init.d/iptables save /etc/init.d/iptables restart
注意,上面的192.168.254.0应该与之前设置的网段对应。
特别说明一下:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 12.34.56.78
适合于OpenVZ架构的VPS,12.34.56.78为您VPS的公网IP地址。
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
适合于XEN架构的VPS,因此Linode适用。
然后设置为开机启动。
chkconfig pptpd on chkconfig iptables on
重启后即可使用VPN。如果重启服务器后,无法连接VPN,首先检查服务器的PPTP服务1723端口是否已打开(注意设置防火墙允许此端口);如果可以连接VPN,但是无法正常上网,则检查iptables是否正常转发。
service iptables status
看似复杂,其实照着流程走,不会有太大问题,除非ppp和pptpd的版本对不上,以及防火墙问题。
附赠另一个精简版教程:戳这里。
发表评论