上一篇
Linux如何查看端口信息?
- Linux
- 2025-05-31
- 3106
Linux查看端口信息常用命令:
netstat -tuln
(传统工具)或
ss -ltn
(更高效替代),显示所有监听端口,
lsof -i :端口号
可查具体端口占用进程。
核心端口查看工具
ss
命令(推荐工具)
取代过时的 netstat
,更高效读取内核数据。
常用操作:
# 查看所有监听端口(TCP/UDP) sudo ss -tuln # 解析结果示例 State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:*
- 参数解析
-t
:TCP端口
-u
:UDP端口
-l
:仅监听端口
-n
:禁用域名解析(显示数字IP)
-p
:显示进程信息(需sudo)
进阶技巧:
# 查看22端口占用进程 sudo ss -tlnp sport = :22
netstat
命令(传统工具)
部分旧系统仍依赖,但性能低于 ss
。
# 查看TCP监听端口 netstat -tln # 输出关键列说明: Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
lsof
命令(进程级分析)
直接关联端口与进程,适合深度排查。
# 查看80端口占用情况 sudo lsof -i :80 # 典型输出 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 1234 root 6u IPv4 12345 0t0 TCP *:http (LISTEN)
nmap
工具(端口扫描)
检测开放端口及服务指纹。
# 扫描本机开放端口(需安装nmap) sudo nmap -sT -p- 127.0.0.1 # 结果示例: PORT STATE SERVICE 22/tcp open ssh 3306/tcp open mysql
端口连通性测试
Telnet 基础测试
telnet 目标IP 端口号 # 连接成功示例: Trying 192.168.1.10... Connected to 192.168.1.10. Escape character is '^]'.
nc
(Netcat) 高级探测
# 测试UDP端口连通性 nc -zv -u 192.168.1.10 53
防火墙关联检查
端口开放≠服务可达,需同步验证防火墙:
# 查看iptables规则(传统) sudo iptables -L -n -v # 使用firewalld(现代系统) firewall-cmd --list-ports
场景化解决方案
需求场景 | 推荐命令 | 示例指令 |
---|---|---|
快速检查监听端口 | ss -tuln |
ss -tuln | grep :22 |
定位端口占用进程 | lsof -i |
sudo lsof -i :8080 |
扫描远程主机端口 | nmap |
nmap -p 1-1000 target_ip |
测试端口即时连通性 | telnet 或 nc |
nc -zv 192.168.1.5 443 |
安全与权限注意
- 权限要求:查看系统级端口需
sudo
权限 - 敏感操作:避免在生产环境随意执行端口扫描(可能触发安全警报)
- 工具安装:
# 安装nmaps及nc sudo apt install nmap netcat-openbsd # Debian/Ubuntu sudo yum install nmap nc # CentOS/RHEL
总结建议
- 日常运维:首选
ss
+lsof
组合,效率与功能平衡 - 深度分析:结合
nmap
扫描和防火墙验证 - 故障排查:按流程操作:
检查端口监听 → 确认进程 → 测试连通性 → 验证防火墙
引用说明基于 Linux Man Pages 官方文档(ss(8)、lsof(8))及网络管理最佳实践,命令示例已在 Ubuntu 20.04/CentOS 7 实测验证。
通过系统化掌握端口管理,您将显著提升Linux网络问题诊断效率,建议在实际环境中逐条演练命令,加深理解。