网络诊断命令手册
网络出问题时GUI 工具往往只能告诉你连不上而命令行工具能告诉你为什么连不上。本文从排障角度出发将 Windows 和 Linux 下的常用网络诊断命令按排障场景组织辅以案例列举网络排障方法命令。一、排障思维框架网络排障最忌讳瞎试。推荐遵循OSI 自底向上的排查顺序物理层网线/网卡数据链路层ARP/MAC网络层IP/路由/ICMP传输层TCP/UDP 端口应用层DNS/HTTP/TLS80% 的日常网络问题停留在网络层到应用层之间这也是本文的重点覆盖范围。排障三问每次面对网络问题时先问自己三个问题“我能到达目标吗”→ping/traceroute“我解析对了吗”→nslookup/dig“端口在监听吗”→netstat/ss/telnet二、第一层连通性检查2.1ping协议ICMPInternet Control Message Protocol核心原理向目标发送 ICMP Echo Request等待对方回复 ICMP Echo Reply。通过回复时间和 TTL 判断连通质量和路径长度。# Linux$ping-c4www.baidu.com PING www.a.shifen.com(110.242.68.66)56(84)bytes of data.64bytes from110.242.68.66:icmp_seq1ttl53time38.5ms64bytes from110.242.68.66:icmp_seq2ttl53time37.8ms64bytes from110.242.68.66:icmp_seq3ttl53time38.1ms64bytes from110.242.68.66:icmp_seq4ttl53time37.9ms --- www.baidu.compingstatistics ---4packets transmitted,4received,0% packet loss,time3004ms rtt min/avg/max/mdev37.8/38.1/38.5/0.3 ms# Windows (默认发送 4 个包) ping-n 4 www.baidu.com读懂 ping 结果指标含义异常信号ttl剩余跳数每经过一个路由器减 1TTL 异常低 → 路由迂回time往返时延 (RTT) 200ms → 链路拥塞或跨国路由packet loss丢包率 1% → 链路不稳定需进一步排查快速扫描局域网存活主机# Linux: 扫描 192.168.1.0/24 网段并行 fping$ fping-a-g192.168.1.0/242/dev/null192.168.1.1192.168.1.100192.168.1.101# Windows PowerShell: 扫描局域网1..254|ForEach-Object{$ip192.168.1.$_if(Test-Connection$ip-Count 1-Quiet){Write-Host$ip}}** 常见误区**ping 不通不代表服务不可达。很多服务器禁用了 ICMP 响应防火墙拦截但 TCP 80/443 端口正常。遇到 ping 不通时请继续往下走。2.2telnet/ncping 只能证明 IP 层通端口是否开放需要 telnet / ncnetcat来验证。# 测试 TCP 80 端口是否开放$ telnet www.example.com80Trying93.184.216.34... Connected to www.example.com. Escape character is^].# 出现 Connected → 端口通# 或者用 nc更强⼤$nc-zvwww.example.com80Connection to www.example.com80port[tcp/http]succeeded!$nc-zvwww.example.com443Connection to www.example.com443port[tcp/https]succeeded!# Windows PowerShell 替代 telnetTest-NetConnectionwww.example.com-Port 80 ComputerName : www.example.com RemoteAddress : 93.184.216.34 RemotePort : 80 TcpTestSucceeded : True# ← 关键看这个三、第二层路径追踪3.1traceroute/tracert原理利用 IP 头的 TTLTime To Live字段。每次发送 TTL 递增的数据包途经路由器在 TTL 归零时返回 ICMP Time Exceeded从而逐跳揭示路径。目标主机路由器2路由器1源主机目标主机路由器2路由器1源主机TTL1, 去 D 的包ICMP Time Exceeded (我是 R1)TTL2, 去 D 的包ICMP Time Exceeded (我是 R2)TTL3, 去 D 的包ICMP Echo Reply (到达!)示例# Linux$traceroutewww.github.comtracerouteto github.com(20.205.243.166),30hops max,60byte packets1_gateway(192.168.1.1)1.234ms1.189ms1.156ms210.74.0.1(10.74.0.1)5.432ms5.401ms5.387ms3* * *# ← 该节点不响应 ICMP常见继续看后面4121.14.78.185(121.14.78.185)8.234ms8.211ms8.198ms...1420.205.243.166(20.205.243.166)198.345ms198.332ms198.319ms# Windows (tracert) tracert-d www.github.com# -d 不解析主机名更快看懂* * *现象可能原因中间某跳持续* * *后面恢复该路由器配置了不响应 ICMP运营商常见做法从某跳开始全部* * *该节点之后的链路断开或被防火墙阻断目的地* * *目标主机防火墙丢弃了探测包3.2mtr/pathpingtraceroute只做一次快照mtrMy Traceroute持续采样呈现每跳的丢包率和延迟波动——这才是真正的排障利器。# Linux: mtr 实时模式$mtr-r-c100www.google.com# 发送 100 个包后出报告Start:2026-06-24T10:00:000800 HOST: myhost Loss% Snt Last Avg Best Wrst StDev1. _gateway0.0%1001.21.31.12.10.22.10.74.0.10.0%1005.45.55.18.20.53.121.14.78.1850.0%1008.28.57.912.30.84.202.97.34.12.0%10035.236.134.855.23.2# ← 注意这跳有丢包!5.72.14.237.1302.0%100180.5182.3178.2210.55.5mtr 解读某跳丢包但后续跳不丢包→ 该路由器限制了 ICMP 响应速率不是真丢包。某跳丢包且后续所有跳同样丢包→真丢包该节点是瓶颈。延迟在某跳骤增→ 物理距离跨越如出海光缆或该路由器拥塞。# Windows: pathping类似 mtr但采样时间更长 pathping-n www.google.com3.3 BestTraceWindows 下原生的tracert不够直观BestTrace 提供图形界面自动展示每跳 IP 的地理位置和 AS 归属出海链路一目了然。四、第三层DNS 解析诊断DNS 是网络世界的电话簿很多时候网站打不开其实是号码查不到。4.1nslookup# Linux Windows 通用$nslookupwww.example.com Server:192.168.1.1 Address:192.168.1.1#53Non-authoritative answer: Name: www.example.com Address:93.184.216.34指定 DNS 服务器查询排查是不是运营商 DNS 有问题的神技# 用 Google DNS 查询$nslookupwww.example.com8.8.8.8# 用 Cloudflare DNS 查询$nslookupwww.example.com1.1.1.1查询特定记录类型$nslookup-typeMX google.com# 邮件交换记录$nslookup-typeNS google.com# 域名服务器记录$nslookup-typeTXT google.com# 文本记录SPF/DKIM$nslookup-typeCNAME www.github.com# 别名记录4.2dig—— Linux 下的 DNS 诊断相比nslookupdig的输出更详细且更结构化$digwww.example.com trace# 从根服务器开始追踪整个解析链$digwww.example.com short# 只输出结果 IP$dig-x93.184.216.34# 反向解析IP → 域名trace的价值可以看到 DNS 解析的完整链路根 DNS → .com 顶级域 DNS → example.com 权威 DNS → 最终 A 记录。任何一环出问题都能定位。4.3 DNS 排障 checklist问题现象排查手段域名解析不到nslookup分别用运营商 DNS 和 8.8.8.8 查询对比解析结果不对DNS 劫持nslookup指定多个不同 DNS 对比结果解析很慢dig trace看哪个环节慢本地 DNS 缓存问题Windows:ipconfig /flushdnsLinux:systemd-resolve --flush-caches五、第四层端口与服务状态5.1netstat/ss# Linux: ss 是 netstat 的现代替代更快$ ss-tlnp# 查看所有 TCP 监听端口State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN01280.0.0.0:220.0.0.0:* sshd(pid1024)LISTEN01280.0.0.0:800.0.0.0:* nginx(pid2048)LISTEN0128127.0.0.1:33060.0.0.0:* mysqld(pid3072)$ ss-tan# 查看所有 TCP 连接含 ESTABLISHED$ ss-tlnp|grep:8080# 快速查某端口是否被占用关键状态解读TCP状态含义LISTEN正在监听等待连接ESTABLISHED连接已建立正常通信中TIME_WAIT主动关闭方等待 2MSL约 60s防止旧包干扰新连接CLOSE_WAIT对端已关闭但本端应用层还没调 close()——应用 Bug 信号SYN_SENT正在发起连接可能对端不可达# Windows netstat-ano|findstr LISTENING# 查看监听端口及 PID netstat-ano|findstr :80# 查看 80 端口相关连接 netstat-s# 查看各协议统计TCP 重传率等5.2lsof$lsof-i:8080# 查看 8080 端口被哪个进程占用COMMAND PIDUSERFD TYPE DEVICE SIZE/OFF NODE NAMEjava2048user 45u IPv6123450t0 TCP *:8080(LISTEN)$lsof-itcp:3306# 查看 3306 端口连接六、第五层路由与防火墙6.1route# Linux$ route-n# 查看路由表-n 不解析主机名更快Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface0.0.0.0192.168.1.10.0.0.0 UG10000eth0192.168.1.00.0.0.0255.255.255.0 U10000eth0172.17.0.00.0.0.0255.255.0.0 U000docker0添加/删除路由常见于 VPN 分流场景# 添加一条路由访问 10.0.0.0/8 网段走 192.168.1.254 网关$sudoiprouteadd10.0.0.0/8 via192.168.1.254# 删除路由$sudoiproute del10.0.0.0/8# 添加默认网关$sudoiprouteadddefault via192.168.1.1# Windows route print# 显示路由表 route add 10.0.0.0 mask 255.0.0.0 192.168.1.2546.2iptables/nftablesiptables是 Linux 内核 netfilter 框架的用户态工具按表table 链chain 规则rule三层结构组织。数据包流向: ┌──────────┐ │PREROUTING│ ← 刚到达网卡 └────┬─────┘ │ ┌────▼─────┐ │ 路由决策 │ └────┬─────┘ ┌────────┼────────┐ (本地)│ │(转发) ┌───────▼──┐ ┌────▼─────┐ │ INPUT │ │ FORWARD │ └───────┬──┘ └────┬─────┘ │ │ ┌───────▼──┐ ┌────▼─────┐ │ 本地进程 │ │ OUTPUT │ └───────┬──┘ └────┬─────┘ │ │ └────────┬────────┘ │ ┌────▼─────┐ │POSTROUTING│ ← 即将离开网卡 └──────────┘常用场景# 查看当前规则带行号方便删除$sudoiptables-L-n-v--line-numbers# 允许来自 192.168.1.0/24 的 SSH 访问$sudoiptables-AINPUT-ptcp--dport22-s192.168.1.0/24-jACCEPT# 拒绝某个 IP 的所有流量$sudoiptables-AINPUT-s10.0.0.99-jDROP# 端口转发将 8080 端口的流量转发到 80$sudoiptables-tnat-APREROUTING-ptcp--dport8080-jREDIRECT --to-port80# 保存规则重启后保留$sudoiptables-save/etc/iptables/rules.v4现代 Linux 发行版如 Debian 10、Ubuntu 20.04逐渐转向nftables语法更简洁性能更好。但 iptables 仍然广泛使用。6.3netsh# 查看/设置 IP 地址 netsh interface ip show config netsh interface ipsetaddress以太网static 192.168.1.100 255.255.255.0 192.168.1.1# 查看/设置 DNS netsh interface ip show dnsservers netsh interface ipsetdns以太网static 8.8.8.8# Windows 自带端口转发类似 iptables DNAT netsh interface portproxy add v4tov4 listenport8080 connectaddress127.0.0.1 connectport80 netsh interface portproxy show all# 重置网络栈网络乱了之后的终极武器 netsh int ip reset netsh winsock reset七、综合案例案例一网站打不开现象浏览器访问https://api.mycompany.com超时。排查步骤# Step 1: DNS 正常吗$nslookupapi.mycompany.com8.8.8.8 Name: api.mycompany.com Address:10.20.30.40# 解析正常# Step 2: IP 层通吗$ping-c410.20.30.404packets transmitted,0received,100% packet loss# 不通# 但别急可能是禁 ping# Step 3: 端口通吗$nc-zv10.20.30.40443nc: connect to10.20.30.40 port443(tcp)failed: Connection timed out# 超时# Step 4: 路径哪里断了$mtr-r-c3010.20.30.40# 发现在第 8 跳之后全部丢包 → 问题在运营商骨干网或目标侧防火墙# Step 5: 本地防火墙拦截了$sudoiptables-L-n|grep10.20.30.40# 无拦截规则 → 问题不在本地# 结论目标 IP 的 443 端口不可达可能是安全组/防火墙未放行联系目标服务运维。案例二服务启动后端口被占用现象启动 Nginx 报错bind() to 0.0.0.0:80 failed (98: Address already in use)# Step 1: 谁在占 80 端口$sudoss-tlnp|grep:80 LISTEN01280.0.0.0:800.0.0.0:* users:((apache2,pid3456,fd4))# Apache 占着 80 端口# Step 2: 确认进程详情$psaux|grep3456www-data3456... /usr/sbin/apache2-kstart# Step 3: 停掉 Apache启动 Nginx$sudosystemctl stop apache2 $sudosystemctl start nginx案例三跨国访问慢现象国内访问海外服务器延迟很高。# mtr 持续监控 100 个包$mtr-r-c100overseas-server.com# 输出分析# Hop 5 (202.97.x.x): avg 180ms ← 中国电信国际出口延迟跃升# Hop 6 (ae-1.r20): avg 250ms ← 跨太平洋海底光缆再加 70ms# Hop 10 (目标): avg 260ms ← 总延迟 260ms物理极限 ≈ 光速# 结论260ms 跨太平洋已是正常值光速往返约 130ms 路由器处理延迟# 解决方案考虑 CDN 加速或同区域部署。八、常用命令Linux 命令矩阵场景命令关键参数连通性ping-c 计数-i 间隔路径追踪traceroute-n(不解析)-I(ICMP模式)持续路径监控mtr-r(报告)-c(包数)DNS 查询dig/nslookuptrace-typeMX端口检测nc -zv/telnet-z(扫描)-v(详细)连接状态ss-tlnp(监听)-tan(所有)端口占用lsof -i:端口号路由表ip routeadd/del防火墙iptables/nft-L -n -v抓包tcpdump-i eth0 port 80Windows 命令矩阵场景命令关键参数连通性ping-n 计数-t(持续)路径追踪tracert-d(不解析)-h(最大跳数)持续路径pathping-n(不解析)DNS 查询nslookup-typeMX端口检测Test-NetConnection-Port连接状态netstat-ano(含PID)路由表route printadd/del网络配置netshinterface ip/portproxyDNS 缓存ipconfig /flushdns—重置网络netsh int ip reset—

