一根网线直连的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包出去;同样,另一台也能通过默认的路由信息返回应答包。2018122814580746.png


三、不同网段的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通

2018122814580746.png

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

四、总结

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

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


目录
相关文章
|
缓存 Shell 测试技术
|
Shell
[shell]通过ping检测整个网段IP的网络状态脚本
要实现Ping一个网段的所有IP,并检测网络连接状态是否正常,很多方法都可以实现,下面简单介绍两种,如下:脚本1#!/bin/sh# Ping网段所有IP# 2012/02/05ip=1 #通过修改初值while [ $ip != "254]; do #yes正常,no主机不存在或不正常ping 192.
1947 0
|
7天前
|
运维 监控 Linux
别再只会使用简单的 ping 命令了,Linux 中这些高级 ping 命令可以提高工作效率!
在 Linux 系统中,ping 命令不仅用于检测网络连通性和延迟,还拥有多种高级选项和技巧,如定制数据包大小、获取详细统计信息、持续 ping、指定源地址和多目标 ping。本文详细介绍这些高级命令及其在性能测试、故障排查和网络监控中的实际应用,帮助你提升网络管理效率。
41 3
|
8天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
30 3
|
1月前
|
Python 机器学习/深度学习 人工智能
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
【10月更文挑战第1天】本文通过构建一个简单的强化学习环境,演示了如何创建和训练智能体以完成特定任务。我们使用Python、OpenAI Gym和PyTorch搭建了一个基础的智能体,使其学会在CartPole-v1环境中保持杆子不倒。文中详细介绍了环境设置、神经网络构建及训练过程。此实战案例有助于理解智能体的工作原理及基本训练方法,为更复杂应用奠定基础。首先需安装必要库: ```bash pip install gym torch ``` 接着定义环境并与之交互,实现智能体的训练。通过多个回合的试错学习,智能体逐步优化其策略。这一过程虽从基础做起,但为后续研究提供了良好起点。
127 4
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
下一篇
无影云桌面