这个问题让我很困惑。ifconfig
设置一个与指定不同的广播地址,直到我再次运行相同的命令。
我正在尝试更改 eth0 接口:
inet addr:172.23.5.1 Bcast:172.23.5.255 Mask:255.255.255.0
然后我跑ifconfig eth0 broadcast 172.23.6.255 netmask 255.255.255.0 172.23.6.1
(请注意Bcast
现在是.255.255
而不是指定的.6.255
。):
inet addr:172.23.6.1 Bcast:172.23.255.255 Mask:255.255.0.0
当我再次运行相同的命令时,Bcast
结果如下:
inet addr:172.23.6.1 Bcast:172.23.6.255 Mask:255.255.255.0
- 为什么会发生这种情况?
- 有没有办法来解决这个问题?
答案1
通常不需要指定broadcast
。broadcast
地址是子网的最后一个地址。网络掩码已经指定了子网的范围。配置接口时,可以只设置IP地址和网络掩码。
您的命令中的参数顺序错误。
你告诉你的网卡在 之前设置broadcast
和。这就是你遇到这个问题的原因。netmask
ip address
ifconfig
集合broadcast
和netmask
和在那之后设置ip address
。
IP地址172.23.6.1
是B class
地址,更多这里,默认网络掩码为。在设置 IP 地址之前,255.255.0.0
您必须先将广播设置为。172.16.255.255
只要参数顺序正确,就不会遇到这个问题。
ifconfig ethX xxx.xxx.xxx.xxx broadcast xxx.xxx.xxx.yyy netmask yyy.yyy.yyy.yyy
或者
ifconfig ethX xxx.xxx.xxx.xxx netmask yyy.yyy.yyy.yyy
您不需要指定broadcast