![如何配置 NetworkManager 以同时连接到两个独立的 VPN 服务器?](https://linux22.com/image/1044364/%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%20NetworkManager%20%E4%BB%A5%E5%90%8C%E6%97%B6%E8%BF%9E%E6%8E%A5%E5%88%B0%E4%B8%A4%E4%B8%AA%E7%8B%AC%E7%AB%8B%E7%9A%84%20VPN%20%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
我必须同时连接两个 OpenVPN 服务器。如何配置 NetworkManager 以作为客户端同时连接这两个服务器?
-- <OpenVPN1> -- <Resource 1>
<laptop> -
-- <OpenVPN2> -- <Resource 2>
答案1
我认为仅使用网络管理器是不可能的。但你可以使用一个小技巧:
首先将您的 OpenVPN2 设置从网络管理器导出到某个文件,比如说ovpn2.conf
。
查找您的 OpenVPN1 连接 UUID:
nmcli con
在下面写脚本,然后将其放在下面/etc/NetworkManager/dispatcher.d/
,比如two_vpn
#!/bin/sh
VPN_UUID=84d61cf6-6f51-4f84-93fb-df3c458db6d6
CONF_FILE=path/to/ovpn2.conf
interface=$1 status=$2
case $status in
up|vpn-up)
if [ $VPN_UUID == $CONNECTION_UUID ]; then
# connect your second OpenVPN2 using .conf file:
openvpn --config $CONF_FILE
fi
;;
down| vpn-down)
if [ $VPN_UUID == $CONNECTION_UUID ]; then
# close your second OpenVPN2
pid=$(ps -ef | grep "[o]penvpn --config $CONF_FILE" | awk '{ print $2 }')
kill $pid > /dev/null 2>&1
fi
;;
esac
别忘了给chmod +x /etc/NetworkManager/dispatcher.d/two_vpn
就这样,现在你只需要连接OpenVPN1,OpenVPN2就会自动连接。另外,如果你关闭OpenVPN1,OpenVPN2也会关闭。
如果出现问题,请告诉我,因为我没有测试脚本