Linux机器之间排查网络连通问题
网络连通性排查步骤(基于五层模型)
以下按照网络五层架构,从底层到高层逐层排查,并分别列出Ubuntu和CentOS对应的命令。
1. 物理层
排查点:网线、网卡状态、物理连接。
命令(通用):
# 查看网卡状态(确认网卡是否启用)
ip link show# 查看详细网卡信息(如驱动、速度等)
ethtool <网卡名> # 例如 ethtool eth0# 启用/禁用网卡(临时生效)
sudo ip link set <网卡名> up/down
2. 数据链路层
排查点:MAC地址、交换机/VLAN配置、ARP解析。
命令(通用):
# 查看ARP表(确认目标IP的MAC地址解析)
ip neigh show # 或 arp -n# 抓取ARP包(检查是否有请求/响应)
sudo tcpdump -i <网卡名> arp -n
3. 网络层
排查点:IP地址、子网掩码、路由表、防火墙。
3.1 检查IP配置
命令(通用):
ip addr show # 或 ifconfig(需安装 net-tools)
注:对照机器之间的子网掩码是否一致,广播地址是否一致,IP地址是否在同一个网段内
3.2 检查路由表
命令(通用):
ip route show # 或 route -n
3.3 测试连通性
ping <目标IP> # 测试ICMP连通性
3.4 检查防火墙规则
Ubuntu:
# 若使用 ufw:
sudo ufw status # 查看防火墙状态
sudo ufw disable # 临时关闭防火墙(慎用)
sudo ufw allow <端口号>/tcp # 放行端口号
sudo ufw enable # 启用防火墙# 直接检查iptables:
sudo iptables -L -nv # 查看IPv4规则
sudo ip6tables -L -nv # 查看IPv6规则
CentOS:
# 若使用 firewalld:
sudo firewall-cmd --state # 查看状态
sudo firewall-cmd --list-all # 查看所有规则# 直接检查iptables/nftables:
sudo iptables -L -nv # 传统 iptables
sudo nft list ruleset # 若使用 nftables
3.5 重点总结
- 在Ubuntu中,ufw命令是iptables的简化版命令,通过
sudo ufw allow <端口号> /tcp因为没有永久保存到系统中,有时还不能生效。iptables与ufw的命令差别,可以参考这个文章:Iptables与ufw两个命令之间的区别 - 需要通过下面更详细脚本来执行
注:# 添加防火墙的编辑权限 sudo chattr -i /etc/iptables/rules.v4 # 添加端口号和类型tcp到防火墙中 协议为tcp或udp, 8101 sudo iptables -A IN_work -p <协议> -m <协议> --dport <端口号> -j ACCEPT # 保存当前使用到系统中 sudo netfilter-persistent save > /dev/null 2>&1 # 查找/work/trusted,保存到麒麟银河的防火墙配置中[现用的系统] sudo sed -i 's/work/trusted/g' /etc/kylin-firewall/kylin-firewall.conf # 去除防火墙的编辑权限 sudo chattr +i /etc/iptables/rules.v4
1. chattr的命令参考此文章:chattr命令
2. iptables命令参考此文章:iptables命令
3. netfilter-persistent命令参考此文章:netfilter-persistent命令
4. 传输层
排查点:端口监听状态、端口连通性、防火墙规则。
4.1 检查本地端口监听
命令(通用):
ss -tuln | grep <端口号> # 推荐使用 ss
# 或
netstat -tuln | grep <端口号> # 需安装 net-tools
4.2 测试远程端口连通性
# 使用 telnet(需安装 telnet)
telnet <目标IP> <端口># 使用 nc(需安装 nmap-ncat/nc)
nc -zv <目标IP> <端口># 使用curl来测试连通
curl http://<目标IP>:<端口号>/api/test
4.3 检查防火墙对端口的放行
参考 3.4 的防火墙命令,确保目标端口已放行。
5. 应用层
排查点:服务配置、应用日志、协议兼容性。
5.1 检查服务状态
Ubuntu/CentOS(通用):
systemctl status <服务名> # 如 nginx、ssh
5.2 查看应用日志
Ubuntu:
journalctl -u <服务名> # 查看 systemd 管理的服务日志
# 或直接查看日志文件(如 /var/log/nginx/error.log)
CentOS:
journalctl -u <服务名> # 同 Ubuntu
# 或查看 /var/log/messages、/var/log/syslog 等
5.3 使用应用层工具测试
curl -v http://<目标IP>:<端口> # 测试HTTP服务
ssh -v user@<目标IP> # 测试SSH服务(-v 显示详细日志)
分系统差异总结
| 操作 | Ubuntu | CentOS |
|---|---|---|
| 安装工具 | sudo apt install <包名> | sudo yum install <包名> |
| 服务管理 | systemctl start/stop <服务> | systemctl start/stop <服务> |
| 防火墙管理 | ufw 或 iptables | firewalld 或 iptables |
| 网络配置文件 | /etc/netplan/*.yaml | /etc/sysconfig/network-scripts/ifcfg-* |
排查思路总结
- 从底层到高层:先确认物理连接和链路层正常,再逐步排查网络层、传输层和应用层。
- 双向检查:确保两端机器的配置均正确(如IP、路由、防火墙)。
- 抓包分析:使用
tcpdump或Wireshark抓包分析具体网络交互。 - 日志分析:结合系统日志(
/var/log/syslog、journalctl)和应用日志定位问题。
注:含有AI生成内容,加上自己的总结。
相关文章:
Linux机器之间排查网络连通问题
网络连通性排查步骤(基于五层模型) 以下按照网络五层架构,从底层到高层逐层排查,并分别列出Ubuntu和CentOS对应的命令。 1. 物理层 排查点:网线、网卡状态、物理连接。 命令(通用):…...
计算机考研C语言
C语言程序设计从入门到精通【2025完整版】考研复试 嵌入式 计算机二级 软考 专升本也适用_哔哩哔哩_bilibili 1、第一个C程序 helloC #include <stdio.h>int main(){printf("hehe");return 0;}每个C语言程序不管有多少行代码,都是从main函数开始执…...
【MySQL】(4) 表的操作
一、创建表 语法: 示例: 生成的数据目录下的文件: 二、查看表结构 三、修改表 语法: 另一种改表名语法:rename table old_name1 to new_name1, old_name2 to new_name2; 示例: 四、删除表 语法…...
Qt 中实现自定义控件子类化
一、子类化关键步骤 1、选择基类 根据需求选择合适的 Qt 原生控件作为基类(如 QWidget、QPushButton、QSpinBox 等),通过继承实现功能扩展。 2、重写关键方法 绘制逻辑:重写 paintEvent() 方法,使用 Q…...
[洛谷]P1123 取数游戏
最近准备蓝桥杯 一直在练搜索和图论hhh 题意 给定 n m n \times m nm的数字矩阵 可以取出若干数字 但是有限制 取出的两个数字不能在八联通方向上相邻 数据范围 1 ≤ N , M ≤ 6 , 1 ≤ T ≤ 20 1≤N,M≤6,1≤T≤20 1≤N,M≤6,1≤T≤20 思…...
DeepSeek 多模态大模型 Janus-Pro 本地部署教程
下载模型仓库 git clone https://github.com/deepseek-ai/Janus.git 国内下载仓库失败时,可以使用以下代理: git clone https://github.moeyy.xyz/https://github.com/deepseek-ai/Janus.git 准备 Conda 3.12 虚拟环境 conda create --name deepseek7B p…...
【prompt实战】知乎问题解答专家
本文原创作者:姚瑞南 AI-agent 大模型运营专家,先后任职于美团、猎聘等中大厂AI训练专家和智能运营专家岗;多年人工智能行业智能产品运营及大模型落地经验,拥有AI外呼方向国家专利与PMP项目管理证书。(转载需经授权&am…...
6. MySQL 索引的数据结构(详细说明)
6. MySQL 索引的数据结构(详细说明) 文章目录 6. MySQL 索引的数据结构(详细说明)1. 为什么使用索引2. 索引及其优缺点2.1 索引概述 3. InnoDB中索引的推演3.1 索引之前的查找3.2 设计索引3.3 常见索引概念1. 聚簇索引2. 二级索引(辅助索引、非聚簇索引)…...
pytorch 50 大模型导出的onnx模型优化尝试
本博文基于Native-LLM-for-Android项目代码实现,具体做了以下操作: 1、尝试并实现将模型结构与权重零散的onnx模型进行合并,通过该操作实现了模型加载速度提升,大约提升了3倍 2、突破了onnxconverter_common 无法将llm模型导出为fp16的操作,基于该操作后将10g的权重降低到…...
LeetCode1871 跳跃游戏VII
LeetCode 跳跃游戏 IV:二进制字符串的跳跃问题 题目描述 给定一个下标从 0 开始的二进制字符串 s 和两个整数 minJump 和 maxJump。初始时,你位于下标 0 处(保证该位置为 0)。你需要判断是否能到达字符串的最后一个位置…...
RabbitMQ 从入门到精通
1 MQ架构设计原理 1.1 什么是消息中间件 消息中间件基于队列模型实现异步/同步传输数据 作用:可以实现支撑高并发、异步解耦、流量削峰、降低耦合度。 1.2 传统的http请求存在那些缺点 1.Http请求基于请求与响应的模型,在高并发的情况下,…...
考研复试c语言常见问答题汇总2
11. 关键字和一般标识符有什么不同? C语言中关键字与一般标识符区别: 定义:关键字是C语言预定义的特殊单词(如int、for),有固定含义;标识符是自定义的名称(如变量名、函数名…...
Qt表格美化笔记
介绍 表格是一种常见的数据管理界面形式,在大批量的数据交互情形下使用的比较多 表格 可以通过样式表设置线条以及边框的颜色 QTableWidget { gridline-color : rgb(55, 60, 62); border: 1px solid rgb(62,112,181);}表头 如果表头和第一行的分割线显示&#…...
致远互联FE协作办公平台 存在SQL注入漏洞(DVB-2025-8942)
免责声明 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 0x01…...
一、docker的安装
一、docker桌面 二、docker的配置文件 1、docker配置文件位置/etc/docker/daemon.json 使用json格式,graphdata-root {"graph":"/deploy/docker","registry-mirrors": ["https://8auvmfwy.mirror.aliyuncs.com"],"…...
『PostgreSQL』PGSQL备份与还原实操指南
📣读完这篇文章里你能收获到 了解逻辑备份与物理备份的区别及适用场景🔍。掌握全库、指定库、指定表备份还原的命令及参数📝。学会如何根据业务需求选择合适的备份策略📊。熟悉常见备份还原问题的排查与解决方法🔧。 …...
Redis 主从复制详解:实现高可用与数据备份
目录 引言 1. 什么是 Redis 主从复制? 1.1 定义 1.2 核心概念 2. Redis 主从复制的工作原理 2.1 复制流程 2.2 复制流程图 3. Redis 主从复制的配置方法 3.1 通过配置文件配置 主节点配置 从节点配置 3.2 通过命令行配置 设置从节点 取消从节点 4. Re…...
facebook游戏投广:提高广告关键数据的方法
在当今竞争激烈的数字营销领域,游戏广告的投放效果直接关系到游戏公司的市场表现和盈利能力。然而,许多游戏公司在广告投放上面临着诸多挑战,如高昂的成本、低效的转化率以及难以追踪的效果。那么,如何才能通过数据分析真正提升游…...
HybridCLR Generate All 报错UnityLinker.exe
现象: Generate All 报错 Building Library\Bee\artifacts\Android\ManagedStripped failed with output: E:\XingJiKongLong\HybridCLRData\LocalIl2CppData-WindowsEditor\il2cpp\build\deploy\UnityLinker.exe Library\Bee\artifacts\rsp\10776760506222613018.…...
大一新生备战蓝桥杯c/c++B组——2024年省赛真题解题+心得分享
一,握手问题 这个题用点像小学奥数,直接手算就行 答案:1204 二,小球反弹 这个题思路简单,但是运行会显示超时。在思考思考,后续补代码。 三,好数 思路一: #include <iostream&…...
【Java】——数据类型和变量
个人主页:User_芊芊君子 🎉欢迎大家点赞👍评论📝收藏⭐文章 文章目录: 1.Java中的注释1.1.基本规则1.2.注释规范 2.标识符3.关键字4.字面常量5.数据类型6.变量6.1变量的概念6.2语法6.3整型变量6.3.1整型变量6.3.2长整…...
docker 安装常用镜像
我们在上篇文章中已经修改了daemon.json 安装镜像时如果search超时就直接pull 安装mysql docker pull mysql:5.7 启动命令 docker run --name mysql-docker -p 3306:3306 -e MYSQL_ROOT_PASSWORDroot1234 -d mysql:5.7 ocker run:运行docker容器命令 --name my…...
SpringMVC 基本概念与代码示例
1. SpringMVC 简介 SpringMVC 是 Spring 框架中的一个 Web 层框架,基于 MVC(Model-View-Controller) 设计模式,提供了清晰的分层结构,适用于 Web 应用开发 SpringMVC 主要组件 DispatcherServlet(前端控…...
MKS HA-MFV:半导体制造中的高精度流量验证技术解析
引言 在半导体先进制程(如3nm节点)中,工艺气体流量的精准控制直接决定刻蚀、沉积等关键步骤的均匀性和良率。MKS Instruments推出的 HA-MFV(High Accuracy Mass Flow Verifier) 通过创新设计解决了传统流量验证技术的…...
版本号标识
Visual Studio 16 2019 是 Microsoft Visual Studio 2019 的版本号标识。具体来说: Visual Studio 是微软提供的一款集成开发环境(IDE),用于开发各种应用程序,如桌面软件、Web 应用、移动应用等,支持多种编…...
基于Python实现手写数字识别
KNN实验——手写数字识别 实验目的: 实验内容: 实现最基本的KNN算法,使用trainingDigits文件夹下的数据,对testDigits中的数据进行预测。(K赋值为1,使用欧氏距离,多数投票决定分类结果&#…...
shell的模拟实现 ─── linux第16课
目录 第一版只能维护命令行参数表创建子进程, 执行非内建命令 第一版的执行结果: 第二版能维护命令行参数表执行cd命令 ,判断了是否是自建命令(mysell自己执行自建命令,可以对环境变量发生改变),子进程执行其他命令. 第二版执行结果: 第三版 模拟真实shell从系统文件中获取环…...
游戏引擎学习第153天
仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾 目前正在进行的是一个比较大的系统调整,原本预计今天会继续深入这个改动,但实际上在昨天的开发中,我们已经完成了大部分的代码编写,并且运行之后几乎一切都能正常工作&#x…...
理解C语言中的extern关键字
在C语言编程中,extern关键字是一个非常重要的概念,尤其在多文件编程和全局变量的使用中。本文将详细解释extern的作用、用法以及常见的应用场景。 1. extern关键字的作用 extern关键字用于声明一个变量或函数是在其他文件中定义的。它告诉编译器&#x…...
【MyBatis Plus 逻辑删除详解】
文章目录 MyBatis Plus 逻辑删除详解前言什么是逻辑删除?MyBatis Plus 中的逻辑删除1. 添加逻辑删除字段2. 实体类的配置3. 配置 MyBatis Plus4. 使用逻辑删除5. 查询逻辑删除的记录 MyBatis Plus 逻辑删除详解 前言 MyBatis Plus 是一个强大的持久化框架…...
