我对 Linux 网络还不太熟悉。我按如下方式设置接口 (eth1) 的 IP 地址...
/sbin/ip link set eth1 down
/sbin/addr addr add 130.30.5.15/24 dev eth1
/sbin/ip link set eth1 up
然而,当我打字时ifconfig
我得到...
eth1 Link encap:Ethernet HWaddr 00:0E:0C:E5:F0:B5
inet addr:130.30.5.3 Bcast:0.0.0.0 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:96945 errors:0 dropped:0 overruns:0 frame:0
TX packets:2466 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:6460544 (6.1 Mb) TX bytes:164386 (160.5 Kb)
Base address:0x2000 Memory:b8800000-b8820000
为什么广播是 0.0.0.0?这是否意味着它将只使用默认广播 (130.30.5.255)?或者我需要以某种方式设置它?我尝试使用此接口,但无法 ping 网络上的任何其他设备。
答案1
将您的呼叫更改为:
/sbin/ip addr add 130.30.5.15/24 broadcast 130.30.5.255 dev eth1
为了获得正确的广播,猜测130.30.5.255
你的正确广播地址。
但请注意,下次重启时 IP 地址将会消失。您必须在接口文件中指定它才能使其永久生效。在 suse 中例如是/etc/sysconfig/network/ifcfg-eth1
。通常还有一些 GUI 工具可以进行网络配置,在 suse 中是yast
,在 redhat 中是system-config-network
。
答案2
我认为这个问题的正确答案应该是:
ip addr add 130.30.5.15/24 brd + dev eth1
这就是iproute2定义网络接口的广播地址。