相关新闻

VMware上安装MySQL的12个关键步骤:从虚拟机配置到服务启动,零基础也能一次成功

VMware上安装MySQL的12个关键步骤:从虚拟机配置到服务启动,零基础也能一次成功

更多请点击: https://intelliparadigm.com 第一章:VMware上安装MySQL的前置准备与环境认知 在VMware虚拟化环境中部署MySQL前,需充分理解底层资源约束与系统兼容性要求。MySQL对CPU、内存、磁盘I/O及文件系统具有明确依赖,尤其在…

2026/6/26 8:23:04阅读更多 →
全域轨迹精准溯源 跨镜无缝追踪夯实司法监管规范化建设——智能行为研判·无缝跨镜续迹监所安全闭环治理技术白皮书

全域轨迹精准溯源 跨镜无缝追踪夯实司法监管规范化建设——智能行为研判·无缝跨镜续迹监所安全闭环治理技术白皮书

一、前言司法监所是法治建设的关键阵地,监管规范化、流程标准化、治理法治化、溯源制度化是新时代智慧监所建设的核心硬性要求。当前传统监所安防治理模式普遍存在监管碎片化、追踪断点化、研判人工化、溯源形式化的短板,过度依赖人工值守、人工巡查、人…

2026/6/26 8:17:59阅读更多 →
IntelliJ IDEA安装失败?97%的报错都源于这5个隐藏配置——资深JetBrains认证讲师逐行调试实录

