上一篇                     
               
			  Linux如何快速查看开放哪些端口?
- Linux
- 2025-06-15
- 5020
 在Linux系统中,查看开放端口(监听状态)的常用命令有:,1. 
 
 
netstat -tuln:列出TCP/UDP监听端口。,2. 
 ss -tuln:更快速的替代命令,功能类似。,3. 
 lsof -i -P -n | grep LISTEN:列出监听端口的进程信息。
在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)可显示端口对应的进程,适合定位服务冲突。
安装与使用: 
sudo lsof -i -P -n | grep LISTEN
- 参数解释:
 -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 基础网络管理指南。
 
  
			 
			 
			 
			 
			 
			