部署后外部访问不了
服务部署完成但外部访问不了,用四层排查链逐层排除:先确认本机是否在监听、再确认本机防火墙是否放行、然后看中间设备与代理、最后检查云平台安全组。顺序颠倒会反复在错误的层面折腾。
基本信息
| 适用平台 | Windows 服务端与云主机环境 |
|---|---|
| 第一层 监听 | 查看端口是否被监听、归属进程与绑定地址 |
| 第二层 自测 | 向本机对应端口发起连接,确认服务本身可用 |
| 第三层 防火墙 | 查询入站规则是否放行该端口,并确认网络配置文件档位 |
| 第四层 外部验证 | 从另一台机器发起连接,再核对安全组与边界设备 |
| 高频成因 | 服务绑定到回环地址,或者只改了系统防火墙没改安全组 |
排查步骤
- 1. 确认服务在监听:查端口对应的进程号,核对是否是真想跑的程序
- 2. 本机自测:连接本机端口,先确认服务本身可用
- 3. 检查防火墙是否放行该端口,并确认网络配置文件档位匹配
- 4. 从另一台机器发起连接,区分本机问题与网络问题
- 5. 云主机再核对安全组与网络访问控制列表
常用示例
常用示例
REM 查看端口监听与归属进程
netstat -ano | findstr :8080
REM 结构化查看监听地址与状态
powershell -c "Get-NetTCPConnection -LocalPort 8080 | Select-Object LocalAddress, State, OwningProcess"
REM 本机自测
powershell -c "Test-NetConnection 127.0.0.1 -Port 8080"
REM 检查防火墙是否放行该端口
netsh advfirewall firewall show rule name=all | findstr 8080
REM 从另一台机器测试可达性
powershell -c "Test-NetConnection 服务器地址 -Port 8080"排查层对照
| 层次 | 检查内容 | 典型问题 |
|---|---|---|
| 监听 | 端口是否被监听、绑定在哪个地址 | 只绑定回环地址导致外部不通 |
| 服务自测 | 本机连接该端口是否成功 | 服务未启动或已崩溃 |
| 本机防火墙 | 入站规则是否放行该端口 | 规则存在但未启用 |
| 网络路径 | 跨机连接是否可达 | 路由或中间设备拦截 |
| 云安全组 | 平台侧访问控制是否放行 | 只改了系统防火墙没改安全组 |
服务绑定到回环地址时外部永远连不上,这是很常见的部署疏漏。先看监听地址再怀疑防火墙,能省掉大量无效排查。
只在本机测通就宣布部署完成,是典型的事故来源。至少要从另外一台机器验证一次;涉及公网访问的,还要从外网侧验证。