12VPX
Wireguard与Network Manager

Wireguard与Network Manager

要求

  • 基本的命令行知识。
  • 安装有 Network Manager 1.16 或更高版本的 Linux 发行版。

注意

Network Manager 将 Wireguard 连接视为本机网络连接。它们不会显示在 VPN 连接列表中。如果您需要在 VPN 连接列表中显示,请改用 OpenVPN 或 StrongSWAN。

版本检查

我们先检查一下是否安装了 Network Manager 1.16 或更高版本:

❯ nmcli -v
nmcli tool, version 1.22.10

Wireguard 配置

下载我们的 wireguard_servers.zip

解压缩 ZIP 文件:

❯ unzip wireguard-servers.zip 
Archive:  wireguard-servers.zip
  inflating: AT Vienna 2020-05-12.conf  
  inflating: AU Sydney 2020-05-12.conf  
  inflating: AU Sydney 3 2020-05-12.conf  
... etc.

导入 Wireguard 配置

Network Manager 要求文件名必须是有效的 Wireguard 接口名称。例如:wg0.conf、wg1.conf、...、wg1000.conf。

让我们导入 AT Vienna 的 Wireguard 配置:

❯ mv AT\ Vienna\ 2020-05-12.conf vienna-wg0.conf

❯ nmcli connection import type wireguard file vienna-wg0.conf
Connection 'vienna-wg0' (5b56bced-f8cc-49d3-8537-207f279fd6dc) successfully added.

注意:此时不要导入多个配置。您将在下一步中明白原因。

连接/断开连接

在导入连接之后,Network Manager 会立即连接到 VPN。

要断开 VPN 连接:

❯ nmcli connection down vienna-wg0
Connection 'vienna-wg0' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/25)

要再次连接到 VPN:

❯ nmcli connection up vienna-wg0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/27)

删除连接

我们建议您删除未使用、旧的或冗余的 Wireguard 接口:

❯ nmcli connection show
NAME                         UUID                                  TYPE       DEVICE     
Wired connection 1           dd530962-d349-353f-abaa-a81595677d23  ethernet   enp4s0     
vienna-wg0                   8d752c4d-a7f4-4def-bbb3-bad23e3c8bb8  wireguard  vienna-wg0 

❯ nmcli connection delete vienna-wg0
Connection 'vienna-wg0' (8d752c4d-a7f4-4def-bbb3-bad23e3c8bb8) successfully deleted.

❯ nmcli connection show
NAME                         UUID                                  TYPE       DEVICE     
Wired connection 1           dd530962-d349-353f-abaa-a81595677d23  ethernet   enp4s0

推荐:自动设置路由

在大多数情况下,您希望将所有流量路由到 VPN。您可以通过启用 auto-default-route 选项来让 NetworkManager 自动处理这个问题:

❯ nmcli connection modify vienna-wg0 wireguard.ip4-auto-default-route true

然后(重新)连接到 VPN。

连接详细信息

可选

每个连接都有一些可以更改的属性。

让我们看看我们有哪些选项:

❯ nmcli connection show vienna-wg0
connection.id:                          AT Vienna
connection.uuid:                        b6b3f8b2-5e4f-4adf-b95c-311b29c87fc1
connection.stable-id:                   --
connection.type:                        vpn
connection.interface-name:              --
connection.autoconnect:                 no
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
...etc.

可选:自动连接

您可能已经注意到了 connection.autoconnect 这个选项。它实际上就是您想的那样:在计算机启动时自动连接到 VPN。

要启用此选项:

❯ nmcli connection modify vienna-wg0 connection.autoconnect yes

要再次禁用它:

❯ nmcli connection modify vienna-wg0 connection.autoconnect no

注意:我们建议您不要在笔记本电脑上使用此选项。它与酒店、星巴克等地方使用的登录界面(强制登录门户)不兼容。

可选:重命名连接

我们更喜欢给连接起一个更有意义的名称:

❯ nmcli connection modify vienna-wg0 connection.id "AT Vienna"

❯ nmcli connection show
NAME                         UUID                                  TYPE       DEVICE     
Wired connection 1           dd530962-d349-353f-abaa-a81595677d23  ethernet   enp4s0     
AT Vienna                    8d752c4d-a7f4-4def-bbb3-bad23e3c8bb8  wireguard  vienna-wg0 

这意味着您从现在开始需要使用 “AT Vienna” 而不是 vienna-wg0 在命令中。

可选:缩略命令

为了提高效率,我们已经向您展示了完整的 nmcli 命令。大多数命令可以使用缩写形式。

一些例子:

❯ nmcli c i type wireguard file vienna-wg0.conf
Connection 'vienna-wg0' (71639a6e-fe83-4003-986c-6aef946fd39b) successfully added.

❯ nmcli c d vienna-wg0
Connection 'vienna-wg0' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/29)

❯ nmcli c de vienna-wg0 
Connection 'vienna-wg0' (71639a6e-fe83-4003-986c-6aef946fd39b) successfully deleted.

等等。