如何设置要管理的网络设备?

如何设置要管理的网络设备?

我的 ProtonVPN 连接不断中断。我使用的是 Ubuntu 18.04。ProtonVPN 告诉我问题出在 Ubuntu 上,他们不会帮我修复它,我应该在这里发帖。这是一篇交叉帖子这个 Unix SE 问题

目前,处于损坏状态,两个 ProtonVPN 设备配置文件分别proton0ipv6leakintrf0列为“未管理”和“已断开连接” nmcli

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

ProtonVPN 支持人员花了近两个月的时间才解决这个问题,但他们告诉我他们不支持非托管连接。所以,我只能靠自己努力实现两者proton0ipv6leakintrf0实现“托管”。

据我所知NetworkManager配置文档NetworkManager 按以下顺序从以下来源配置设备:

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

在这三个目录中,文件按其列出的顺序进行解析。在我的系统上,该文件/usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf存在并包含以下指令:

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

出现将所有非 wifi 和非 wan 网络设备设置为“未管理”,这可以解释为什么它们proton0可能ipv6leakintrf0是未管理的。但是,考虑到 NetworkManager UX 的设计很差,我无法确定我不理解的后续配置不会覆盖此指令。

我在上面的配置列表中搜索了其他unmanaged-devices指令,但一无所获,因此我只能假设其中的那个10-globally-managed-devices.conf是唯一的。在这种情况下,我似乎可以通过创建包含以下内容的proton0文件来纠正问题并创建受管设备:/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

我已尽可能地将语法从上面链接的糟糕文档中拼凑起来。我重新启动了network-manager。ProtonVPN 工作了几天后又坏了,给出$ nmcli d上面显示的输出,表明proton0(可能ipv6leakintrf0)仍然不受管理,尽管我尽了最大努力更改配置。

AskUbuntu 答案表示列出设备/etc/network/interfaces将导致它不受 NetworkManager 管理。在我的例子中,这并不适用,该文件的唯一内容是

$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

我还尝试明确地将 ProtonVPN 设备排除在外,10-globally-managed-devices.conf正如我上面链接的 Unix SE 帖子中的评论所建议的那样:

[keyfile]
unmanaged-devices=*,except:type:wifi,except:type:wwan,except:interface-name:proton*,except:interface-name:ipv6leakintrf*

重新启动后network-manager,此配置对问题没有任何改变。

我还需要做什么才能让 NetworkManager 管理这些设备配置文件?

编辑

对于“如何设置要管理的网络设备?”这个问题,首先的答案是:

“运行命令

$ nmcli device set <name> managed yes

其中是输出列<name>下的相关条目。”DEVICE$ nmcli d

我已经花了很长时间来研究这个问题,以至于我忘了把研究结果也包括进去。结果如下:

当我跑步时

$ nmcli device set proton0 managed yes

它不会以任何方式影响“proton0”。 的输出$ nmcli d继续显示“proton0”为“断开连接”(因为我无法连接), 的输出$ nmcli device show继续显示“proton0”具有GENERAL.STATE: 10 (unmanaged)

在整个故障排除过程中,“ipv6leakintrf0”出现并消失。我不知道为什么,但 ProtonVPN 支持人员认为它不值得注意,所以我认为这是意料之中的。当它存在时,运行

$ nmcli device set ipv6leakintrf0 managed yes

没有任何效果。 的输出$ nmcli d继续显示它为“未托管”。 当它不存在时,运行命令$ nmcli device set会返回错误Error: Device 'ipv6leakintrf0' not found.,这似乎很正常。 它目前不存在。

额外信息

以下是输出的“proton0”部分$ nmcli device show

GENERAL.DEVICE:                         proton0
GENERAL.TYPE:                           tun
GENERAL.HWADDR:                         (unknown)
GENERAL.MTU:                            1500
GENERAL.STATE:                          10 (unmanaged)
GENERAL.MTU:                            1500
GENERAL.STATE:                          20 (unavailable)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
WIRED-PROPERTIES.CARRIER:               off

答案1

这就是我所拥有的

$ cat /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf 
[keyfile]
unmanaged-devices=*,except:type:wifi,except:type:gsm,except:type:cdma

我有两台设备,我确定它们与 ProtonVPN 相对应,因为它们的修改日期会受到连接/断开连接的影响

$ cat /run/NetworkManager/devices/19
[device]
managed=true
connection-uuid=...
nm-owned=false
$ cat /run/NetworkManager/devices/18 
[device]
managed=true
perm-hw-addr-fake=...
connection-uuid=...
nm-owned=true
route-metric-default-effective=550

当我断开连接时,它们看起来像这样

$ cat /run/NetworkManager/devices/19
[device]
nm-owned=false
$ cat /run/NetworkManager/devices/18 
[device]
managed=true
perm-hw-addr-fake=...
nm-owned=true

我猜它们不应该被手动修改,但这可能会有所帮助。

请发布输出

$ nmcli device show

另外,强制管理连接,如下所示 https://developer-old.gnome.org/NetworkManager/unstable/NetworkManager.html可能有帮助

Udev 属性

udev(7) 设备管理器用于网络设备发现。以下属性影响 NetworkManager 管理设备的方式:

NM_UNMANAGED如果设置为"1""true",则设备配置为不受 NetworkManager 管理。请注意,用户仍然可以通过以下方式明确否决此配置:nmcli device set "$DEVICE" managed yes"device*.managed=1"NetworkManager.conf

因此请发布使用结果

nmcli device set proton0 managed yes
nmcli device set ipv6leakintrf0 managed yes

如图所示这里

并检查ls -al /etc/udev/rules.d/ 是否有任何 udev 规则这可能会告诉网络管理器停止控制接口

相关内容