常见原因包括网络丢包/路由问题、被ISP或云厂商的访问控制(如安全组、NACL)拦截、本地或服务器端防火墙端口未开放、服务未启动或DNS解析错误。跨国链路还可能存在带宽限制、GFW/出口策略或中间路由器丢弃特定协议导致不可达。
先确认能否ping或使用traceroute到目标;再检查云端是否有对应的入站规则以及服务器是否在监听对应端口(例如22/80/443)。
Linux 常用命令:ss -tulnp或netstat -tulpn查看服务监听,iptables -L -n或ufw status查看本地规则;Windows 用“高级防火墙”或netsh advfirewall firewall show rule name=all。
使用 telnet server_ip port 或 nc -vz server_ip port、nmap -Pn -p port server_ip 验证端口是否可达;若 ICMP 被屏蔽,端口测试更有价值。
首选 traceroute(Linux)或 tracert(Windows)查看跳数与中断点;使用 mtr 可以同时查看延迟与丢包趋势;tracepath 用于MTU相关诊断。
示例:traceroute -T -p 443 target_ip(TCP模式)或 mtr -rw target_ip。若中间某跳持续超时,说明路由或防火墙在该跃点丢弃报文;若末跳可达但应用层无法连接,问题更可能在目标主机或安全组。
继续排查路由表与NAT配置:检查云厂商的路由表是否绑定到Internet Gateway(IGW)或NAT网关,确认弹性IP绑定正确;在私有子网中确保有出网路径。
在服务器端用 sudo tcpdump -nn -i any host 捕获入站数据包,确认包是否到达;用 ss -tulnp 确认服务在监听正确接口(0.0.0.0 vs 127.0.0.1)。若包到达但服务无响应,排查应用或SELinux等限制。
步骤1:确认DNS与IP,直接用IP连接以排除DNS问题(dig target / nslookup)。
步骤2:基础连通性:ping、traceroute/mtr,定位中断跃点。
步骤3:端口测试:telnet / nc -vz / nmap,确认防火墙端口是否开放。
步骤4:云端检查:登录控制台查看安全组、NACL、路由表、弹性IP及子网配置。
步骤5:本机与服务器防火墙:临时放通或关闭防火墙验证(慎用),并检查端口转发/路由规则。
步骤6:抓包确认:用 tcpdump 或 Wireshark 确认流量是否到达,必要时将抓包文件发给网络团队进一步分析。