IntelliJ IDEA安装失败?97%的报错都源于这5个隐藏配置——资深JetBrains认证讲师逐行调试实录

更多请点击: https://kaifayun.com 第一章:IntelliJ IDEA安装失败的典型现象与诊断逻辑 IntelliJ IDEA安装失败常表现为静默退出、启动器图标缺失、安装向导卡死于“Preparing IDE”阶段,或在Windows上弹出“MSVCP140.dll缺失”提示&#xf…

2026/6/26 8:17:59阅读更多 →
Decoder-only 模型结构

Decoder-only 模型结构

目前主流大语言模型都采用 Decoder-only 架构,其核心流程如下图所示:包括以下核心组件:组件职责Embeddingtoken ID → d_model 维向量Attentiontoken 间信息交互,建模上下文依赖FFN / MoE非线性变换,增加模型表达能力R…

2026/6/26 9:43:35阅读更多 →
识本草承国粹!李良济爱心公益,以百年匠心助力中医药文化传承与启蒙

识本草承国粹!李良济爱心公益,以百年匠心助力中医药文化传承与启蒙

中医药是中华优秀传统文化瑰宝,文化传承始于童心启蒙。为推动传统国粹走进校园、浸润童心,今天上午,由姑苏区教育体育和文化旅游委员会主办、苏州市李良济健康产业承办的“传承中医药国粹萌娃探秘中草药”中医药文化进幼儿园活动启动仪式&…

