1.
初步判断与必须准备项
1) 确认目标服务器IP与域名:例如新加坡VPS IP 139.99.100.20,域名 example-sg.com。
2) 检查本地网络是否正常:比如本机内网网关 192.168.1.1 可达,WAN 延迟<100ms 为理想。
3) 准备工具:ping/traceroute(mtr)、telnet/nc、浏览器开发者工具、ssh/WinSCP、以及管理员权限。
4) 备份重要配置:hosts、路由表、firewall 规则,以便恢复。
5) 记录初始数据:记录 ping 丢包率与平均时延供对比(示例见表格)。
2.
DNS 与 hosts 临时指向调整(快速验证是否为域名解析问题)
1) 直接用 IP 访问:在浏览器或 curl 中用 http://139.99.100.20 替代域名,确认是否能连通。
2) 本地修改 hosts 文件:添加 139.99.100.20 example-sg.com,用于绕过DNS缓存问题。Windows 路径 C:\Windows\System32\drivers\etc\hosts,Linux /etc/hosts。
3) 更换本地 DNS:临时改为 1.1.1.1 或 8.8.8.8 以排除解析异常。
4) 刷新 DNS 缓存:Windows 执行 ipconfig /flushdns,macOS sudo killall -HUP mDNSResponder,Linux systemd-resolve --flush-caches。
5) 验证解析链路:使用 dig +trace example-sg.com 或 nslookup 观察各级 DNS 返回是否正常。
3.
路由与 MTU 调整(解决分片或中间网络丢包)
1) 使用 traceroute 或 mtr 检查到 139.99.100.20 的跃点与在哪一跳开始丢包。示例:第5跳延迟突增并出现 30% 丢包。
2) 临时添加静态路由(Windows):route ADD 139.99.100.20 MASK 255.255.255.255 192.168.1.1 METRIC 1。Linux 示例:sudo ip route add 139.99.100.20/32 via 192.168.1.1。
3) 调整本地 MTU:如果经过链路存在 PMTU 问题,可将本机网卡 MTU 从1500降至1400(Windows netsh interface ipv4 set subinterface "以太网" mtu=1400 store=persistent;Linux ip link set dev eth0 mtu 1400)。
4) 关闭/开启 TCP 分段协商:在路由器上尝试开启 MSS clamp,为 HTTP 和 SSH 减少分片。
5) 测试效果:再次执行 ping -M do -s 1472 139.99.100.20 检查是否需要更小的包尺寸。
4.
端口与防火墙排查(本地与服务器端同步检查)
1) 使用 telnet 或 nc 检查端口连通性:telnet 139.99.100.20 80 或 nc -vz 139.99.100.20 22。
2) 本地防火墙临时放行:Windows Defender 允许出站端口 80/443/22;Linux sudo iptables -I OUTPUT -p tcp --dport 80 -j ACCEPT(操作后记得恢复)。
3) 检查服务器端防火墙与安全组:在 VPS 控制面板确认 80/443/22 对应规则允许新加坡或你所在公网IP。示例:安全组允许 0.0.0.0/0 TCP 80/443。
4) 若使用 CDN(如 Cloudflare),尝试切换“开发者模式”或直连源站 IP 验证是否为 CDN 转发问题。
5) 查看服务器日志:nginx access/error 或 sshd 日志确认是否有连接到达或因 fail2ban 拒绝(/var/log/auth.log 或 /var/log/nginx/error.log)。
5.
DDoS 与速率限制的应对(本地可做的缓解与验证)
1) 判定是否为 DDoS:短时间内大量 SYN/UDP 请求或异常流量飙升,服务器负载飙高(CPU>80%、网络峰值)。
2) 本地使用不同公网 IP 尝试连接:若多地均无法连通,可能是被上游或目标机防护触发。
3) 临时使用 VPN 或不同出口验证是否被 ISP 路由或上游丢弃。
4) 在服务器端启用简单防护:配置 nginx limit_conn/limit_req,安装 fail2ban,或在云端启用 DDoS 防护与 CDN 加速。示例 nginx 配置片段:worker_processes 4; keepalive_timeout 65; limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s。
5) 与服务商沟通:提供时间戳、流量曲线与样例 pcap,要求上游过滤或临时流量调度。
6.
真实案例与具体配置举例(含数据对比表)
1) 案例简介:用户 A 连接新加坡 VPS(IP 139.99.100.20,Location: Singapore),表现为网页超时且 SSH 无法连接。
2) 初始检测数据:本地 ping 平均延迟 210ms,丢包率 40%;traceroute 在第6跳丢包严重。
3) 操作项:修改 hosts 指向 139.99.100.20,切换 DNS 到 1.1.1.1,调整本地 MTU 1500→1400,添加静态路由并临时禁用本地防火墙。
4) 结果对比表(单位:ms / % 丢包),见下表:
| 测试项 | 调整前 | 调整后 |
| ping 平均 | 210 ms | 78 ms |
| 丢包率 | 40% | 0% |
| SSH 连接 | 超时 | 成功(22s) |
| HTTP 响应 | 502/504 | 200 OK |
5) 结论与建议:该问题主要由中间链路 MTU/路由问题引起,通过调整本地 MTU、添加路由并直连源站临时绕过 CDN,问题得以解决。长期建议与VPS提供商确认链路并开启 CDN+DDoS 防护,同时在服务器端配置 rate limiting 与 fail2ban。
来源:新手教程新加坡服服务器无响应时的本地网络设置调整方法