1.检测是否支持pptpd: modprobe ppp-compress-18 && echo yes 返回yes则表示支持
2.检测是否开启tun: cat /dev/net/tun 如果返回cat: /dev/net/tun: File descriptor in bad state 表示支持,否则则需要手动开启
3.安装pptpd和ppp: yum -y install ppp pptpd 注:如果提示找不到pptpd 则需要手动下载: rpm -i http://poptop.sourceforge.net/yum/stable/rhel7/pptp-release-current.noarch.rpm
4.配置pptpd.conf : vim /etc/pptpd.conf , 把 localip 192.168.0.1 和 remoteip 192.168.0.234-238,192.168.0.245去掉注释, romoteip 是开放的终端内网网段,234-245之间任意选择,即便终端局域网IP是192.168.0.234也不会冲突。
5.修改DNS:vim /etc/ppp/options.pptpd 在末尾添加DNS,google的是主: ms-dns 8.8.8.8 副:ms-dns 8.8.4.4 大家可以在网上搜索一些国外的DNS,自己ping一下,看看哪一个快就是用哪一个。
6.添加账户:vim /etc/ppp/chap-secrets
#client server secret IP address
账号 pptpd 密码 * *表示分配的任意IP
7.配置sysctl.conf: vim /etc/sysctl.conf ,在末尾添加一行 net.ipv4.ip_forward = 1 ,保存, 然后使用 sysctl -p 使内核修改生效。
8.设置转发规则:
如果使用了iptables(注意关闭firewalld), 则是:
iptables -t nat -A POSTROUTING -s 192.168.0.234/24 -o eth0 -j MASQUERADE
其中,192.168.0.234/24 对应 pptpd.conf 中的 remoteip
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
如果要清空转发规则,可以使用上面的命令
然后使用 service iptables save,注意:如果是7.0,重启之后就会转发规则失效,需要写入rc.local 如下所示:
chmod +x /etc/rc.d/rc.local
vim /etc/rc.d/rc.local
将转发规则追加到最后保存退出。
开放VPN端口:
iptables -I INPUT -p tcp --dport 1723 -j ACCEPT
iptables -I INPUT -p tcp --dport 47 -j ACCEPT
iptables -I INPUT -p gre -j ACCEPT
重启pptpd ,service pptpd restart
如果使用firewalld,则是 :
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -i eth0 -p tcp --dport 1723 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter POSTROUTING 0 -t nat -o eth0 -j MASQUERADE
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i ppp+ -o eth0 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth0 -o ppp+ -j ACCEPT
重启防火墙
firewall-cmd --reload
10.设置开启自启动:
chkconfig pptpd on
大概就是这么一个过程,本人在前两年就想探索linux,但由于时间一直安排不过来,就一直搁置了,最近有空就看看,算是刚接触linux的,对于上面的内容,纯属是本人在网上找的资料和实践的结果,并没有权威一说,可能有很多错误的地方,望大神们不吝赐教,小墨十分感谢。
转发请注明出处,尊重劳动者的成果,谢谢各位。