How do I configure NetworkManager to connect to two separate VPN servers simultaneously?

mar*_*ltu 4 network-manager vpn openvpn 13.10

I have to connect to two OpenVPN servers at once. How do I configure NetworkManager to connect as a client to both?

           -- <OpenVPN1> -- <Resource 1>
<laptop> -
           -- <OpenVPN2> -- <Resource 2>
Run Code Online (Sandbox Code Playgroud)

c0r*_*0rp 5

我认为仅使用网络管理器是不可能的。但是你可以使用一个小技巧:

首先将您的 OpenVPN2 设置从网络管理器导出到某个文件,例如ovpn2.conf.

找到您的 OpenVPN1 连接 UUID:

nmcli con
Run Code Online (Sandbox Code Playgroud)

在下面写脚本,然后把它放在下面/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
Run Code Online (Sandbox Code Playgroud)

不要忘记给予 chmod +x /etc/NetworkManager/dispatcher.d/two_vpn

就是这样,现在你只需要连接OpenVPN1,OpenVPN2就会自动连接。此外,如果您关闭 OpenVPN1,OpenVPN2 也会关闭。

如果出现问题,请告诉我,因为我没有测试脚本