上一篇                     
               
			  Linux端口号怎么查
- Linux
- 2025-06-19
- 3979
 使用
 
 
netstat -tuln查看监听端口,
 ss -tuln更高效,
 lsof -i :端口号或
 lsof -i可查端口占用进程,
 nmap localhost扫描本机开放端口。
在Linux系统中,查询端口号是管理网络服务、排查连接问题或安全审计的常见需求,以下是几种专业、可靠且高效的方法,适用于不同场景:
使用 ss 命令(推荐)
 
ss(Socket Statistics)是替代 netstat 的现代工具,执行速度快且无需额外安装。
操作步骤: 
-  查看所有监听端口: ss -tuln - -t:TCP 端口
- -u:UDP 端口
- -l:仅显示监听(LISTEN)状态
- -n:以数字形式显示端口(不解析服务名)
 
-  过滤特定端口(如查询 80 端口): ss -tuln sport = :80 
输出示例:
State   Recv-Q  Send-Q   Local Address:Port   Peer Address:Port
LISTEN  0       128           0.0.0.0:22          0.0.0.0:*表示 22 端口(SSH)正在监听所有 IP。

使用 netstat 命令(传统方法)
 
若系统未预装 ss,可使用 netstat(需安装 net-tools 包): 
sudo apt install net-tools # Debian/Ubuntu sudo yum install net-tools # CentOS/RHEL
常用命令:
netstat -tuln | grep LISTEN
参数含义与 ss 相同,但执行效率较低。
使用 lsof 命令(查看进程占用)
 
lsof 可显示端口关联的进程,适合定位冲突: 

- 安装(如未预装): sudo apt install lsof # Debian/Ubuntu sudo yum install lsof # CentOS/RHEL 
- 查询端口占用(如 443 端口): sudo lsof -i :443 输出示例: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 1234 root 6u IPv4 12345 0t0 TCP *:https (LISTEN)显示 nginx进程占用了 443 端口。
使用 nmap 扫描端口(远程/本地检测)
 
nmap 用于主动扫描开放端口,支持本地和远程主机: 
- 安装: sudo apt install nmap # Debian/Ubuntu sudo yum install nmap # CentOS/RHEL 
- 扫描本机开放端口: nmap -sT -p- localhost - -sT:TCP 连接扫描
- -p-:扫描所有端口(1-65535)
 
查看 /etc/services 文件(端口服务映射)
 
此文件记录了标准端口与服务名称的对应关系:

cat /etc/services | grep -w 80
输出示例:
http    80/tcp    www    # World Wide Web HTTP仅作参考,实际端口以运行状态为准。
注意事项
- 权限要求: 
  - lsof和部分- netstat操作需- sudo权限才能查看所有进程。
 
- 参数差异: 
  - 不同 Linux 发行版(如 Ubuntu、CentOS)命令参数可能略有差异,建议查阅手册(man ss)。
 
- 不同 Linux 发行版(如 Ubuntu、CentOS)命令参数可能略有差异,建议查阅手册(
- 安全实践: 
  - 生产环境中慎用 nmap扫描外部主机,可能触发防火墙警报。
 
- 生产环境中慎用 
总结建议
- 首选 ss:效率高、功能全,适合快速检查。
- 进程排查用 lsof:精准定位端口占用程序。
- 远程检测用 nmap:扫描开放端口。
引用说明参考 Linux 官方文档(man pages)、IBM DeveloperWorks 网络管理指南,以及 Red Hat 系统管理员手册,命令均通过 Ubuntu 22.04/CentOS 7 实测验证。
 
  
			 
			 
			 
			 
			 
			