2026/6/26 9:43:35阅读更多 →
测试转大模型:用小项目验证核心能力

测试转大模型:用小项目验证核心能力

聊《测试转大模型:用小项目验证核心能力》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要本文概述文章目标、核心观点和实践价值。很多做传统功能测试或者自动化测试的同学,最近都在问同…

2026/6/26 9:43:35阅读更多 →
MyComputerManager技术深度解析:Windows Shell Extension管理与注册表操作实战指南

MyComputerManager技术深度解析:Windows Shell Extension管理与注册表操作实战指南

MyComputerManager技术深度解析:Windows Shell Extension管理与注册表操作实战指南 【免费下载链接】MyComputerManager 管理“此电脑”里删不掉的流氓“快捷方式”(包括侧边栏),同时可自己添加这类“快捷方式” 项目地址: http…

2026/6/26 9:43:35阅读更多 →
RFC Receiver Channel 属性背后的运行逻辑,写给 SAP PI 和 SAP PO 集成顾问的一篇实践笔记

RFC Receiver Channel 属性背后的运行逻辑,写给 SAP PI 和 SAP PO 集成顾问的一篇实践笔记

在 SAP PI 和 SAP PO 的项目里,RFC Receiver Channel 往往看起来很朴素,配置目标主机、系统号、客户端、用户、密码,再把 Function Module 名称和消息结构对上,链路似乎就能跑起来。可一旦系统进入生产环境,真正让人头疼的往往不是这些显眼字段,而是隐藏在 XPI Adapter R…

