直接用nc -zv最快最准,它专为端口连通性测试设计,不传数据、只测tcp连接是否建立,响应快、结果明确;支持加-w设超时、-n跳dns、-u测udp,并可配合脚本批量检测。

直接用 nc -zv 最快最准,它专为这种场景设计,不依赖服务响应内容,只判断端口是否能建立 TCP 连接。
用 nc(netcat)快速探测内网端口
这是日常运维中最常用、最可靠的方式,适合脚本批量检查或快速验证。
- 基本命令:nc -zv 192.168.1.100 22(把 IP 和端口号换成你要测的目标)
-
-z 表示只扫描,不发数据;-v 显示详细结果,比如
succeeded!或Connection refused - 超时控制可加 -w 2(2 秒超时),避免卡住:nc -zv -w 2 192.168.1.100 8080
- 支持 UDP:nc -zuv 192.168.1.100 53(常用于 DNS)
用 telnet 做交互式验证
适合手动确认,尤其想看看服务有没有返回欢迎信息(比如 SSH、HTTP)。
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 执行 telnet 192.168.1.100 22,若显示
Connected to ...或出现SSH-2.0-...,说明端口通且服务在运行 - 如果提示
Connection refused,代表目标没监听该端口(服务未启动或绑定错了地址) - 如果卡住几秒后报
No route to host或Network is unreachable,说明网络层不通(IP 错、路由问题、中间设备拦截) - 注意:Ubuntu/Debian 默认不装 telnet,需先运行
sudo apt install telnet
用 curl 或 wget 验证 HTTP 类端口
只适用于 80、443、8080 等 Web 服务端口,它测的是“应用层是否响应”,不是单纯端口通不通。
- curl -I http://192.168.1.100:8080 —— 只取响应头,成功返回
HTTP/1.1 200 OK或类似状态码才算真正可用 - wget --spider -q http://192.168.1.100:80 —— 静默探测,靠退出码判断:
0是通的,4或8表示失败 - 它们对非 HTTP 服务(如 Redis、MySQL)无效,别误用
排查常见干扰因素
端口“测不通”不等于服务真有问题,得看是哪一层拦住了。
-
目标主机防火墙:CentOS 用
sudo firewall-cmd --list-ports,Ubuntu 用sudo ufw status,确认端口是否放行 -
服务是否真在监听:登录目标机器,运行
ss -tlnp | grep :22(把 22 换成你要查的端口),看有没有对应进程 - 监听地址是否限制:有些服务默认只监听 127.0.0.1(本地),需改配置绑定 0.0.0.0 才能被内网其他机器访问
- 交换机或路由器 ACL:局域网中某些带管理功能的设备可能做了端口级过滤,需同步检查










