在Linux系统中,查看端口信息(如监听、连接状态等)有多种常用方法,以下是详细总结:
netstat
命令sudo netstat -tuln
-t
:TCP端口-u
:UDP端口-l
:仅显示监听中的端口-n
:以数字形式显示地址和端口(不解析域名和服务名)Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
ss
命令(推荐,更高效)sudo ss -tuln
netstat
类似,但性能更好(现代Linux系统推荐使用)。lsof
命令sudo lsof -i -P -n | grep LISTEN
-i
:显示网络连接-P -n
:禁止端口到服务名的转换(直接显示数字)。sudo netstat -tunp # 显示进程信息
sudo ss -tunp # 更高效的替代方案
-p
:显示占用端口的进程(需root权限)。sudo lsof -i :22 # 检查22端口
sudo ss -tunlp | grep 22 # 过滤22端口
/etc/services
文件grep 22 /etc/services
nmap
扫描本地端口sudo nmap -sT -p- 127.0.0.1 # 扫描所有端口(耗时较长)
sudo iptables -L -n -v
sudo firewall-cmd --list-ports
telnet 127.0.0.1 22 # 测试本地22端口
nc -zv 127.0.0.1 22 # 使用netcat测试
curl -v telnet://127.0.0.1:22 # 使用curl测试
-p
参数)通常需要 sudo
。bash
sudo apt install net-tools lsof nmap # Debian/Ubuntu
sudo yum install net-tools lsof nmap # CentOS/RHEL
根据需求选择合适的方法,ss
和 lsof
是现代Linux系统中的首选工具。