Fedora 安装pptp vpn
使用NetWorkManger图形界面,可以简单地配置pptp vpn,但是有几个地方不是特别满意
- 操作繁琐,需要多次点击鼠标
- 拨号后全局生效,要设置路由
- 可以配置的参数不是特别多
- 不是通用的方法,在终端中使用不方便
- 还是比较习惯命令行操作
基于上面几个原因折腾了一下pppd,用了一段时间非常不错,很稳定,在这里记录配置的方法。使用pppd的方法应该可以在其他Linux的发行版上正常使用,配置文件的路径或许有稍许差别。
pppd是Point-to-Point Protocol Daemon的缩写,pppd 的源代码托管在GitHub上 https://github.com/paulusmack/ppp 可以访问 pppd 的官方网站获取更多信息 https://ppp.samba.org/pppd.html
安装所需要的软件
首先需要看看哪个包提供了pppd,执行下面的命令
1 | # yum whatprovides pppd |
1 | ppp-2.4.5-33.fc20.x86_64 : The Point-to-Point Protocol daemon |
安装pppd
1 | # yum install ppp-2.4.5-33.fc20.x86_64 |
保证pppd版本高于2.4.2,然后开始修改配置文件。
设置用户名密码
1 | > vi /etc/ppp/chap-secrets |
user1 vpn用户名
PPTP 后面的文件需要用到,和用户名密码相对应
password123 vpn密码
创建vpn profile
1 | > vi /etc/ppp/peers/vpn |
连接vpn
1 | > sudo pppd call vpn |
断开vpn
1 | > sudo killall pppd |
设置路由
成功连接vpn后,发现访问不了需要访问的10.6网段,使用route命令查看路由情况
1 | > route -n |
因为需要访问10.6网段,需要添加下面的路由
1 | > sudo route add -net 10.6.0.0/16 gw 10.58.*.* dev ppp0 |
其中10.58.*.*为拨vpn后分配给你的IP地址,这里就有一个问题,每次连接后都需要重新设置路由,比较麻烦,摸索了一翻发现ip-up.local和ip-down.local可以解决这个问题,每次连接成功后会执行ip-up.local脚本,每次断开连接时会执行ip-down.local脚本。我们只要编写这两个脚本就可以自动设置路由,完全自动化,Cool !
1 | > sudo vi /etc/ppp/ip-up.local |
重新连接vpn,查看路由情况:
1 | > sudo pppd call vpn |
1 | Kernel IP routing table |
已经自动添加10.6.0.0的路由了。
1 | > sudo killall pppd |
提升速度
连接上vpn后发现速度很慢,经过研究 novj 选项可以大幅提高速度。
1 | novj Disable Van Jacobson style TCP/IP header compression in both the transmit and the receive direction. |
编辑 /etc/ppp/options.pptp 添加以下行
1 | novj |
保持长时间在线
后面还发现一个问题,一段时间不用就自动断开连接了,发现lcp-echo-interval 可以缓解这个问题。
编辑 /etc/ppp/options.pptp 添加以下行
1 | lcp-echo-interval 30 |
Example Config file
最终使用的配置如下:/etc/ppp/options.pptp
1 | lock |
参考链接
http://shyju.wordpress.com/2013/08/13/linux-as-a-pptp-vpn-client-configuration-centosfedora/
http://www.cyberciti.biz/tips/howto-configure-ubuntu-fedora-linux-pptp-client.html
http://pptpclient.sourceforge.net/
https://ppp.samba.org/index.html