我有一台使用 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)