最近使用Fedora中图形界面下网络连接管理工具NetworkManager连接VPN时发现一个问题——不能同时建立两个VPN连接。在一个VPN连接已经建立的情况下,再尝试同时建立第二个VPN连接时,会导致第一个VPN连接断开的问题。经查阅相关文档发现该问题是由于NetworkManager限制了VPN连接数量导致的,NetworkManager同一时间只允许建立一个VPN连接。如何解决该问题呢?既然NetworkManager禁止同时建立两个VPN连接,我们不妨抛开NetworkManager,通过ppp来满足我们的需求。
网络拓扑:
其中VPN Server端已经配置完成,可以提供下面步骤中相关账号,连接验证方式为CHAP。
Client具体配置步骤如下:
(1)关闭NetworkManager服务,同时禁止该服务随系统启动:
[[email protected] ~]#systemctl stop NetworkManager.service [[email protected] ~]#systemctl disable NetworkManager.service
(2)安装ppp软件包:
[[email protected] ~]#yum -y install ppp
(3)修改配置文件/etc/ppp/chap-secrets,设置建立VPN连接时所需要的账号/密码信息:
[[email protected] ~]#vi /etc/ppp/chap-secrets "vpn1-user" PPTP "vpn123" * "vpn2-user" PPTP "vpn123" *
(4)在/etc/ppp/peers下创建VPN TUNNEL配置文件vpn1、vpn2
[[email protected] ~]#vi /etc/ppp/peers/vpn1 pty "pptp *.*.*.* --nolaunchpppd" #注释1 name vpn1-user #注释2 remotename PPTP #注释3 require-mppe-128 #注释4 file /etc/ppp/options.pptp ipparam vpn1 #注释5
[[email protected] ~]#vi /etc/ppp/peers/vpn2 pty "pptp *.*.*.* --nolaunchpppd" name vpn2-user remotename PPTP require-mppe-128 file /etc/ppp/options.pptp ipparam vpn2
注释1:此处"*.*.*.*“替换成VPN服务器IP(此处需要根据自己环境设置)
注释2:连接VPN所用的用户名(此处需要根据自己环境设置)
注释3:用于在/etc/ppp/chap-secrets中查找用户密码
注释4:支持MPPE(如不需要,注释掉此处设置,同时需要注释掉/etc/ppp/options.pptp中相关设置)
注释5:定义TUNNEL名称(此处需要根据自己环境设置)
NOTE:关于该文件配置详情请参考
(5)创建/etc/ppp/ip-up.local文件,该文件用于存放在建立VPN连接时自动执行的命令(如添加自定义路由)
[[email protected] ~]# vi /etc/ppp/ip-up.local #!/bin/bash route add -net 192.168.0.0/20 gw *.*.*.* #注释6 route add -net 0.0.0.0/24 gw *.*.*.* #注释7 if $? ;then route del default gw *.*.*.* #注释8 fi
注释6:此处填写第一个VPN服务器IP地址
注释7:此处填写第二个VPN服务器IP地址
注释8:此处填写本地网关IP地址
NOTE:使用该示例配置在建立VPN连接时会自动添加两条路由条目,路由条目根据实际需求设置
(6)执行命令,建立VPN连接
[[email protected] ~]# pppd call vpn1 [[email protected] ~]# pppd call vpn2
(7)断开连接
killall pppd
OK。配置结束。使用以上方法我们可以单独建立一个VPN连接,也可以同时建立两个VPN连接。
Linux(fedora)下通过ppp同时建立两个VPN连接