VPN 自动连接

VPN 自动连接

我使用 Ubuntu 13.04 和 Gnome,最近设置了一个 (open)VPN。有没有办法默认启用它?每次启动甚至断开连接时,我都必须手动启用 VPN。我是不是遗漏了某个选项?

答案1

通过网络管理器指示器 nm-applet(默认安装的 GNOME 或 Unity 网络托盘小程序),您可以配置 NetworkManager 在连接网络时自动连接到 VPN。

  1. 点击网络托盘小程序,然后单击“编辑连接...”,或运行nm-connection-editor
  2. 选择一个网络连接并点击“编辑…”
  3. 勾选“使用此连接时自动连接到VPN”,并在下拉列表中选择所需的VPN。
  4. 节省。

nm-connection-editor 截图


启用此功能后,会出现网络管理器中的错误这会破坏“自动连接到此网络”功能。(编辑:此错误现在已在 Ubuntu 16.04 中标记为“已发布修复程序”)。 如果 NetworkManager 尝试自动连接并失败,您将在 中看到如下一行/var/log/syslog

<error> [1401130450.367538] [nm-vpn-connection.c:1374] get_secrets_cb(): Failed to request VPN secrets #2: (6) No agents were available for this request.

NetworkManager 似乎无法从 获取用户的 VPN 密码gnome-keyring-daemon。一种解决方法是让 NetworkManager 将密码以明文形式存储在 中的配置文件中/etc/NetworkManager/system-connections/。具体做法如下:

  1. 打开一个终端。
  2. sudoedit /etc/NetworkManager/system-connections/<VPN>,其中<VPN>是您的 VPN 的配置文件(文件名通常是您分配给 VPN 的名称)。
  3. 将行更改password-flags=1password-flags=0
  4. 保存并退出。

NetworkManager 现在将存储 VPN 密码本身(请参阅man nm-settings详细信息),并且网络自动连接将再次工作。

答案2

看一下 vpnautoconnect。

vpnautoconnect 是一个守护进程,允许您自动重新连接(在启动时也是如此)使用网络管理器创建的 vpn。它可以非常快速地重新连接并监控带宽,它适用于 pptp 和 openvpn 连接。

欲了解更多信息或下载,请访问网站

也尝试一下这个:

使用自动启动功能/etc/default/openvpn

或者

找出您的 VPN 连接的 UUID。

nmcli con list | grep -i vpn

UUID 是第二列,包含字母、数字和破折号。

在终端中启动连接。只需按键盘上的Ctrl+ Alt+T即可打开终端。打开后,运行以下命令:

nmcli con up uuid <put you UUID here>

将其设置为在启动时运行。

转到 Dash,键入并选择启动应用程序,单击添加,然后添加上面的 nmcli 命令(带有 UUID)。单击“添加”。在名称中键入您要使用的任何名称,并在命令中输入上面的整个 nmcli 行。再次单击“添加”。现在,重新启动并尝试。

来源:SourceForge

答案3

vpnautoconnect 在 12.04 LTS 中对我来说不起作用,而且似乎我不是唯一一个遇到此问题的人。

我对其进行了一些研究,并结合了一些现有代码来制作我的第一个 bash 脚本。它检查给定的 VPN 连接是否处于活动状态,如果没有,则连接。如果已连接,它将休眠一段时间,例如 1 分钟,然后无限期重复该过程。

#! /bin/bash

while true
do
   connection="Auto Ethernet"
   vpn_connection="My VPN connection"
   run_interval="60"

   active_connection=$(nmcli dev status | grep "${connection}")
   active_vpn=$(nmcli dev status | grep "${vpn_connection}")

   if [ "${active_connection}" -a ! "${active_vpn}" ];
   then
      nmcli con up id "${vpn_connection}"
   fi

   sleep $run_interval
done

指示:

  1. 创建一个名为 vpn-auto-connector.sh 的空白文本文件(我将其保存在我的主文件夹中。右键单击文件并选择属性->权限,然后选中“允许将文件作为程序执行”。(如果您的计算机有多个用户,您可能必须将文件存储在其他位置和/或更改读/写/执行权限。)

  2. 将上面的代码复制到您创建的文件中。替换以下三个变量的值:

    连接=“自动以太网”

    vpn_connection="我的 VPN 连接"

    运行间隔=“60”

    可以通过打开网络管理器找到它们。 在我的情况下,connection="Auto Ethernet" 是我的活动有线连接(尚未使用无线进行测试),vpn_connection="My VPN connection" 是我的 VPN 连接的名称。 run_interval="60" 是重复脚本的时间间隔(以秒为单位)。

  3. 打开应用程序->系统工具->首选项->启动应用程序。添加一个合适的名称,例如“VPN 自动连接器”,对于命令,选择您之前保存的 .sh 文件。现在,bash 脚本将在启动时运行,并将继续检查 VPN 连接是否处于活动状态。您可以通过断开 VPN 连接来尝试,它应该会再次自动激活。

答案4

Vpn自动连接在 Ubuntu 12.04、13.04 和 13.10 中运行良好(我认为在 13.10 中网络管理器中的“自动连接”选项已经修复并且现在可以正常工作)

因此,如果您在安装或使用过程中遇到困难,或者在网络管理器的下拉菜单中找不到“openvpn”选项来创建开放的 vpn 连接,您可以按照本教程操作,它为您提供所有步骤,非常清晰且易于应用。

看一看这里

请让我知道 :-)

相关内容