NetworkManager 失败并显示“找不到源连接”

F43*_*d1r 10 arch-linux networkmanager vpn openvpn

尝试使用openvpnthrough连接到 VPN 时NetworkManager,失败并显示

Apr 17 02:03:17 GAMINGSTATION NetworkManager[1922]: <info>  
[1523923397.5294] audit: op="connection-activate" 
uuid="186c555a-dd51-4dc1-97c9-70d93c30713d" name="kit" 
pid=1976 uid=1000 result="fail" reason="Could not find source connection."
Run Code Online (Sandbox Code Playgroud)

但是,openvpn直接使用时,连接有效。

我发现多个线程提示NetworkManager需要管理默认网络设备,但情况确实如此:

$ nmcli device status
DEVICE       TYPE          STATE                   CONNECTION 
br0          bridge        connected               br0        
enp3s0       ethernet      connected               enp3s0     
lo           loopback       not managed            --  
Run Code Online (Sandbox Code Playgroud)

这里可能是什么问题?

注意:这个问题看起来与Trouble connected to VPN using network-manager, while command line works非常相似,但是这个问题没有任何有用的答案。

小智 7

我得到这个错误更奇怪。

$ nmcli c up VPN
Run Code Online (Sandbox Code Playgroud)

错误:连接激活失败:找不到源连接。

$ nm-applet # click icon, VPN, VPN
Run Code Online (Sandbox Code Playgroud)

作品!

我了解到网络管理器在允许 VPN 之前首先检查它是否“拥有默认路由”。

任何路由都可以工作:您可以使用默认路由到 127.0.0.1 来满足它。当您的 vpn 网关是 ipv6 时,您可以为其提供默认的 ipv4 路由。它不在乎这些小细节:)


小智 6

我为此进行了长时间的斗争,但这就是我如何使用网络管理器和 GUI 在 Ubuntu 18 中找到解决问题的方法:

下载图形用户界面包

$ sudo apt-get install network-manager-openvpn network-manager-openvpn-gnome
Run Code Online (Sandbox Code Playgroud)

网络管理器更改 [ifupdown] managed=true

$ sudo nano /etc/NetworkManager/NetworkManager.conf
.
.
[ifupdown]
managed=true
.
.
Run Code Online (Sandbox Code Playgroud)

config.ovpn从 GUI导入

(Settings -> Network -> VPN -> +)
Run Code Online (Sandbox Code Playgroud)

从自动创建的连接文件中检查导入的连接 ID。(该文件应命名为 config 并且 id 也应为 config 但它们可以是其他名称)

$ sudo grep /etc/NetworkManager/system-connections/config | grep "^id"
Run Code Online (Sandbox Code Playgroud)

更改呈现给 NetworkManager 并在以太网中添加新的连接 ID

$ sudo nano /etc/netplan/01-netcfg.yaml

network:
  version: 2
  renderer: NetworkManager
  ethernets:
    enp0s25:
      dhcp4: yes
    config:
      dhcp4: yes
Run Code Online (Sandbox Code Playgroud)

应用更改

$ sudo netplan apply
Run Code Online (Sandbox Code Playgroud)

重启网络管理器

$ sudo service network-manager restart
Run Code Online (Sandbox Code Playgroud)

从 GUI 或使用 nmcli 打开连接

$ nmcli connection up config
Run Code Online (Sandbox Code Playgroud)