![在 Linux 上的虚拟接口上获取多播](https://linux22.com/image/551910/%E5%9C%A8%20Linux%20%E4%B8%8A%E7%9A%84%E8%99%9A%E6%8B%9F%E6%8E%A5%E5%8F%A3%E4%B8%8A%E8%8E%B7%E5%8F%96%E5%A4%9A%E6%92%AD.png)
我使用以下命令创建虚拟网络接口:
ifconfig eth0:1 192.168.0.1 网络掩码 255.255.255.0
但是当我 ping 多播地址时:
ping 224.0.0.1
我的虚拟接口没有响应。
为什么?
答案1
224.0.0.1 在 Linux 2.6+ 主机上默认被禁用。http://kerneltrap.org/node/16225
echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
我能够在家里的 Debian 桌面上重现这个问题:
从我的MacBook:
$ ping 224.0.0.1
PING 224.0.0.1 (224.0.0.1): 56 data bytes
64 bytes from 10.4.1.84: icmp_seq=0 ttl=64 time=0.227 ms
64 bytes from 10.4.1.8: icmp_seq=0 ttl=64 time=6.676 ms
在我的 Debian 盒子上:
# echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
然后再在 MacBook 上:
$ ping 224.0.0.1
PING 224.0.0.1 (224.0.0.1): 56 data bytes
64 bytes from 10.4.1.84: icmp_seq=0 ttl=64 time=0.301 ms
64 bytes from 10.4.1.12: icmp_seq=0 ttl=64 time=1.467 ms # my debian box
64 bytes from 10.4.1.8: icmp_seq=0 ttl=64 time=1.924 ms