至于为什么要搭建,这个就不好说明了,都懂得,总之可以说是突然来了兴趣,每天晚上抽半小时研究,三天才弄好啊!
主要是掉进了一个坑里没出来……其实搭建还是很简单的,我也就记录一下简单的搭建方法,避免日后再进坑
使用的是腾讯云的云主机,毕竟是练手嘛….CentOS7.2 的系统
或者你可以使用一键安装脚本,比如:https://github.com/userrory/centos7-pptp
检查是否支持
终端输入:modprobe ppp-compress-18 && echo yes
返回 yes 表示支持 pptp
若你使用 XEN 架构的 VPS,下面的步骤不用执行 ,腾讯云是 XEN ….
检测PPP是否开启:cat /dev/ppp
开启成功的标志:cat: /dev/ppp: No such file or directory
或者 cat: /dev/ppp: No such device or address
,可以继续
安装组件
运行下面的命令安装 iptables、ppp、pptpd :yum install ppp iptables pptpd
没什么好说的,如果没有那就尝试换个源或者用 rpm 包。
补充
官方如果没有提供可以先安装 epel 源:
1 | yum install epel-release |
可用性自行测试
在 CentOS 6 X64 上可以用:
1 | rpm -i http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm |
没测试过,不知道能不能用
配置组件
编辑pptpd.conf
编辑 pptpd.conf 这个文件:vim /etc/pptpd.conf
找到下面的两行,并且去掉注释:
1 | localip 192.168.0.1 |
第一行的意思是VPN连接成功后,VPN server(就是你启动 pptpd 服务)的地址,就是说通过这个地址来找到 VPN server。
第二行是分配给客户端的 ip 范围。
remoteip最好不用和VPN client本身所在的局域网的ip冲突,默认即可
编辑options.pptpd
终端输入:vim /etc/ppp/options.pptpd
其他的一般保持默认即可,主要是设置下 DNS:
1 | ms-dns 8.8.8.8 |
同样是去掉注释,然后修改,一般设置个 DNS 就可以了,或者根据需要设置其他,给个栗子:
1 | name pptpd #自行设定的VPN服务器的名字,可以任意 |
其实大部分默认都给配置好了
设置账号密码
终端输入: vim /etc/ppp/chap-secrets
格式上面有提示,就是:用户名 pptpd 密码 *
*
表示的是随机分配 ip
修改内核
输入:vim /etc/sysctl.conf
如果没有这个文件就自己创建一个吧,在文件的最后写入一行:net.ipv4.ip_forward=1
这条命令的意思是使内核支持转发,还需要下面一条命令来使修改生效:sysctl -p
添加转发规则
XEN架构:iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
OpenVZ架构:iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source VPS公网IP
腾讯云是 XEN 架构,阿里云是 OpenVZ
但是添加转发规则后重启就会失效,Centos 6 系统可以使用 service iptables save
保存配置,但 Centos 7 不支持,我们需要将配置写入 rc.local 文件中,开机自动设置:
1 | chmod +x /etc/rc.d/rc.local |
编辑 rc.local 文件在最后写入上面的转发规则就可以了
补充
可以使用 iptables -X -t nat
清除转发规则(iptables -F
);iptables -t nat -L
可以查看 NAT 表是否已经生效
1 | 带行号查看当前所有规则 |
这应该很全了,ipdables 配置文件位于 /etc/sysconfig/iptables
启动服务
关于启动服务的命令,网上有几种,用 /etc/init.d/pptpd start
、用 service pptpd start
….
我测试是都不行,在 centOS 7+ 中,他会提示让你使用 systemctl ,所以启动应该是:systemctl start pptpd
下面的命令应该会让 pptpd 开机启动(未测试):systemctl enabled pptpd
连不上VPN
检查是否开放了 1723 端口,一般是因为这个原因吧,其他错误见参考的连接
查看VPS的架构
首先安装一个软件:yum install virt-what
装好后使用命令 virt-what
即可查看 linux 下 VPS 的架构了
打不开网页
这真是个坑,我搞了好长时间,原来是 MTU 的原因,值太小了!
可以在服务器端使用:ifconfig ppp0 mtu 1472
设置,但是这样不持久。
阿里云、腾讯云设置 MTU :vim /etc/ppp/ip-up
在 exit 0 前写入 : ifconfig $1 mtu 1500
这样就解决无法访问网页的问题了!
主要就是 MTU,具体的原因参考:http://blog.sandy1890.com/2016/10/23/pptpd_iptables/
关于这个深深感到知识不够,看不明白,等以后在来补充吧
MAC 系统需要设置下网卡:wifi—>高级—->硬件—->默认是1500,修改为1472
参考
http://www.jianshu.com/p/12f7b66d1cab
http://www.wanghailin.cn/centos-7-pptp/
http://blog.sandy1890.com/2016/10/23/pptpd_iptables/
评论框加载失败,无法访问 Disqus
你可能需要魔法上网~~