soarli

一次讲清:ping、端口、nc、curl 的正确打开方式
很多人在 Ubuntu 下排查网络时,都会遇到一个看似“合理”、实际上从根上就错了的问题:👉 我能不能 ping ...
扫描右侧二维码阅读全文
11
2026/02

一次讲清:ping、端口、nc、curl 的正确打开方式

很多人在 Ubuntu 下排查网络时,都会遇到一个看似“合理”、实际上从根上就错了的问题

👉 我能不能 ping 一下 172.19.166.58889 端口?

甚至有人会直接敲:

ping 172.19.166.5:8889

然后一脸懵:
怎么各种报错?是网络坏了?服务挂了?防火墙?

这篇文章就一句话目标:
把「ping 能干嘛、不能干嘛」一次讲透,顺便给你真正该用的命令。


一、先说结论:ping 根本不能测端口

这是最重要的一句:

ping 只能测试“主机是否可达”,完全不涉及端口。

原因很简单:

  • ping 使用的是 ICMP 协议
  • 端口只存在于 TCP / UDP
  • ICMP 压根没有“端口”这个概念

所以下面这些写法,全部是错的

ping 172.19.166.5:8889   # ❌
ping 8889                # ❌

如果你看到类似报错:

ping: usage error: Destination address required

那不是网络问题,而是 ping 没解析到合法的目标地址


二、那 ping 到底该什么时候用?

ping 只回答一个问题:

👉 这台机器在不在?网络通不通?

正确用法只有一个:

ping 172.19.166.5

如果:

  • 能 ping 通 → 主机在线、网络 OK
  • ping 不通 → 网络 / 路由 / ICMP 被禁

⚠️ 注意:
ping 通 ≠ 服务可用
很多新手就卡在这一步。


三、真正想测 8889,你该用什么?

你想测的其实是:

👉 172.19.166.58889 端口有没有服务在监听

这时,就该换工具了。


✅ 方案一:nc(最推荐,最通用)

nc -zv 172.19.166.5 8889

结果怎么看:

  • succeeded / open
    👉 端口是通的,服务在
  • connection refused
    👉 主机在,但端口没服务
  • timed out
    👉 网络 / 防火墙 / 路由挡了

一句话总结:
想测端口,第一反应就该是 nc。


✅ 方案二:curl(HTTP / API 服务首选)

如果 8889 跑的是 Web / API(非常常见):

curl http://172.19.166.5:8889

哪怕返回:

  • 404
  • JSON 报错
  • HTML 错误页

只要有响应,就说明端口是通的。

只想看状态、不拉内容:

curl -I http://172.19.166.5:8889

✅ 方案三:telnet(老工具,但直观)

telnet 172.19.166.5 8889
  • 显示 Connected 或黑屏 → 端口通
  • 直接失败 → 不通

退出方式:

Ctrl + ]
quit

四、一个速查表,防止下次再混

你想确认的是正确工具
机器在不在ping
端口通不通nc
HTTP / API 是否可用curl
Docker / 内网排错ping + nc

五、一句话总结(可以当金句)

ping 看的是“机器活没活”,不是“服务活没活”
端口问题,别再为难 ping 了

最后修改:2026 年 02 月 11 日 04 : 05 AM

发表评论