当前位置:首页 > 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张

优势

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


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

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

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

输出关键列

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

  • 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 文件(端口与协议映射)

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

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

cat /etc/services | grep -w 80

输出示例

http 80/tcp www # World Wide Web HTTP

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


关键注意事项

  1. 权限问题
    • 查看进程关联端口需 sudo 权限(如 netstat -p 或 lsof)。
  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