Linux如何快速查看开放哪些端口?
- Linux
- 2025-06-15
- 5
在Linux系统中,查看开放端口是系统管理、网络安全排查和服务器配置的基础操作,开放端口可能成为安全风险入口,也可能影响服务正常运行,以下是几种专业可靠的方法,操作前建议使用sudo或root权限以确保结果完整。
使用 netstat 命令(经典工具)
netstat 是传统网络工具,可查看端口和连接状态。
安装与使用:
# 如果未安装(部分新系统需手动安装) sudo apt install net-tools # Debian/Ubuntu sudo yum install net-tools # CentOS/RHEL # 查看所有监听端口 sudo 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
提示:Local Address列中:22表示22端口开放,0.0.0表示监听所有IP。

使用 ss 命令(推荐替代方案)
ss(Socket Statistics)是netstat的现代替代品,速度更快且功能更强。
基本命令:
sudo ss -tuln # 参数含义同netstat
进阶用法:
# 查看所有已建立连接的端口 sudo ss -tun state established # 检查特定端口(如80端口) sudo ss -tun sport = :80
使用 lsof 命令(查看进程关联端口)
lsof(List Open Files)可显示端口对应的进程,适合定位服务冲突。
安装与使用:

- 参数解释:
-i:显示网络连接
-P:禁用端口别名(显示数字端口)
-n:禁用域名解析
输出示例: sshd 1234 root 3u IPv4 28777 0t0 TCP *:22 (LISTEN) nginx 5678 root 6u IPv6 34521 0t0 TCP *:80 (LISTEN)
输出中*:22表示22端口由sshd进程监听。
使用 nmap 扫描(检测外部可见端口)
nmap 是专业级扫描工具,可检测防火墙规则下的实际开放端口。
安装与扫描:
# 安装nmap sudo apt install nmap # Debian/Ubuntu sudo yum install nmap # CentOS/RHEL # 扫描本机开放端口 nmap -sT -p- localhost
- 参数解释:
-sT:TCP连接扫描
-p-:扫描所有端口(1-65535)
输出示例:
PORT STATE SERVICE 22/tcp open ssh 80/tcp open http
注意:nmap扫描结果反映外部可访问的端口,可能受防火墙影响。
查看 /etc/services 文件(端口服务映射)
该文件记录了标准端口与服务名称的对应关系:
grep -w '80/tcp' /etc/services # 查询80端口对应的服务
输出示例:
http 80/tcp www # World Wide Web HTTP
防火墙工具辅助
若使用防火墙(如ufw或firewalld),需单独检查规则:
- ufw(Ubuntu): sudo ufw status # 查看允许的端口
- firewalld(CentOS/RHEL): sudo firewall-cmd --list-ports
总结与安全建议
- 方法选择:
- 快速检查:用 ss -tuln
- 查进程关联:用 lsof -i -P -n
- 外部扫描:用 nmap localhost
- 安全提示:
- 关闭无用端口(如测试后忘记关闭的临时端口)。
- 限制高危端口(如22、3306)的IP访问范围。
- 定期使用 nmap 扫描服务器,验证防火墙有效性。
- 权限注意:
除nmap外,其他命令通常需sudo权限才能查看所有端口。
引用说明:
- Linux man 手册(命令后输入 man netstat、man ss 等)。
- Nmap官方文档:https://nmap.org/docs.html。
- Linux Foundation 基础网络管理指南。