更改 ethX 索引

art*_*rtm 6 kernel networking udev

当我ifconfig在我的一台机器上运行时,我看到了这些。

Q值在哪里呢索引eth3eth4从?有没有办法将它们更改为eth0eth1

$ ifconfig
eth3      Link encap:Ethernet  HWaddr 00:1a:a0:9d:c9:90  
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fddc:2a53:4ad:0:a412:573:557c:ce58/64 Scope:Global
          inet6 addr: fddc:2a53:4ad:0:21a:a0ff:fe9d:c990/64 Scope:Global
          inet6 addr: fe80::21a:a0ff:fe9d:c990/64 Scope:Link
          inet6 addr: fddc:2a53:4ad::c68/128 Scope:Global
          inet6 addr: fddc:2a53:4ad:0:41f0:3be9:2668:e5b/64 Scope:Global
          inet6 addr: fddc:2a53:4ad:0:4daf:e298:e54c:2540/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:217764 errors:0 dropped:0 overruns:0 frame:0
          TX packets:402733 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:21329905 (21.3 MB)  TX bytes:40208000 (40.2 MB)
          Interrupt:20 Memory:fdfc0000-fdfe0000 

eth4      Link encap:Ethernet  HWaddr e8:94:f6:02:eb:a7  
          inet addr:192.168.0.108  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::ea94:f6ff:fe02:eba7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2604292 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2069814 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:486616623 (486.6 MB)  TX bytes:472115888 (472.1 MB)
Run Code Online (Sandbox Code Playgroud)

编辑1:

$ grep 'eth' /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:14:6c:72:d2:46", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1e:c9:6c:8c:a3", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="30:b5:c2:03:46:4d", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1a:a0:9d:c9:90", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="e8:94:f6:02:eb:a7", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth4"
Run Code Online (Sandbox Code Playgroud)

(是的,我有两张 Eth 卡,一张 100 Mbps,另一张 1000 Mbps)。

hee*_*ayl 11

接口名称由udev动态分配或根据文件中声明的规则分配/etc/udev/rules.d/70-persistent-net.rules。尽管udev动态管理设备,但将规则放在此文件中可以udev对此处定义的接口做出持久的决定。

因此,要更改接口的名称,请打开文件/etc/udev/rules.d/70-persistent-net.rules,首先通过检查 MAC 地址(例如ATTR{address}=="00:1a:XX:YY:c9:ZZ". 找到你想改名的接口后,将行尾的名称例如替换为你想要的名称,NAME="eth3"例如NAME="eth0"

所以这条线变成了:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1a:XX:YY:c9:ZZ", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
Run Code Online (Sandbox Code Playgroud)

如果您也想更改其名称,也可以对其他接口规则执行相同操作。重命名后重新启动计算机,接口应正确重命名。

另请注意,由于您已经使用名称eth0和定义了接口,因此请先eth1删除或注释掉包含规则的行来禁用这些规则,否则会发生冲突并且不会进行重命名。