更改 IP 后无法在私网中 ping 通

更改 IP 后无法在私网中 ping 通

我的私有网络中有两台设备。一台计算机的 IP 为 10.42.0.1,另一台计算机的 IP 为 10.42.0.173。

我可以从一台计算机 ping 到另一台计算机,反之亦然。

如果我想通过 ifconfig 将 IP 从 10.42.0.173 更改为例如 10.42.0.43:

ifconfig eth0 10.42.0.43 netmask 255.255.255.0 broadcast 10.42.0.255 

我仍能 ping 通。

但是当我想将其从 10.42.0.173 更改为 10.42.1.43 时

ifconfig eth0 10.42.1.43 netmask 255.255.0.0 broadcast 10.42.1.255 

我可以从 10.43.1.43 ping 到 10.42.0.1 但无法从另一端 ping 通(从 10.42.0.1 到 10.42.1.43)

可能是路由表的问题。但我不知道该如何设置。

答案1

您的第一台设备的 IP 地址10.42.0.1很可能为 ,子网掩码为 24 位(255.255.255.0)。为了使其10.42.1.255无需网关即可看到,您必须将子网掩码设置为 24 位或更少(255.255.254.0或更少)两个都机器

答案2

网络掩码错误。

ifconfig eth0 10.42.0.43 netmask 255.255.255.0 broadcast 10.42.0.255 
I can still have ping.

这是网络 10.42.0,
其中有 254 个主机,从 10.42.0.1 开始到 10.42.0.254 结束。
广播是 10.42.0.255



But when I want change it from 10.42.0.173 for example to 10.42.1.43 by
ifconfig eth0 10.42.1.43 netmask 255.255.0.0 broadcast 10.42.1.255 

那是一个完全不同的网络。广播位于 10.42.1.255
,而 10.42.0.255 只是一个常规主机 IP。


请将两者置于同一 LAN 上。使用相同的网络掩码。

答案3

计算机10.42.1.43/255.255.0.0认为对方在其网络中 10.42.x.x/255.255.0.0。它会假设对方在 10.42.0.1/255.255.0.0,因此会愉快地发送 ping 数据包。

然而,反过来,因为10.42.0.1/255.255.255.0的 IP 10.42.1.43不在其网络中,并且它没有任何将数据包传递给 的路由规则10.42.1.x。因此 ping 将失败,因为它没有可用的网络路由。换句话说,10.42.0.1 不知道如何将网络数据包发送到10.42.1.x

在物理网络上发送的数据包将被每个连接的设备接收。每个设备都会检查每个数据包,看它是否是发往自己的。因此,重点是发送数据包,在第一种情况下会发生这种情况,但在第二种情况下不会发生。

相关内容