要求
- 基本的命令行知识。
- 安装有 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.
等等。