如何查看服务器端口开放情况?
美国、香港服务器
如何查看服务器端口开放情况?
09-09 来源:
查看服务器端口开放情况可以通过系统自带的命令工具或第三方工具实现,不同操作系统(Windows、Linux)的操作方式略有不同,以下是具体方法:
** 一、Windows 系统查看服务器
1. 使用 netstat 命令(查看已开放且被监听的端口)
cmd
# 查看所有正在监听的端口(包括TCP和UDP)
netstat -ano
# 筛选特定端口(如80端口)
netstat -ano | findstr "80"
# 更简洁的查看方式(仅显示监听状态的端口)
netstat -tuln # 注意:Windows的netstat不支持-tuln参数,此为Linux参数,Windows可用:
netstat -ano | findstr "LISTENING"
参数说明:
-a:显示所有连接和监听端口;
-n:以数字形式显示 IP 和端口(不解析域名);
-o:显示占用端口的进程 PID,可在 “任务管理器” 中通过 PID 查找对应程序。
2. 使用 Get-NetTCPConnection(PowerShell 命令,更现代)
powershell
# 查看所有TCP监听端口
Get-NetTCPConnection | Where-Object { $_.State -eq "Listen" }
# 查看特定端口(如443)的监听状态
Get-NetTCPConnection -LocalPort 443
3. 查看防火墙开放的端口(允许外部访问的端口)
cmd
# 查看Windows防火墙入站规则中已开放的端口
netsh advfirewall firewall show rule name=all dir=in | findstr "LocalPort\|Enabled"
结果中 “LocalPort” 为开放的端口,“Enabled: Yes” 表示规则已启用。
二、Linux 系统
1. 使用 netstat 命令(需安装 net-tools 包)
bash
# 查看所有监听的端口(TCP+UDP)
netstat -tuln
# 查看特定端口(如22)是否被监听
netstat -tuln | grep "22"
参数说明:
-t:显示 TCP 端口;
-u:显示 UDP 端口;
-l:仅显示监听状态的端口;
-n:以数字形式显示(不解析服务名)。
2. 使用 ss 命令(推荐,替代 netstat 的新工具)
bash
# 查看所有监听端口
ss -tuln
# 查看特定端口(如8080)
ss -tuln | grep "8080"
3. 查看防火墙开放的端口
firewalld(CentOS/RHEL):
bash
# 查看当前开放的端口
firewall-cmd --list-ports
# 查看永久开放的端口(重启后生效的规则)
firewall-cmd --list-ports --permanent
ufw(Ubuntu/Debian):
bash
# 查看防火墙规则(包含开放的端口)
sudo ufw status
三、通用方法:通过外部工具验证端口是否可被访问
上述命令仅能查看服务器 “本地监听” 或 “防火墙规则”,但端口是否能被外部设备访问(如公网用户)还需考虑网络层(如路由器、云安全组)的限制。可通过以下方式验证:
在线端口扫描工具
使用网站如 IP 端口扫描、Canyouseeme,输入服务器公网 IP 和目标端口(如 80),若显示 “成功”,说明端口在公网可访问。
本地命令验证(从外部设备测试)
Windows/Linux:使用 telnet 命令(需先安装 telnet 客户端):
bash
telnet 服务器IP 端口号 # 如:telnet 1.2.3.4 80
若显示 “连接成功” 或进入空白界面,说明端口开放;若提示 “连接失败”,说明端口被拦截。
Linux:使用 nc(netcat)命令:
bash
nc -zv 服务器IP 端口号 # 如:nc -zv 1.2.3.4 443
显示 “succeeded” 表示端口开放。
总结
查看 “服务器本地监听的端口”:用 netstat(Windows/Linux)或 ss(Linux);
查看 “服务器防火墙开放的端口”:用 netsh(Windows)、firewall-cmd/ufw(Linux);
验证 “端口是否能被外部访问”:用在线工具或 telnet/nc 从外部设备测试。
通过这三类方法,可全面掌握服务器端口的开放状态及可访问性。
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快