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

linux怎么查看开放了哪些端口号

端口 显示 LISTEN bash 225    来源:    2025-04-30

在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
  • 注意:部分新系统可能默认未安装 netstat,需通过包管理器安装(如 apt install net-toolsyum install net-tools)。

2. 使用 ss 命令(推荐,更现代的工具)

ss -tuln
  • 选项说明:与 netstat 类似,但性能更高。
  • 输出示例Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* tcp LISTEN 0 128 [::]:80 [::]:*

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 67890 0t0 TCP *:80 (LISTEN)

4. 检查防火墙规则(如 ufwfirewalld

  • UFW(Ubuntu)bash sudo ufw status
  • Firewalld(CentOS/RHEL)bash sudo firewall-cmd --list-ports

5. 使用 nmap 扫描本地端口

sudo nmap -sT -p- 127.0.0.1
  • 选项说明
    • -sT:TCP连接扫描。
    • -p-:扫描所有端口(1-65535)。
  • 注意:需提前安装 nmap(如 apt install nmapyum install nmap)。

6. 查看 /etc/services 文件

cat /etc/services
  • 作用:查看已知服务与端口的映射关系(非实时监听端口)。

总结推荐

  • 快速查看ss -tuln(无需安装,性能最佳)。
  • 详细信息sudo lsof -i -P -n(显示进程和用户)。
  • 外部扫描nmap(适合验证防火墙配置)。

根据需求选择合适的方法即可!

下一篇:linux nvm是什么