如何在不重启 Linux 的情况下检测新的 NIC/以太网卡

我在 VMware Workstation Lab 中创建了一个 Red Hat 6 虚拟机。
然后我正在运行的 RHEL 机器添加了一个新的 NIC 卡。

现在让我们尝试在不重新启动操作系统的情况下检测它

如果我们检查 ifconfig 的输出

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:B9:4D:D3
inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb9:4dd3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:91992 errors:0 dropped:0 overruns:0 frame:0
TX packets:58283 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:99437002 (94.8 MiB)  TX bytes:5498693 (5.2 MiB)
lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:2964 errors:0 dropped:0 overruns:0 frame:0
TX packets:2964 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:388592 (379.4 KiB)  TX bytes:388592 (379.4 KiB)

到目前为止新的网卡配置还没有显示出来。
有一个文件 /etc/udev/rules.d/70-persistent-net.rules,其中包含有关 RHEL 服务器中连接的以太网卡的详细信息。

在此文件中我们可以查看新连接的以太网卡的详细信息:

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:b9:4d:d3", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:b9:4d:dd", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

如我们所见,它显示了两个以太网卡的详细信息,例如:eth0 和 eth1.
截至目前,根据 ifconfig 的输出,eth0 已经处于连接状态,也可以使用 MAC 详细信息进行匹配。
所以让我们手动为新卡创建一个新的配置文件。

# cd /etc/sysconfig/network-scripts

让我们直接将 eth0 中的内容复制到我们的新文件中,然后只修改不同的部分。

# cp ifcfg-eth0 ifcfg-eth1

根据eth1的信息修改:

# vi ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
HWADDR=00:0c:29:b9:4d:dd
IPADDR=192.168.1.5
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"

重新启动网络服务

# service network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  Determining if ip address 192.168.1.11 is already in use for device eth0...
                                                           [  OK  ]
Bringing up interface eth1:  Determining if ip address 192.168.1.5 is already in use for device eth1...
                                                           [  OK  ]

验证结果

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:B9:4D:D3
          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:feb9:4dd3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:92368 errors:0 dropped:0 overruns:0 frame:0
          TX packets:58550 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:99470396 (94.8 MiB)  TX bytes:5531059 (5.2 MiB)
eth1      Link encap:Ethernet  HWaddr 00:0C:29:B9:4D:DD
inet addr:192.168.1.5  Bcast:192.168.1.255  Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb9:4ddd/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:372 (372.0 b)  TX bytes:636 (636.0 b)
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:2964 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2964 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:388592 (379.4 KiB)  TX bytes:388592 (379.4 KiB)
日期:2020-06-02 22:18:29 来源:oir作者:oir