一根网线直连的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.
1943 0
|
25天前
|
Python 机器学习/深度学习 人工智能
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
【10月更文挑战第1天】本文通过构建一个简单的强化学习环境,演示了如何创建和训练智能体以完成特定任务。我们使用Python、OpenAI Gym和PyTorch搭建了一个基础的智能体,使其学会在CartPole-v1环境中保持杆子不倒。文中详细介绍了环境设置、神经网络构建及训练过程。此实战案例有助于理解智能体的工作原理及基本训练方法,为更复杂应用奠定基础。首先需安装必要库: ```bash pip install gym torch ``` 接着定义环境并与之交互,实现智能体的训练。通过多个回合的试错学习,智能体逐步优化其策略。这一过程虽从基础做起,但为后续研究提供了良好起点。
82 4
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
|
24天前
|
弹性计算 安全 Linux
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法
|
3月前
|
监控 网络协议 JavaScript
tcping和ping命令
【8月更文挑战第2天】`tcping` 是一款基于 TCP 协议的网络测试工具,不同于传统的 `ping` 命令使用 ICMP 协议,`tcping` 通过尝试与目标主机的特定端口建立 TCP 连接来检查网络连通性和端口状态。这使其在一些禁用了 ICMP 的网络环境中特别有用。`
104 3
tcping和ping命令