当我使用 L2TP 通过 Windows 连接时,我的 VPN 可以工作,但是当我使用 CLI 设置 ubuntu 时,它无法工作。当我运行时出现以下错误
$ nmcli c up myvpn
错误输出
Error: Connection activation failed: Could not find source connection.
我尝试过的
禁用防火墙
sudo ufw disable
创建了 VPN 配置
nmcli connection add connection.id myvpn con-name myvpn type VPN vpn-type l2tp ifname -- connection.autoconnect no ipv4.method auto vpn.data "gateway = x.x.x.x, ipsec-enabled = yes, ipsec-psk = 0s"$(base64 <<<'psk***psk' | rev | cut -c2- | rev)"=, mru = 1400, mtu = 1400, password-flags = 0, refuse-chap = yes, refuse-mschap = yes, refuse-pap = yes, require-mppe = yes, user = username" vpn.secrets password=mypassword
- NetworkManager 正在管理以下接口
user@ubunut:~# nmcli device status
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected eth0
docker0 bridge connected docker0
lo loopback unmanaged --
- 列出所有 NM 连接:
nmcli con
NAME UUID TYPE DEVICE
docker0 ef3eb3a8-c46e-434c-bfcb bridge docker0
eth0 fc920355-d18e-495a-b3ca ethernet eth0
myvpn 2b24ce55-98d3-4bc0-8b52 vpn --
Ifupdown (eth0) 681b428f-beaf-8932-dce4 ethernet --
我仍然无法连接,现在被困住了。我不知道还能做什么才能让它发挥作用。有谁知道问题可能是什么?
答案1
nmcli 用法:
- 列出所有 NM 连接:
nmcli con
- 打开 VPN 连接:
nmcli con up id myvpn
- 关闭 VPN 连接:
nmcli con down id myvpn
在哪里我的VPN是 nmcli con 输出中列出的 VPN 连接的实际名称。
nmcli con reload
每当创建或编辑新的 VPN 连接配置文件(通常位于 /etc/NetworkManager/system-connections/ 下)时使用,以便 Networkmanager 会注意到更改。虽然可能不需要nmcli con add
您使用的是,nmcli con up myvpn
而不是nmcli con up id myvpn
,前者需要 VPN 连接的 UUID。
为了简单起见,您可以使用明文 PSK 而不是以0s
.
答案2
该错误消息Could not find source connection
表明您已配置将用作 VPN 连接基础的特定 NetworkManager 连接,但找不到该连接。
如果您使用以下方式配置 VPN 连接:
nmcli connection add [...] ifname -- [...]
那么该ifname --
部分可能是错误的:如果您想使用 VPN 而不限制 VPN 可能使用的网络接口,只需ifname --
完全省略该部分即可。如果您只想使用具有特定网络接口的 VPN,那么您可以ifname eth0
在此处指定。