网络管理器连接配置中的 type=ethernet 和 type=802-3-ethernet 之间有区别吗?

网络管理器连接配置中的 type=ethernet 和 type=802-3-ethernet 之间有区别吗?

我正在将网络配置从 更改interfacesnetwork-manager(文件在 中/etc/NetworkManager/system-connection),并在不同的机器上遇到type=802-3-ethernettype=ethernet连接文件中,这些文件一定是使用 17.04 之前的未知 Ubuntu 版本上的小程序创建的nm。两者似乎都可以工作。

nmcli -f GENERAL.TYPE device show按照以下步骤操作man NetworkManager.conf,但只看到ethernet支持的类型。这有区别吗?我不想猜测它不会因为尝试两者而起作用,因为我想做对,从而了解我在做什么。

我正在使用 Ubuntu 17.04。

答案1

塔勒的回答

type=802-3-ethernet 和 type=ethernet 相同,一个是别名。两者都有效。

它们绝对不是完全可以互换的。

$ nmcli --version
nmcli tool, version 1.14.6

以下是我观察到的一些奇怪现象。

如果我们使用完整setting.property密钥,802-3-ethernet则为有效值,但ethernet不是。当提供值为时802-3-ethernetethernet会写入文件。

$ nmcli connection add \
    connection.id "Test" \
    connection.type "ethernet" \
    connection.interface-name ""
Error: invalid connection type; ethernet.
$ nmcli connection add \
    connection.id "Test" \
    connection.type "802-3-ethernet" \
    connection.interface-name ""
Connection 'Test' (…) successfully added.
$ nmcli connection show Test | grep connection.type
connection.type:                        802-3-ethernet
$ grep type /etc/NetworkManager/system-connections/Test.nmconnection 
type=ethernet
$ nmcli connection delete Test

如果我们使用属性别名作为键,和802-3-ethernet都是ethernet有效值。ethernet在两种情况下都会写入文件。

$ nmcli connection add con-name "Test" type "802-3-ethernet" ifname ""
Connection 'Test' (…) successfully added.
$ grep type /etc/NetworkManager/system-connections/Test.nmconnection 
type=ethernet
$ nmcli connection delete Test
$ nmcli connection add con-name "Test" type "ethernet" ifname ""
Connection 'Test' (…) successfully added.
$ grep type /etc/NetworkManager/system-connections/Test.nmconnection 
type=ethernet

如果我们使用交互式功能,nmcli则可以使用其中任意一种。Tab 补全功能对单词有效802-3-ethernet,但对无效ethernet

$ nmcli connection edit "Test"
nmcli> set 802-3-ethernet.auto-negotiate yes
nmcli> print 802-3-ethernet.auto-negotiate 
802-3-ethernet.auto-negotiate: yes
nmcli> set ethernet.auto-negotiate no
nmcli> print ethernet.auto-negotiate 
802-3-ethernet.auto-negotiate: no

结论:NetworkManager 的反序列化不一致。如果手动编辑文件,我会坚持使用ethernet。如果尝试使用 编写任何脚本,nmcli请务必对其进行测试,无论您选择哪种方式。

答案2

type=802-3-ethernet 和 type=ethernet 相同,一个是别名。两者都有效。

nm-applet 不用于修改/创建连接。nm-connection-editor 可以。

没有任何客户端应用程序(如 nm-connection-editor)会直接写入这些文件。它们归 root 所有,并由 NetworkManager 写入。

使用 NM 客户端工具(nmcli、nmtui、nm-connection-editor)可能是一个好主意,而不是手动编辑文件。但两者都可行。

nmcli devicenmcli connection是关于网络接口的。它与连接配置文件( 、/etc/NetworkManager/system-connections)不同。

man NetworkManager.conf主要涉及 NetworkManager 的配置文件,同样与连接配置文件无关。请参阅man nm-settingsman nm-settings-keyfile

相关内容