无法在 Linux 中禁用多播

无法在 Linux 中禁用多播

环境:两台服务器通过路由器连接,均运行Ubuntu 16.04

我使用以下命令来禁用多播:

ifconfig eno1 -multicast

或者

ip link set eno1 multicast off

并检查结果,没有多播标志:

$ ifconfig eno1
eno1      Link encap:Ethernet  HWaddr f8:ca:b8:4b:5b:88  
          inet addr:192.168.1.240  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::34c4:560f:208a:9249/64 Scope:Link
          UP BROADCAST RUNNING  MTU:1500  Metric:1
          RX packets:193 errors:0 dropped:0 overruns:0 frame:0
          TX packets:742 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:39493 (39.4 KB)  TX bytes:602751 (602.7 KB)
          Interrupt:20 Memory:f7200000-f7220000 

然后我使用iperf测试多播,一台服务器发送包:

$ iperf -c 226.94.1.1 -u -i 1

另一台服务器仍然接收包:

$ iperf -s -u -B 226.94.1.1 -i 1

------------------------------------------------------------
Server listening on UDP port 5001
Binding to local address 226.94.1.1
Joining multicast group  226.94.1.1
Receiving 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 226.94.1.1 port 5001 connected with 192.168.1.240 port 36855
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  3]  0.0- 1.0 sec   128 KBytes  1.05 Mbits/sec   0.002 ms    0/   89 (0%)
[  3]  1.0- 2.0 sec   128 KBytes  1.05 Mbits/sec   0.002 ms    0/   89 (0%)

看来多播模式没有禁用。我不知道为什么。
谢谢你的帮助。

答案1

尝试从 avahi-daemon 配置中手动删除多播:

编辑/etc/init/avahi-daemon.conf

将行替换start on (filesystem and started dbus)start on (never and filesystem and started dbus)

然后将该stop行替换为stop on stopping dbus

如果该stop行不存在,只需stop on stopping dbus在该start on行下方添加

您可以尝试在更改后重新启动网络以使更改生效,或者只需重新启动即可解决问题。

相关内容