为什么网络连接没有从“非托管”状态更改为“非托管”?

为什么网络连接没有从“非托管”状态更改为“非托管”?

我在 Ubuntu 18.04 上将 ProtonVPN CLI 客户端从 2.2.6 灾难性升级到 3.7.2 已经一个月了,但 VPN 仍然无法工作(这个问题与我的问题有关)上一个问题)。

这是我的设备的当前状态:

$ nmcli d
DEVICE          TYPE      STATE         CONNECTION 
wlp3s0          wifi      connected     WifiAP
proton0         tun       disconnected  --         
enp2s0          ethernet  unavailable   --         
ipv6leakintrf0  dummy     unmanaged     --         
lo              loopback  unmanaged     --         

ProtonVPN 支持已解释说他们不“支持非托管连接”,但仍不确定这意味着什么。他们向我提供了以下命令来更改此设置:

$ sudo nmcli dev set proton0 managed yes

这将proton0连接从“非托管”更改为“断开连接”,如上所示。然后我跑了

$ sudo nmcli dev set ipv6leakintrf0 managed yes

但这什么也没做。它没有ipv6leakintrf0以任何方式影响 的状态。

为什么这个设备会拒绝从“非托管”转变?

更新

根据这一页,文件中的条目/etc/network/interfaces可能会使设备不受管理。

但是,我在这些文件中找不到任何引用ipv6leakintrf0,所以我认为这不是问题所在:

$ grep -IRF "ipv6" /etc/network/*
{no results}

答案1

默认的 Ubuntu 18.04 网络管理器配置包含一个/usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf带有指令的文件

[keyfile]
unmanaged-devices=*,except:type:wifi,except:type:wwan

它将所有非“wifi”或“wwan”的设备设置为不受管理。据推测,这包括 ProtonVPN 的“proton0”和“ipv6leakintrf0”设备配置文件,这解释了为什么我无法将它们设置为“托管”。

来自网络管理员配置手册页,您几乎可以拼凑出 NetworkManager 从以下来源构建其配置,按顺序:

  1. /usr/lib/NetworkManager/conf.d/
  2. /run/NetworkManager/conf.d/
  3. /etc/NetworkManager/conf.d/
  4. /etc/NetworkManager.conf
  5. /var/lib/NetworkManager/NetworkManager-intern.conf

后面的文件会覆盖前面的文件,并且用户不应编辑最后两个文件。在这三个conf.d/目录中的每一个中,配置再次按列表顺序构建(这就是其中的文件名以数字开头的原因 - 按优先级对它们进行排序)。

我假设将我的 ProtonVPN 设备配置文件设置为非托管的文件 ,/usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf在优先级列表中较早出现,因此很容易被覆盖。据我所知,确定它是否被覆盖的唯一方法是不必要的用户敌对过程,检查上面列表中每个目录中的每个文件,同时确切地知道其中包含的每个指令的作用,以确定如果它覆盖了受原始指令影响的事物的管理状态

unmanaged-devices=*,except:type:wifi,except:type:wwan

我不能这样做。相反,我在优先级列表中查找“非托管设备”中的每个文件,以查找该指令的显式覆盖。我没有找到,所以我假设我可以通过在同一目录中创建更高优先级的文件unmanaged-devices来覆盖该指令。/usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf80-proton-vpn.conf

/usr/lib/NetworkManager/conf.d/80-proton-vpn.conf我创建了包含内容的文件

[device]
match-device=interface-name:proton0
managed=true

[device]
match-device=interface-name:ipv6leakintrf0
managed=true

根据我对困难的 NetworkManager 文档的最佳解释能力,应该将两个 ProtonVPN 设备配置文件“proton0”和“ipv6leakintrf0”设置为“托管”。

我重新启动network-manager服务并尝试连接到 ProtonVPN。在早期故障排除期间,“ipv6leakintrf0”设备已从输出中消失nmcli d,但“proton0”设备仍保持“断开连接”。可能存在其他错误(或多个错误),我必须等待 ProtonVPN 支持的其他指导,然后才能确定文件是否80-proton-vpn.conf成功允许将这些设备配置文件设置为“托管”。

更新

ProtonVPN 声称这是 Ubuntu 的问题,并且他们拒绝再帮助我解决这个问题。我对 Ubuntu 的唯一支持是 AskUbuntu,可以预见它毫无价值。因此,如果有人有任何想法,我仍然渴望任何其他贡献,这将有助于解决这个问题。

答案2

你试过netplan吗?请参阅 netplan.io。 Netplan 允许您使用 YAML 配置文件和简单的 CLI 来配置网络和网络管理器。 Ubuntu 服务器默认启用。

https://www.linux.com/topic/distributions/how-use-netplan-network-configuration-tool-linux/

那篇文章将提示您可以去哪里。

答案3

问题是 NetworkManager 由于某种原因无法管理这些设备。这篇文章对我有帮助https://askubuntu.com/questions/71159/network-manager-says-device-not-management

相关内容