在 Linux 系统中,有多种方法可以检查端口是否开放。以下是几种常用的方法:
netstat
命令netstat -tuln | grep <端口号>
或
netstat -tuln | grep LISTEN
选项说明:
- -t
:显示 TCP 端口
- -u
:显示 UDP 端口
- -l
:仅显示监听端口
- -n
:以数字形式显示地址和端口号
ss
命令(推荐,比 netstat 更快)ss -tuln | grep <端口号>
或
ss -tuln | grep LISTEN
lsof
命令lsof -i :<端口号>
nmap
工具(需要安装)nmap -p <端口号> localhost
安装 nmap:
# Debian/Ubuntu
sudo apt install nmap
# CentOS/RHEL
sudo yum install nmap
telnet
测试远程端口telnet <IP地址> <端口号>
如果端口开放,会显示连接成功;如果关闭,会显示连接失败。
nc
(netcat) 测试端口nc -zv <IP地址> <端口号>
选项说明:
- -z
:只扫描监听进程,不发送数据
- -v
:显示详细信息
curl
测试 HTTP/HTTPS 端口curl -v http://<IP地址>:<端口号>
curl -v https://<IP地址>:<端口号>
# iptables
sudo iptables -L -n
# firewalld (CentOS/RHEL)
sudo firewall-cmd --list-all
# ufw (Ubuntu)
sudo ufw status
选择哪种方法取决于你的具体需求和系统环境。对于本地端口检查,ss
或 netstat
通常是最快捷的方式;对于远程端口检查,telnet
、nc
或 nmap
更为适用。