在Ubuntu GNOME 16.04中使用特定网络时自动连接到VPN


12

在Unity下,Network Manger的每个连接都有一个复选框,用于配置连接处于活动状态时自动使用VPN:

Ubuntu 16.06 Unity中的连接设置图片

在Ubuntu GNOME 16.04中有没有办法获得这样的选项?(使用GNOME 3.18)。由于连接设置页面缺少此选项: 在此处输入图片说明


欢迎来到Ask Ubuntu!该答案表明它们都共享相同的NetworkManager。你能再检查一遍吗?如果它们不同,是否还可以在Ubuntu GNOME下包含NetworkManager的屏幕截图?
Andrea Lazzarotto


@AndreaLazzarotto谢谢!我提供了屏幕截图。我将尝试在本问题中建议的vpnautoconnect 来查看其是否有效。但是我不知道该设置是否可以在Network Manger本身中激活,因为正如您所说的,这两种风格都是相同的Network Manger。
S.Mohsen 2013年

在Ubuntu 17.04中似乎仍然缺少此功能。我不清楚为什么会删除它。在寻找解决方案并发现很少的结果之后,越来越多的人不使用VPN而是偏爱自动连接功能,这似乎很奇怪。
Rsync

如果您的系统有一个/etc/NetworkManager/system-connections填充有连接配置文件的目录,并且您不必介意编辑配置,那么可能值得检查一下我在其他地方发布的有关给定网络接口自动连接到VPN 的答案
S0AndS0

Answers:


22

我找到了答案。奇怪的是,您必须手动打开Network Manager(与使用面板或设置相反)。

所以在Terminal输入nm-connection-editor。这样做之后,打开的窗口将在OP的第一个映像中具有选项。

这适用于我在16.04和17.04。希望他们将在即将发布的GNOME版本中集成各种网络管理器。


这对我来说也适用于18.04-谢谢!目前尚不清楚这些设置在哪里。
JohnnyCoder

也适用于Debian 9 Stretch。谢谢!
Christian Toffolo

1

我用一个脚本解决了这个问题

/etc/NetworkManager/dispatcher.d

每当网络状态发生变化时,此文件夹都包含由网络管理器按字母顺序调用的脚本。这样做的优点是(与我看到的另一个解决方案不同)您的VPN不仅在启动/启动时被激活,而且在挂起/休眠后也可以在恢复时激活。

为此,您需要在网络管理器中已经建立的VPN连接,我认为您已经建立了此连接,否则您不会问这个问题。

  1. 第一步:我遵循了此(德语)页面(https://wiki.ubuntuusers.de/NetworkManager/Dispatcher/)的建议。我打开并命名了一个新脚本02VPN1

    sudo YOURTEXTEDITOR /etc/NetworkManager/dispatcher.d/02VPN1
    

并写道:

    #!/bin/bash
    VPN_CONNECTION_NAME="NAME_OF_YOUR_VPN_CONNECTION"
    if [ "$2" = "up" ]; then
       sleep "3s"
       nmcli con up id "${VPN_CONNECTION_NAME}"
    fi

NAME_OF_YOUR_VPN_CONNECTION是用于设置要自动建立连接的连接文件NAME_OF_YOUR_VPN_CONNECTION.conf的名称。

如果条件为[“ $ 2” =“ up”],则表示仅当您开始网络连接(您的Internet连接)时,VPN连接才自动连接到;VPN服务运行后,您可以将其禁用或选择其他VPN。

如果仅您每次都希望运行此VPN而没有禁用它的能力,则可以编写不具有以下If-condition的脚本:

    #!/bin/bash
    VPN_CONNECTION_NAME="NAME_OF_YOUR_VPN_CONNECTION"
    sleep "3s"
    nmcli con up id "${VPN_CONNECTION_NAME}"

您只能将此文件设置为root用户,因此该文件归root用户所有,无需执行任何其他操作。那是应该的。

最后:使该文件可执行,否则脚本将无法运行。在终端:

    sudo chmod +x  /etc/NetworkManager/dispatcher.d/02VPN1
  1. 第二步(与以上链接中的说明不同;我从此处使用了建议:https : //ubuntuforums.org/showthread.php?t=2193559&p=12990193#post12990193

此过程由root运行,并且root尚未访问您用于VPN的密码。请执行以下操作:以root身份打开/ etc / NetworkManager / system-connections中的文件NAME_OF_YOUR_VPN_CONNECTION。打开终端并执行以下操作:

    sudo YOURTEXTEDITOR /etc/NetworkManager/system-connections/NAME_OF_YOUR_VPN_CONNECTION

a)换行

    password-flags=1 

    password-flags=0

b)在底部添加

    [vpn-secrets]
    password=PASSWORDOFYOURCONNECTION

保存并关闭文件。

  1. 现在,重新启动网络管理器。终奌站:

    systemctl restart NetworkManager
    

初始化新设置。你应该做的。

我昨天做了这个,据我所知它工作正常。没有保证!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.