当前位置:首页 > Linux > 正文

Linux如何查看端口信息?

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)

进阶技巧:

Linux如何查看端口信息?  第1张

# 查看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
测试端口即时连通性 telnetnc nc -zv 192.168.1.5 443

安全与权限注意

  1. 权限要求:查看系统级端口需 sudo 权限
  2. 敏感操作:避免在生产环境随意执行端口扫描(可能触发安全警报)
  3. 工具安装
    # 安装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网络问题诊断效率,建议在实际环境中逐条演练命令,加深理解。

0