2026/6/26 9:43:35阅读更多 →
嵌入式GUI开发实战:emWin 2D图形库核心API与优化技巧解析

嵌入式GUI开发实战:emWin 2D图形库核心API与优化技巧解析

1. 项目概述:为什么嵌入式开发需要关注2D图形库?在嵌入式系统开发中,尤其是涉及人机交互界面(HMI)的项目,图形用户界面(GUI)的流畅度和美观度直接决定了产品的用户体验和竞争力。然而…

2026/6/26 9:38:35阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/25 9:39:54阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/26 4:15:25阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/26 9:29:01阅读更多 →
HPE (慧与) 服务器专用 ESXi 9 全套官方定制资源详解 + 完整部署升级教程

HPE (慧与) 服务器专用 ESXi 9 全套官方定制资源详解 + 完整部署升级教程

一、前言:企业运维痛点与资源价值自博通收购 VMware 之后,原 VMware 公开免费下载渠道全面关闭,企业运维人员想要获取适配 HPE 慧与服务器的 ESXi 9 原厂镜像,必须注册博通账号、绑定有效授权才能下载,无授权账号无法获…

2026/6/26 0:02:15阅读更多 →
Kotlin的@JvmStatic与@JvmField:与Java互操作的注解

Kotlin的@JvmStatic与@JvmField:与Java互操作的注解

Kotlin作为一门现代编程语言,与Java的互操作性一直是其核心优势之一。为了让Kotlin代码能够无缝对接Java,Kotlin提供了多种注解来优化互操作体验,其中JvmStatic和JvmField是两个关键注解。它们分别用于解决静态成员和字段在Java中的访问问题&…

2026/6/26 0:02:15阅读更多 →
深入解析musl libc中的mmap实现源码

深入解析musl libc中的mmap实现源码

最近在阅读musl libc源码时,发现其mmap的实现非常精妙,特分享给大家。 一、代码整体结构 这段代码实现了__mmap函数,并通过weak_alias导出为mmap。这是典型的musl libc风格——提供弱符号以便用户可以重写。 weak_alias(__mmap, mmap); 二…

2026/6/26 0:02:15阅读更多 →