如何在不重新启动的情况下取消注册然后重新注册 NIC?

如何在不重新启动的情况下取消注册然后重新注册 NIC?

我有一台使用 iptables 转发数据包的 Ubuntu VM。每次重启后,转发的最大吞吐量都会有很大不同,所以我试图缩小导致这种情况的步骤。我想知道这是否与添加 NIC 的顺序有关,还是与启动时初始化它们有关的其他事情有关。

我如何删除接口并再次添加它?请注意,我曾尝试关闭接口然后再打开,但这并没有改变性能,所以我在寻找更彻底的方法。

答案1

davidbaumann 是对的:rmmod而且modprobe。谢谢你的提示!

作为记录:

sudo service networking restart被打破:

$ sudo service networking stop
stop: Unknown instance:

ifconfig确认所有接口仍正常运行。

类似地,/etc/init.d/networking stop根据,将所有接口保留为开启状态ifconfig

关闭接口的“官方”方式是ip link set eth0 down,但接口仍然会显示在 的输出中ifconfig -a

rmmod删除它后,它甚至不会出现在ifconfig -a

答案2

您可以使用 rmmod 和 modproble 卸载驱动程序,然后重新加载。
这将卸载并加载以太网适配器的内核模块。

对于虚拟盒,这是e1000

# rmmod e1000
# ifconfig
lo    Link encap:Lokale Schleife  
      inet Adresse:127.0.0.1  Maske:255.0.0.0
      inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
      UP LOOPBACK RUNNING  MTU:65536  Metrik:1
      RX packets:4 errors:0 dropped:0 overruns:0 frame:0
      TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
      Kollisionen:0 Sendewarteschlangenlänge:0 
      RX bytes:240 (240.0 B)  TX bytes:240 (240.0 B)
# modprobe e1000
# ifconfig
eth0  Link encap:Ethernet  Hardware Adresse 08:00:27:48:89:50  
      inet Adresse:10.0.2.15  Bcast:10.0.2.255  Maske:255.255.255.0
      inet6-Adresse: fe80::a00:27ff:fe48:8950/64 Gültigkeitsbereich:Verbindung
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
      RX packets:4 errors:0 dropped:0 overruns:0 frame:0
      TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
      Kollisionen:0 Sendewarteschlangenlänge:1000 
      RX bytes:780 (780.0 B)  TX bytes:1118 (1.0 KiB)

lo    Link encap:Lokale Schleife  
      inet Adresse:127.0.0.1  Maske:255.0.0.0
      inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
      UP LOOPBACK RUNNING  MTU:65536  Metrik:1
      RX packets:4 errors:0 dropped:0 overruns:0 frame:0
      TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
      Kollisionen:0 Sendewarteschlangenlänge:0 
      RX bytes:240 (240.0 B)  TX bytes:240 (240.0 B)

相关内容