0

0

Linux网络状态怎么检测_从基础到进阶全流程讲透【教学】

冰川箭仙

冰川箭仙

发布时间:2025-12-20 21:25:02

|

444人浏览过

|

来源于php中文网

原创

Linux网络排障需分层递进:一查物理与链路层(ip link/ip addr/ping网关),二验网络层与路由(ip route get/traceroute),三测传输层与端口(ss/telnet),四抓包与conntrack分析。

linux网络状态怎么检测_从基础到进阶全流程讲透【教学】

Linux网络状态检测,核心是分层排查:先看物理连通性,再查协议配置,最后定位应用层问题。 不需要死记命令,关键是理解每一步在验证什么、失败意味着什么。下面按实际排障顺序展开,从最基础的 ping 到进阶的连接跟踪与流量分析。

一、确认物理与链路层是否正常(能不能“通”)

这是所有网络问题的第一关。跳过这步直接查防火墙或DNS,90%会绕远路。

  • ip link 看网卡是否 UP、是否有 carrier(物理信号)ip link show eth0 → 若显示 state DOWNNO-CARRIER,说明网线没插、交换机断电、网卡故障或驱动未加载。
  • ip addr 看IP是否正确分配: 检查是否有有效IPv4地址(非 169.254.x.x 或 0.0.0.0),子网掩码是否匹配网段,是否误配了多个主IP导致路由混乱。
  • ping -c 3 127.0.0.1 验证本地协议栈: 失败说明内核网络模块异常(极少见,多见于容器或严重内核错误)。
  • ping -c 3 测试二层可达性: 成功 = 物理+数据链路+ARP 正常;失败则重点查网线、交换机端口、VLAN、MAC地址表、ARP缓存(ip neigh)。

二、验证网络层与路由是否正确(走不走得通)

能 ping 通网关,不代表能出外网——中间可能卡在路由、NAT 或策略路由上。

  • ip route get 查真实选路路径: 比如 ip route get 8.8.8.8 会返回它将通过哪个网关、哪张网卡发出,还能看到源IP选择。若提示 Network is unreachable,说明无可用路由。
  • traceroute -n (或 mtr )看路径中断点: 第一跳不通 → 本机路由或网关问题;中间某跳超时 → 中间设备丢包或禁ICMP;最后一跳通但应用不通 → 目标端口/服务问题。
  • 检查策略路由、多宿主配置(ip rule, ip route show table all: 多网卡服务器常见问题:明明配了双IP,但回包走错网卡被丢弃(不对称路由)。需确认 rp_filter 设置(sysctl net.ipv4.conf.all.rp_filter)是否过严。

三、检查传输层与服务可达性(端口开不开、连不连得上)

ping 通 ≠ 端口通。HTTP服务可能挂了,但ICMP照常响应。

PaperAiBye
PaperAiBye

支持近30多种语言降ai降重,并且支持多种语言免费测句子的ai率,支持英文aigc报告等

下载
  • ss -tulnnetstat -tuln 查本机监听状态: 确认服务进程确实在监听目标端口(如 :22、:80),且 0.0.0.0 或具体IP绑定正确(::: 表示IPv6监听,*: 表示所有IPv4接口)。
  • telnet nc -zv 测试TCP连通性: 连接成功 = 三层可达 + 目标端口开放 + 中间无拦截;拒绝(Connection refused)= 服务未运行或监听地址不对;超时(Timeout)= 被防火墙/DROP规则拦截,或路由不对。
  • ss -tn state establishedss -tn src : 看活跃连接: 排查连接堆积、TIME_WAIT泛滥、SYN_RECV半开连接过多等性能问题。

四、进阶:抓包分析与连接跟踪(到底发生了什么)

当现象模糊(如偶发超时、重传高、TLS握手失败),必须下沉到数据包层面。

  • tcpdump -i eth0 host -w debug.pcap 抓原始流量: 在客户端和服务端同时抓包,对比SYN/SYN-ACK/ACK是否完整、RST是否突兀出现、重传间隔是否异常、TTL是否过小。Wireshark打开分析更直观。
  • conntrack -L | grep 查连接跟踪状态(尤其NAT环境): NAT网关或启用了 conntrack 的防火墙中,连接状态异常(如 INVALID、UNREPLIED)会导致报文被丢弃。常见于短连接高频建连后 conntrack 表满(conntrack -S 查统计)。
  • cat /proc/net/nf_conntrack(或 conntrack -L)看具体连接条目: 关注 timeout 值是否合理(如 udp_stream 默认30秒,太短易断流),以及是否因哈希冲突导致新建连接失败。

基本上就这些。熟练掌握前两步(link + route)能解决80%的连不上问题;第三步(端口+连接)覆盖绝大多数服务访问故障;第四步(抓包+conntrack)用于疑难杂症定界。不需要全背命令,记住“先通后通,先通再服,先服再细”,层层递进,效率最高。

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1018

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

62

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

400

2025.12.29

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

388

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

571

2023.08.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

388

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

571

2023.08.10

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

336

2023.11.09

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

61

2026.01.14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.2万人学习

Git 教程
Git 教程

共21课时 | 2.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号