欢迎光临
我们一直在努力

服务器开放端口检查指南(Linux / Windows)

一、本地端口检查(在服务器上执行)

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

五、端口检查清单

快速排查流程:

  • 本地监听检查:ss -tuln 或 netstat -ano
  • 进程确认:查看端口对应的进程是否正常运行
  • 防火墙检查:确认本地防火墙是否放行
  • 云安全组:检查云平台安全组规则
  • 外部测试:从外部使用 nmap 或 telnet 测试
  • 常见问题排查:

    # 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 端口号

    安全建议:

  • 最小化开放:仅开放必要的端口
  • 访问限制:使用安全组/IP白名单限制访问源
  • 服务绑定:非必要服务绑定到 127.0.0.1 而非 0.0.0.0
  • 定期审计:定期检查开放端口,关闭不必要的服务
  • 监控告警:设置新端口开放告警
  • 六、一键检查脚本(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'

    赞(0)
    未经允许不得转载:171主机测评 » 服务器开放端口检查指南(Linux / Windows)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址