端口检测需分三步:先用 ss 或 netstat 查本地监听,再用 telnet、nc 或 curl 测外部连通性,最后检查 firewalld、UFW 或 iptables 防火墙规则是否放行。

直接看 端口 有没有在监听,再确认它能不能从外面连上,两步缺一不可。
查本机端口是否在监听
用 ss 或 netstat 查本地有没有程序正在等连接:
- ss -tuln —— 显示所有 TCP/UDP 监听端口,不解析域名,结果干净易读
- netstat -tuln —— 功能类似,老系统更常见,CentOS 7+ 需先装
net-tools - 加 -p 参数(如
ss -tunlp)能看到哪个进程占着端口,PID 也一起显示,方便定位 - 想查具体端口,比如 3306,就加
| grep :3306过滤
测端口对外是否可访问
监听只是第一步,防火墙、安全组、网络策略都可能拦住外部访问。得从别的机器或本机模拟外部请求:
- telnet IP 端口 —— 连上了说明通,卡住或报“Connection refused”要分情况:拒绝是服务没起,超时多半是被墙了
- nc -zv IP 端口 —— 更轻量,-z 表示只探测不传数据,-v 显示详细结果,返回“succeeded”就是通的
- curl http://IP: 端口 —— 适合 HTTP 类服务,有响应体或 状态码(如 200)才算真正可用
检查防火墙有没有放行
即使服务在监听,没过防火墙照样连不上。不同发行版命令不一样:
- firewalld(CentOS/Rocky):
firewall-cmd --list-ports看已开放端口;firewall-cmd --add-port=8080/tcp --permanent && firewall-cmd --reload开新端口 - UFW(Ubuntu):
ufw status查状态;ufw allow 8080/tcp放行 - iptables(通用):
iptables -nL看规则;加一条-A INPUT -p tcp --dport 8080 -j ACCEPT再保存生效
快速扫描多个端口(进阶)
如果不确定哪些端口开着,或者要批量验证,nmap 很管用:
-
nmap -p 22,80,443 127.0.0.1—— 扫指定几个端口 -
nmap -F 192.168.1.100—— 扫最常用的 100 个端口 - 注意:云服务 器(如 阿里云 、 腾讯 云)默认限制扫描行为,可能只看到 22,别误判
基本上就这些。先看监听,再试连通,最后核对防火墙,三步走下来,端口开没开心里就有数了。