网络调试四剑客:ping / telnet / nc / netstat 速查指令集

摘要: 本文整理开发中常用的四种网络排查工具:用 ping 判断主机连通性,用 telnet 快速探测端口,用 nc 完成扫端口、传文件和临时通信,用 netstat 检查本机端口占用与连接状态。文末还提供常见场景速查表和踩坑提醒,方便遇到网络问题时按顺序快速定位。


1. ping ------ 先看路通不通

我最先用它。它就是我的"网络试金石",看目标主机在不在、往返要多久。

我常用的几种打法:

命令 什么时候用 我的示例
ping 目标 最简单的健康检查,看对方是否活着。 ping google.com
ping -c 4 目标 我只想看个大概结果,不想让它一直跑。 ping -c 4 192.168.1.1
ping -i 0.5 目标 网络不太稳定时,我想看看快速发包的效果。 ping -i 0.5 baidu.com
ping -s 1024 目标 有时我想测测大包会不会被丢。 ping -s 1024 8.8.8.8

重点看 time 值是否波动太大,以及有没有连续丢包。一旦 icmp_seq 不连续,我就知道链路可能有点问题了。


2. telnet ------ 快速摸一下端口

如果我怀疑是防火墙或服务没起来,我就用 telnet 简单探一下端口。虽然它不安全,但胜在几乎所有系统都有。

使用方式:

命令 什么时候用 我的示例
telnet 主机 端口 最直接的端口探测,能通就是好。 telnet 192.168.1.10 80
连接成功后 偶尔我会手动发个 HTTP 请求试试应用层。 输入 GET / HTTP/1.1 再按两下回车

判断结果的法则:

  • 连上 → 端口开着,往下查应用。
  • Connection refused → 服务根本没起来,或者端口没监听。
  • Connection timed out → 八成是防火墙拦了,或者 IP/端口写错了。

现在很多新机器默认没装 telnet,真要用就 yum install telnet 或 apt install telnet 先装上。


3. nc (netcat) ------ 功能最强的"瑞士军刀"

这玩意儿是工具箱里的"瑞士军刀"------能探测端口、传文件、甚至当简易服务器用。脚本里我最爱用它。

常用招数:

场景 我的命令 我这么用
快速扫端口 nc -zv 192.168.1.10 22-80 -z 只扫不连,-v 给我看结果,扫一段端口特别快。
设置超时 nc -w 2 -zv 10.0.0.1 443 网络慢的时候,别傻等着,2 秒没反应就放弃。
传文件(接收端) nc -l -p 1234 > file.txt 我这边先开着监听,等文件从另一边过来。
传文件(发送端) nc 192.168.1.2 1234 < file.txt 这是发送方,把文件内容送到接收端的 1234 端口。
临时聊天/调试 服务端:nc -l -p 5555 客户端:nc 192.168.1.2 5555 我偶尔用它做两个主机间的简单文本通信,比如调试时发个消息。

4. netstat ------ 查本机在干什么

前面三个都是往外看,netstat 是往内看------看机器上开了哪些端口、哪个进程占了端口、连接状态怎么样。这是我最常用来定位"端口被谁占了"的命令。

核心命令表:

命令 我什么时候用它 我的示例
netstat -tuln 查看本机在监听哪些端口,我最常用的命令。 netstat -tuln
netstat -antp 排查端口占用,这个命令带进程信息,定位问题首选。 netstat -antp
netstat -an 看所有连接的状态,包括建立的、等待的。 netstat -an
netstat -i 网卡是不是在丢包,用它看一眼统计。 netstat -i
netstat -r 我想知道数据包往哪个网关走了。 netstat -r
netstat -c -antp 持续监控连接变化,像 top 一样实时刷新。 netstat -c -antp

看输出的小窍门:

  • Local Address 是 0.0.0.0:80 → 表示所有 IP 的 80 端口都在监听。
  • State 是 LISTEN → 正在等待连接;ESTABLISHED → 连接已建立;TIME_WAIT → 正在关闭。
  • 用 -p 参数能看到进程 PID,找麻烦的进程就靠它。

实际案例: 有次我启动服务报 8080端口被占用,直接 netstat -antp | grep 8080,立刻找到是哪个进程,kill 掉就解决了。


场景速查表

遇到网络问题,按这个顺序来:

我的需求 我用的工具 我敲的命令
看看对方主机在不在 ping ping -c 4 8.8.8.8
随便探探某个端口通不通 telnet telnet 192.168.1.1 3306
快速扫一下端口范围 nc nc -zv 192.168.1.1 80-90
临时传个文件给同事 nc 我开监听,他发数据
看本机开了哪些端口 netstat netstat -tuln
查谁占了我想要的端口 netstat `netstat -antp

踩过的坑

  1. 安全提醒: 用 telnet 和 nc 传敏感信息?别,都是明文。
  2. 权限问题: 监听 1024 以下的端口,比如 80、443,必须用 sudo。netstat -p 也得加 sudo 才能看到进程名。
  3. Windows 上怎么办: Windows 有 ping,telnet 得去"启用或关闭 Windows 功能"里开,nc 就装个 Nmap 吧。netstat -ano 在 Windows 上也能用,就是少了 -p 的参数。
  4. 排查顺序: 我的习惯是 ping → telnet/nc → netstat → 再看应用日志,基本能解决 90% 的问题。
相关推荐
WJ.Polar15 小时前
Java封装、继承、多态
java·开发语言
众壹新能源科技15 小时前
逆变器自带无功不够用,加装5MVar SVG后功率因数从0.85回到0.99
运维·人工智能·自动化
..Dauntless..15 小时前
【Linux】一切皆文件和缓冲区
linux·运维·服务器
裕晟资质规划15 小时前
三类资质变更报告时限差在哪?军工 15 日、集成印制 10 日
大数据·服务器·网络
摇滚侠15 小时前
Java 中如何表示负数,有符号和无符号的区别,补码的计算规则,char byte short int long 的范围
java·开发语言
QMCY_jason15 小时前
x86 ubuntu2204 无gui 安装 openeuler 2203 aarch64版本
linux·运维·服务器
重生之小比特15 小时前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器
轻舟技术A15 小时前
Provider 不属于 Agent 核心:rpi 的分层理由与收益
服务器·网络
考拉讲支付15 小时前
母婴亲子服务平台分账架构设计:多场景多方分账与合规清结算实践
大数据·运维·人工智能·微信小程序·架构·微信公众平台
weixin_3077791315 小时前
C++代码实现MATLAB中的fitrtree函数功能
开发语言·c++·算法·matlab