一、在 Windows(PowerShell)中检测端口
1. Test-NetConnection
(适用于 Win8/10/11/Server 2012+)
这是 Windows 提供的一个现代化命令,功能强大,适合检测网络端口是否通。
Test-NetConnection -ComputerName 219.156.123.221 -Port 25
返回内容将包括:
-
TcpTestSucceeded
(布尔值) -
RemoteAddress
-
RemotePort
-
PingSucceeded
示例说明:
ComputerName : 219.156.123.221
RemoteAddress : 219.156.123.221
RemotePort : 25
InterfaceAlias : Ethernet
SourceAddress : 192.168.1.10
TcpTestSucceeded : False
-
True
:端口开放 -
False
:端口关闭/无响应
2. telnet
命令(需启用 Telnet Client 功能)
telnet 219.156.123.221 25
-
成功连接会显示欢迎信息,如
220 mail.example.com ESMTP...
-
如果端口被封,显示
连接失败
👉 启用方法(管理员 PowerShell):
dism /online /Enable-Feature /FeatureName:TelnetClient
3. netstat
查看本机监听状态
netstat -an | find ":25"
-
查看本地是否监听了目标端口;
-
LISTENING
表示已开放服务; -
ESTABLISHED
表示有连接存在。
二、在 Linux 中检测端口
1. telnet
(同 Windows)
telnet 219.156.123.221 25
2. nc
(netcat)
nc -vz 219.156.123.221 25
输出示例:
Connection to 219.156.123.221 25 port [tcp/smtp] succeeded!
如果失败:
nc: connect to 219.156.123.221 port 25 (tcp) failed: Connection refused
3. ss
或 netstat
查看监听状态
ss -tlnp | grep :25
或
netstat -tlnp | grep :25
结果示例:
LISTEN 0 100 0.0.0.0:25 0.0.0.0:* users:(("master",pid=1234,...))
三、常见服务排查实战技巧
🔸1. SMTP 邮件服务(端口 25、587、465)
检测目标:
-
Test-NetConnection
测试端口 25 是否通 -
telnet / nc 连接测试是否有 SMTP banner(220 开头)
常见问题及排查:
问题 | 排查建议 |
---|---|
TcpTestSucceeded: False |
可能是 ISP 封锁 25 端口,建议尝试 587 或 465 |
Connection refused |
服务未运行、端口未监听,检查邮件服务状态 |
Telnet 卡死不响应 | 服务器启用了防火墙,未放行端口 |
接入公网却检测为关闭 | 本机绑定 127.0.0.1 或仅监听内网地址 |
本地防火墙放行示例(Windows):
New-NetFirewallRule -DisplayName "Allow SMTP 25" -Direction Inbound -Protocol TCP -LocalPort 25 -Action Allow
🔸2. HTTP/HTTPS 服务(端口 80/443)
检测方法:
Test-NetConnection -ComputerName 219.156.123.221 -Port 80
常见问题与分析:
表现 | 可能原因 |
---|---|
浏览器无法访问 IP | 防火墙未开放 80/443 |
检测端口未开放 | Web 服务未启动(如 IIS、Apache、Nginx) |
显示 403 Forbidden |
服务配置正常,但限制了访问目录 |
可以访问 IP 但无法访问域名 | DNS 解析未生效,检查域名是否绑定正确 |
🔸3. 远程桌面(RDP,端口 3389)
检测方法:
Test-NetConnection -ComputerName 219.156.123.221 -Port 3389
常见问题及排查建议:
表现 | 原因 |
---|---|
无法连接 | 服务未开启,检查 Remote Desktop 设置 |
检测端口关闭 | 防火墙未放行 3389 端口 |
能连但黑屏 | 分辨率问题,或驱动崩溃,尝试不同远程桌面工具(如 mstsc / xrdp) |
四、总结与建议
工具/命令 | 系统 | 功能 |
---|---|---|
Test-NetConnection | Windows | 本地检测远程端口 |
telnet | 所有 | 连接指定端口,查看服务响应 |
nc(netcat) | Linux | 简洁检测 TCP 状态 |
netstat / ss | 所有 | 查看本地端口监听状态 |
建议每次测试结合:
-
在线工具(如 YouGetSignal)→ 从外部探测
-
本地工具 → 从内部验证配置
-
系统服务状态检查 → 确认服务是否启动
这样可以定位问题是在“本地防火墙”、“外网访问受限”还是“服务未运行”。