在 Linux 系统中,查看端口是否开放,可以使用多种命令。以下是几种常用的方法:
✅ 方法 1:使用 netstat 命令
sudo netstat -tuln | grep <端口号>
-t:监听 TCP 端口-u:监听 UDP 端口-l:只显示监听中的端口-n:以数字形式显示端口grep <端口号>:过滤特定端口
示例:
sudo netstat -tuln | grep 80
如果看到输出,说明端口 80(HTTP)是开放的。
✅ 方法 2:使用 lsof 命令
sudo lsof -i -P -n | grep <端口号>
-i:显示网络连接-P:不使用协议名(如TCP、UDP)-n:不解析主机名grep <端口号>:过滤特定端口
示例:
sudo lsof -i -P -n | grep 80
✅ 方法 3:使用 ss 命令(推荐)
sudo ss -tuln | grep <端口号>
-t:TCP-u:UDP-l:只显示监听端口-n:不解析地址和端口
示例:
sudo ss -tuln | grep 80
✅ 方法 4:使用 nmap 命令(更全面)
nmap -sT <目标IP> -p <端口号>
-sT:TCP 连接扫描<目标IP>:目标 IP 地址<端口号>:要检查的端口
示例:
nmap -sT 192.168.1.1 -p 80
如果看到 open,说明端口是开放的。
✅ 方法 5:使用 telnet 或 nc(更简单)
telnet <目标IP> <端口号>
- 如果能连接,说明端口开放
示例:
telnet 192.168.1.1 80
✅ 常见端口开放状态:
| 端口 | 用途 |
|---|---|
| 80 | HTTP |
| 443 | HTTPS |
| 22 | SSH |
| 25 | SMTP |
| 53 | DNS |
| 3306 | MySQL |
| 3389 | RPC/SSH |
✅ 总结
| 命令 | 说明 |
|---|---|
netstat -tuln |
查看监听的 TCP/UDP 端口 |
lsof -i -P -n |
查看网络连接信息 |
ss -tuln |
更快的 netstat 替代 |
nmap -sT <IP> -p <port> |
更全面的扫描 |
telnet <IP> <port> |
直接测试连接 |
如需进一步检查某个端口是否被防火墙阻挡,可以使用:
sudo ufw status
或:
sudo iptables -L -n -v
如需帮助检查某个特定端口,请告诉我端口号和目标 IP!