![为什么网络连接没有从“非托管”状态更改为“非托管”?](https://linux22.com/image/193599/%E4%B8%BA%E4%BB%80%E4%B9%88%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%E6%B2%A1%E6%9C%89%E4%BB%8E%E2%80%9C%E9%9D%9E%E6%89%98%E7%AE%A1%E2%80%9D%E7%8A%B6%E6%80%81%E6%9B%B4%E6%94%B9%E4%B8%BA%E2%80%9C%E9%9D%9E%E6%89%98%E7%AE%A1%E2%80%9D%EF%BC%9F.png)
我在 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 从以下来源构建其配置,按顺序:
- /usr/lib/NetworkManager/conf.d/
- /run/NetworkManager/conf.d/
- /etc/NetworkManager/conf.d/
- /etc/NetworkManager.conf
- /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.conf
80-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