网络调试四剑客: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 telnetapt 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 Address0.0.0.0:80 → 表示所有 IP 的 80 端口都在监听。
  • StateLISTEN → 正在等待连接;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. 安全提醒:telnetnc 传敏感信息?别,都是明文。
  2. 权限问题: 监听 1024 以下的端口,比如 80、443,必须用 sudonetstat -p 也得加 sudo 才能看到进程名。
  3. Windows 上怎么办: Windows 有 pingtelnet 得去"启用或关闭 Windows 功能"里开,nc 就装个 Nmap 吧。netstat -ano 在 Windows 上也能用,就是少了 -p 的参数。
  4. 排查顺序: 我的习惯是 pingtelnet/ncnetstat → 再看应用日志,基本能解决 90% 的问题。
相关推荐
码农大叔的博客1 小时前
golang示例:switch
开发语言·后端·golang
小五传输1 小时前
Serv-U替代方案怎么选?政务机关文件安全传输对比与迁移指南
大数据·运维·安全
个 人 练 习 生1 小时前
数据结构入门:算法复杂度
开发语言·数据结构·经验分享·学习·程序人生·算法
woniu_buhui_fei1 小时前
日常工作常用的命令(Linux+JDK)
linux·运维·服务器
W_326001 小时前
Python-OpenCV边缘检测与阈值分割:Sobel、Scharr、Laplacian、Canny、全局与自适应阈值
开发语言·图像处理·python·opencv·机器学习
其实防守也摸鱼1 小时前
红队技能总结导图:从入门到精通的完整知识体系
开发语言·人工智能·学习·安全·web安全
聊浮游1 小时前
JAVA2026最新全套学习资料、学习路线
java·开发语言·jvm·mysql·spring·maven·idea
snow@li1 小时前
Telnet 全景教程:全平台安装、命令使用、故障排查与安全规范
运维·网络
Bruce_Liuxiaowei2 小时前
自动化渗透测试——用AI构建自动化渗透测试流程
运维·人工智能·自动化