一根网线直连的2台不同网段的PC,怎样ping通?

目录

一、准备

二、同网段的2台PC直连,可以ping通的原因

三、不同网段的2台PC直连,怎样才能ping通

四、总结


一、准备

1.1 准备2台机器设置为不同的网段,并用一根网线连接起来。(这里使用两台linux系统的arm开发板)

设置其中一台为的ip为1.1.1.1,子网掩码为 255.255.255.0,在命令行输入命令:

ifconfig eth0 1.1.1.1 netmask 255.255.255.0

设置另一台机器的ip为 2.2.2.2,子网掩码为 255.255.255.0

ifconfig eth0 2.2.2.2 netmask 255.255.255.0

1.2 了解 ping命令 的基本原理

ping命令是基于ICMP协议且用于检测主机到主机之间是否可通信的命令。

ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。

ping过程:源主机发生ICMP包到目的主机,目的主机收到后发送ICMP应答包给源主机,源主机在一定时间内收到后则认为目的主机可达。

二、同网段的2台PC直连,可以ping通的原因

假设有一台机器的ip为 1.1.1.1,子网掩码为 255.255.255.0,另一台机器的ip为 1.1.1.2,子网掩码为 255.255.255.0;那么这两台机器为什么能够ping得通呢?

原因:当我们设置ip地址时,系统会默认为我们添加一个 “同网段的路由信息” 到路由表。

所以,ping同网段的ip时,系统就能在路由表找到路由信息,然后发送ICMP包出去;同样,另一台也能通过默认的路由信息返回应答包。

三、不同网段的2台PC直连,怎样才能ping通

由前面可以知,ping命令的ICMP包能发送出去是因为路由表有对应网段的路由信息。那么,不同网段的2台机器ping不通的原因可能就是路由表里没有目的网段的路由信息。所以我们可以尝试添加路由信息来使不同网段的2台机器ping通。

3.1 往ip地址为 1.1.1.1 的机器添加 2.2.2.0 的路由信息,使 ICMP 包可以发送到目的ip为 2.2.2.X 的主机,使用这个命令添加路由信息:

route add -net 2.2.2.0 netmask 255.255.255.0 dev eth0

3.2 往ip地址为 2.2.2.2 的机器添加 1.1.1.0 的路由信息,使目的主机可以返回 ICMP 应答包:

route add -net 1.1.1.0 netmask 255.255.255.0 dev eth0

3.3 在 1.1.1.1 主机 ping 目的ip为 2.2.2.2 的主机,可以正常ping通

3.4 在 2.2.2.2 主机 ping 目的ip为 1.1.1.1 的主机,也正常ping通

四、总结

两台不同网段的pc直连,之所以ping不通是因为两台pc的路由表都没有目的网段的路由信息,添加完对应网段的路由信息后就可以ping通。

以下是ip为 1.1.1.1 的机器操作的整个流程,有收获的话,点个赞让我知道 ^_^

  • 9
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wkd_007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值