一、本地端口检查(在服务器上执行)
Linux 系统
1. ss 命令(推荐,性能更好)
# 查看所有监听端口(TCP + UDP)
ss -tuln
# 仅查看 TCP 监听端口
ss -tln
# 查看监听端口及对应进程名
ss -tlpn
参数说明:
- -t:TCP 端口
- -u:UDP 端口
- -l:仅显示监听端口
- -n:显示数字端口(不解析服务名)
- -p:显示进程信息
2. netstat 命令(经典工具)
# 查看所有监听端口
netstat -tuln
# 查看端口及进程信息
sudo netstat -tulnp
3. lsof 命令(查看进程占用)
# 查看所有监听连接
sudo lsof -i -P -n | grep LISTEN
# 查看指定端口
sudo lsof -i:22
Windows 系统
1. netstat 命令
# 查看监听端口及进程 PID
netstat -ano | findstr LISTENING
# 查看所有连接和端口
netstat -an
# 查找特定端口(如 80)
netstat -ano | findstr :80
2. PowerShell 命令(推荐)
# 查看监听端口(详细)
Get-NetTCPConnection | Where-Object State -eq Listen
# 查看端口及进程名
Get-NetTCPConnection –State Listen | Select-Object LocalPort, OwningProcess | ForEach-Object {
$proc = Get-Process –Id $_.OwningProcess –ErrorAction SilentlyContinue
[PSCustomObject]@{
Port = $_.LocalPort
PID = $_.OwningProcess
ProcessName = $proc.Name
}
}
二、远程端口扫描(从外部检查)
使用 nmap 扫描
# 快速扫描常见端口
nmap -sT 服务器IP
# 扫描指定端口范围
nmap -sT -p 1-1000 服务器IP
# 扫描所有端口(耗时较长)
nmap -sT -p- 服务器IP
# 快速扫描(仅 TCP SYN)
nmap -sS 服务器IP
使用 telnet 或 nc 测试单个端口
# telnet 测试(Windows/Linux 通用)
telnet 服务器IP 端口号
# nc 测试(Linux)
nc -zv 服务器IP 端口号
# PowerShell 测试(Windows)
Test-NetConnection 服务器IP -Port 端口号
三、防火墙配置检查
Linux 系统
iptables 防火墙
# 查看防火墙规则
sudo iptables -L -n -v
# 查看 NAT 规则
sudo iptables -t nat -L -n
# 保存规则(某些系统)
sudo iptables-save
firewalld 防火墙
# 查看所有信息
sudo firewall-cmd –list-all
# 查看开放端口
sudo firewall-cmd –list-ports
# 查看服务
sudo firewall-cmd –list-services
UFW 防火墙(Ubuntu)
# 查看状态
sudo ufw status verbose
# 查看编号规则
sudo ufw status numbered
Windows 系统
PowerShell 检查
# 查看所有启用的防火墙规则
Get-NetFirewallRule | Where-Object Enabled -eq True | Select-Object Name, DisplayName, Direction, Action
# 查看入站规则
Get-NetFirewallRule –Direction Inbound | Where-Object Enabled -eq True
# 查看端口规则
Get-NetFirewallPortFilter | Select-Object Protocol, LocalPort
高级安全防火墙
# 查看防火墙配置
netsh advfirewall show allprofiles
四、云服务器额外检查
安全组/防火墙规则
- 阿里云:ECS 控制台 → 安全组规则
- 腾讯云:CVM 控制台 → 安全组
- AWS:EC2 控制台 → Security Groups
- Azure:虚拟机 → 网络 → 网络安全组
绑定与监听检查
# 检查服务是否绑定到正确地址(Linux)
sudo netstat -tuln | grep :端口号
# 查看服务绑定配置(如 MySQL、Nginx)
# MySQL: bind-address in my.cnf
# Nginx: listen directive in nginx.conf
五、端口检查清单
快速排查流程:
常见问题排查:
# 1. 检查端口是否被占用
sudo lsof -i :端口号
# 2. 检查服务是否启动
systemctl status 服务名 # Linux
Get-Service 服务名 # Windows PowerShell
# 3. 测试端口连通性(本地)
telnet 127.0.0.1 端口号
# 4. 检查 SELinux(Linux)
sudo semanage port -l | grep 端口号
安全建议:
六、一键检查脚本(Linux)
#!/bin/bash
echo "=== 端口监听检查 ==="
ss -tuln
echo -e "\\n=== 防火墙规则检查 ==="
if command -v firewall-cmd &> /dev/null; then
sudo firewall-cmd –list-all
elif command -v ufw &> /dev/null; then
sudo ufw status verbose
else
sudo iptables -L -n -v
fi
echo -e "\\n=== 高亮显示常见服务端口 ==="
ss -tuln | grep -E ':(22|80|443|3306|5432|6379|8080)\\s'




