检查端口是否开放需分本地监听与远程连通性:1. 用ss -tuln | grep :端口号查看本地监听状态;2. 用nc -zv IP 端口测试远程连通性;3. 结合firewall-cmd或iptables确认防火墙规则放行。
要检查某个端口在 linux 系统上是否开放,可以根据你是想查看本地服务监听状态,还是测试远程主机的端口连通性,选择不同的方法。下面介绍几种常用且实用的方式。
1. 使用 netstat 查看本地端口监听状态
netstat 可以列出系统中正在监听的端口和服务。
- 命令示例:
sudo netstat -tuln | grep :端口号
- 说明:
-
-t
:显示 TCP 端口
-
-u
:显示 udp 端口
-
-l
:仅显示监听状态的端口
-
-n
:以数字形式显示地址和端口
-
- 例如检查 80 端口:
sudo netstat -tuln | grep :80
如果输出中有 LISTEN 状态,说明该端口正在被本地服务监听。
2. 使用 ss 命令(推荐替代 netstat)
ss 是更现代、更快的工具,功能类似 netstat。
- 命令示例:
sudo ss -tuln | grep :端口号
- 例如检查 22 端口:
sudo ss -tuln | grep :22
- 如果有结果返回并显示 LISTEN,表示端口已打开并监听。
3. 使用 telnet 测试远程端口连通性
telnet 可用于测试目标主机的某个端口是否可连接。
- 命令示例:
telnet 主机IP 端口号
- 例如:
telnet 192.168.1.100 80
- 如果连接成功,出现空白屏幕或欢迎信息,说明端口是开放的;如果提示“Connection refused”或超时,则端口未开放或被防火墙拦截。
4. 使用 nc(netcat)检测端口
nc 是一个强大的网络调试工具,适合检测端口。
- 检查远程端口:
nc -zv IP地址 端口号
- 例如:
nc -zv 10.0.0.5 22
-
-z
表示只扫描不发送数据,
-v
表示显示详细信息。
- 返回“succeeded”表示端口开放。
5. 检查防火墙设置(可能影响端口可见性)
即使服务在监听,防火墙也可能阻止外部访问。
- 查看 firewalld 规则:
sudo firewall-cmd --list-all
- 查看 iptables 规则:
sudo iptables -L -n | grep 端口号
- 确保相关端口已在防火墙中放行。
基本上就这些。根据使用场景选择合适的方法:本地监听用 ss 或 netstat,远程连通用 telnet 或 nc。注意权限和防火墙的影响,排查更全面。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容