pptp设置及局部vpn(及vpn下ssh无法访问远程主机的问题解决)

 一、安装pptp服务

sudo apt-get install -y ppp pptpd
sudo vim /etc/pptpd.conf
修改:
option /etc/ppp/pptpd-options
localip 172.31.26.19  (本地vpn地址)
remoteip 172.31.26.20-200  (vpn客户点地址范围)

建立vpn账号
sudo vim /etc/ppp/chap-secrets
添加一个名为test 服务为pptpd 密码为123456 兵允许所有IP地址登陆:
test    pptpd    123456    *

关于重启服务,如果sudo service pptpd stop无法停止则使用killall pptpd来关闭服务
然后用sudo service pptpd start来启动
sudo netstat -apnl | grep pptp
如果看到1723端口则说明pptpd服务启动成功,当然在外部的防火墙要开通1723端口的访问权限

下面开始设置转发,否则VPN客户端是无法访问外网的
sudo vim /etc/sysctl.conf
net.ipv4.ip_forward=1

sysctl -p 刷新

设置iptables转发
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

并在/etc/rc.local中添加这一条,以防止重启后失效

关于客户端741错误请参考:http://bbs.aliyun.com/read/161352.html


二、关于局部vpn的设置如下:
1.设置vpn连接属性—网络—TCP/IP协议—高级 取消“在远程网络上使用默认网关”
如此即使连接上VPN 全局数据依然走的是本地网络。
2.设置本地路由表
以单ip 8.8.8.8为列:
route -p add 8.8.8.8 mask 255.255.255.255 172.31.26.19

这样设置后只要访问8.8.8.8这个ip 那么所有数据都会从172.31.26.19这个vpn的网关来走
而其他的ip则不受影响
删除的方法:
route delete 8.8.8.8


【关于连接VPN后 ssh无法连接linux的问题】
PPTPD默认的MTU太大,导致链路上有些设备堵塞。

解决思路就是把MTU改小些,方法大概有三种:

一、如果开启了iptables的(验证过可行)

iptables -A FORWARD -p tcp --syn -s 10.0.0.0/24 -j TCPMSS --set-mss 1356 
其中粗体部分换上你的pptp client的IP段

二 、在 /etc/ppp/ip-up 中,exit 0行前添加 (验证过可行)

ifconfig $1 mtu 1356

看到ip-up中有一行: 
[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local "$@" 
所以也在 ip-up.local文件中添加ifconfig $1 mtu 1356也同效。

三、在PPTPD配置文件中设置:

打开/etc/ppp/options.pptpd 
在文件最后添加 mtu1356

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。