推荐用 nc -zv 127.0.0.1 端口号 测试本地端口连通性,它专为tcp连接探测设计,响应快、结果明确;支持超时(-w)和udp(-u)测试,比telnet更轻量高效。

用 nc 测试本地端口(推荐)
这是最常用也最可靠的方式,适合快速验证或写脚本批量检查。
-
基本命令:`nc -zv 127.0.0.1 8080`(把 8080 换成你要测的端口)
-z 表示只探测连接,不发数据;-v 显示详细结果,比如 succeeded! 或 Connection refused - 加超时避免卡住:`nc -zv -w 2 127.0.0.1 3306`(2 秒超时)
-
测 UDP 端口:加
-u,例如 `nc -zuv 127.0.0.1 53`
用 telnet 手动确认(适合交互式排查)
适合想看服务是否返回欢迎信息(如 SSH、HTTP),但 Ubuntu/Debian 默认不装,需先运行 sudo apt install telnet。
- 执行
telnet 127.0.0.1 22,出现 Connected to 127.0.0.1 或 SSH-2.0- 表示端口通且服务在运行 - 提示 Connection refused → 服务没监听该端口(可能未启动,或配置绑定的是 127.0.0.1 以外地址)
- 卡住后报 No route to host → 本地网络栈异常(极少见,一般不是这个问题)
查服务是否真在监听(关键一步)
端口“测不通”不等于服务挂了,得确认它是否真的在本地监听这个端口和地址。
- 运行
ss -tlnp | grep ':端口号'(如ss -tlnp | grep ':8080') - 看输出中 Local Address:Port 是否包含
127.0.0.1:8080或*:8080(*表示监听所有地址) - 如果只看到
127.0.0.1:8080,那它只能被本机访问;若想从其他机器访问,得改配置绑定0.0.0.0
用 curl 或 wget 验证 HTTP 类服务(仅限 Web 端口)
它们测的是“应用层是否响应”,不是单纯端口通不通,只适用于 80、443、8080 等 HTTP/HTTPS 服务。
-
curl -I http://127.0.0.1:8080—— 返回 HTTP/1.1 200 OK 才算真正可用 -
wget --spider -q http://127.0.0.1:80—— 静默探测,退出码为 0 表示通 - 对 Redis、MySQL 等非 HTTP 服务无效,别误用











