在Linux运维中,测试端口开放状态是必备技能——排查网络故障、验证服务部署、检查防火墙规则都要用到。那么Linux怎么测试端口是否开放?接下来请看下文。
查本机端口是否在监听
用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个端口
2387

被折叠的 条评论
为什么被折叠?



