插件窝 干货文章 linux怎么查看开启了哪些端口

linux怎么查看开启了哪些端口

端口 使用 方法 52    来源:    2025-04-14

在 Linux 系统中,可以通过以下几种方法查看当前开启的端口:


方法 1:使用 netstat 命令

netstat -tuln

参数说明: - -t:显示 TCP 端口
- -u:显示 UDP 端口
- -l:仅显示监听状态的端口
- -n:以数字形式显示地址和端口(不解析域名和服务名)

输出示例:

Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp6       0      0 :::80                   :::*                    LISTEN     
udp        0      0 0.0.0.0:68              0.0.0.0:*                          

注:部分系统可能需安装 net-tools 包(如 Ubuntu/Debian:sudo apt install net-tools)。


方法 2:使用 ss 命令(推荐,更高效)

ss -tuln

参数说明:
netstat 类似,但性能更好(现代 Linux 默认工具)。


方法 3:使用 lsof 命令

sudo lsof -i -P -n | grep LISTEN

参数说明: - -i:显示网络连接
- -P:禁用端口号转换服务名(直接显示数字端口)
- -n:禁用 IP 地址转换域名

输出示例:

sshd     1234     root    3u  IPv4  12345      0t0  TCP *:22 (LISTEN)
nginx    5678     www-data 6u  IPv6  54321      0t0  TCP *:80 (LISTEN)

方法 4:查看 /proc/net/tcp 和 `/proc/net/udp

cat /proc/net/tcp
cat /proc/net/udp

注:输出为十六进制端口号(如 1F90 = 8080),需手动转换。


方法 5:使用 nmap 扫描本地端口

sudo nmap -sT -p- 127.0.0.1

参数说明: - -sT:TCP 连接扫描
- -p-:扫描所有端口(1-65535)


关键注意事项

  1. 需要 root 权限:部分命令(如 lsofnmap)需加 sudo 才能查看所有端口。
  2. 防火墙影响:即使服务监听端口,防火墙(如 iptables/ufw)可能阻止外部访问。检查防火墙规则: bash sudo iptables -L # 查看 iptables 规则 sudo ufw status # 查看 UFW 防火墙状态
  3. IPv4/IPv6:注意输出中的 0.0.0.0(IPv4)和 ::(IPv6)表示监听所有接口。

快速总结

  • 推荐命令:优先使用 ss -tuln(无需安装,性能最佳)。
  • 详细分析:结合 lsof 查看具体进程信息。
  • 外部扫描:使用 nmap 验证端口外部可见性。

如有其他需求(如过滤特定端口),可进一步组合 grep 使用。