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

Linux如何快速查看端口占用?

查看Linux端口常用命令: ,1. netstat -tunlp 显示TCP/UDP监听端口及对应进程 ,2. ss -tunlp 更快速的替代方案,用法类似netstat ,3. lsof -i :端口号 精确查看指定端口占用进程 ,需root权限查看所有进程信息。

使用 netstat 命令(经典工具)

netstat 是传统网络工具,可查看监听端口和活动连接:

# 查看所有监听端口(TCP/UDP)
sudo netstat -tuln
# 查看所有活动连接(含进程名)
sudo netstat -tulnp

参数解析

  • -t:TCP端口
  • -u:UDP端口
  • -l:仅显示监听端口
  • -n:以数字形式显示(不解析域名)
  • -p:显示关联进程名(需sudo权限)

输出示例

Proto Recv-Q Send-Q Local Address  Foreign Address  State       PID/Program name
tcp        0      0 0.0.0.0:22     0.0.0.0:*        LISTEN      1234/sshd

适用场景:快速检查服务监听状态(如SSH默认端口22)。


使用 ss 命令(推荐替代方案)

ss(Socket Statistics)是netstat的现代替代品,速度更快:

Linux如何快速查看端口占用?  第1张

# 查看所有监听端口
sudo ss -tuln
# 查看特定端口(如80)占用情况
sudo ss -tuln sport = :80

优势

  • 更低的系统资源消耗
  • 支持过滤语法(如 sport = :443 过滤443端口)

使用 lsof 命令(查看进程级占用)

通过进程视角检查端口使用:

# 查看所有进程占用的网络端口
sudo lsof -i -P -n
# 检查特定端口(如3306)的进程
sudo lsof -i :3306

输出关键列

  • COMMAND:进程名称
  • PID:进程ID
  • TYPE:协议类型(TCP/UDP)
  • NODE:端口号

使用 nmap 扫描本地端口(安全检测)

通过扫描工具检查开放端口:

# 安装nmap(如未安装)
sudo apt install nmap  # Debian/Ubuntu
sudo yum install nmap  # CentOS/RHEL
# 扫描本机所有端口
sudo nmap -sT -p- 127.0.0.1

参数说明

  • -sT:TCP连接扫描
  • -p-:扫描1-65535全部端口
  • 0.0.1:目标IP(本机)

注意:避免未经授权扫描他人服务器,可能触发安全警报。


查看 /etc/services 文件(端口与协议映射)

获取标准端口号对应的服务名称:

cat /etc/services | grep -w 80

输出示例

http    80/tcp    www    # World Wide Web HTTP

此文件定义了IANA分配的端口标准,但实际服务可能使用非标准端口


关键注意事项

  1. 权限问题
    • 查看进程关联端口需 sudo 权限(如 netstat -plsof)。
  2. 端口状态解析
    • LISTEN:服务正在监听
    • ESTABLISHED:活动连接
    • TIME_WAIT:连接关闭中
  3. 防火墙影响
    • 端口开放但无法访问?检查防火墙:
      sudo ufw status        # Ubuntu防火墙
      sudo firewall-cmd --list-ports  # CentOS防火墙

总结建议

  • 日常运维:优先使用 ss -tuln(高效)或 netstat -tuln(兼容性好)。
  • 进程排查:用 lsof -i :端口号 定位占用进程。
  • 安全审计:通过 nmap 验证端口暴露情况。

定期检查端口可有效预防未经授权的服务运行,提升系统安全性,建议结合自动化工具(如 fail2ban)加强防护。


引用说明 参考 Linux 官方文档(man pages)及以下资源:

  1. netstat, ss, lsof, nmap 的 Linux man 手册(终端输入 man 命令名 查看)
  2. IANA 端口分配标准(https://www.iana.org/assignments/service-names-port-numbers)
  3. Linux 网络管理权威指南《The Linux Documentation Project》
0