在用台湾电信接入并走cn2宽带的场景下,最佳的目标通常是稳定低延迟与可预测的丢包率;最好是选择到目的地具有直连或优质对等的CN2 GIA路径;而最便宜的做法则是通过服务器端的软件优化(如调整MTU、TCP参数、使用压缩或反向代理)来改善体验,无须马上更换高价专线。本文侧重于面向服务器的系统化故障排查与解决步骤,帮助工程师快速定位并修复常见问题。
常见问题包括高延迟、间歇性或持续性丢包、速度达不到预期、连接不稳定、单向丢包(上行或下行)以及DNS解析异常等。服务器端相关的根因可能是物理链路、网卡配置、内核网络栈、应用层瓶颈、防火墙或ISP路由策略(如BGP)等。
检查交换机端口、光纤/网线、SFP模块与接口速率。服务器上使用 ethtool、ip link 或 ifconfig 检查速率、双工异常与错误计数。例如:ethtool eth0、ip -s link show eth0。若发现 CRC/ Frame 错误或抖动,优先更换链路或调整光模块/线缆。
确认CPU、内存与磁盘IO是否成为瓶颈(top、htop、iostat)。应用层阻塞或文件描述符耗尽也会造成“网慢”。检查系统日志(/var/log/messages 或 journalctl)与应用日志,确认是否有大量重试、TIME_WAIT 堆积或连接被应用层拒绝。
从服务器端做 ping、traceroute、mtr 来判断丢包与跳数定位。使用 mtr -rwz 目标可以得到持续丢包与延迟分布。用 tcpdump 或 tshark 抓包(tcpdump -i eth0 host A.B.C.D -w cap.pcap)观察TCP三次握手、重传与ICMP不可达信息,判定是否为PMTU或防火墙丢包。
若问题表现为跨境延迟或特定目的地丢包,需检查路由策略。对边界路由器查看BGP表、邻居状态与是否存在路径波动。可以要求ISP提供BGP路由收敛、AS路径与是否通过CN2 GIA。对端出现不良路径时,通常需与ISP商务/技术沟通并提供mtr/traceroute结果。
若存在大包发送后出现片段或连接失败,可能是MTU或PMTU黑洞。验证方法:从服务器用 ping -M do -s 1472 目标(注意Windows与Linux差异)来测试最大不分片包。解决方法包括调整服务器网卡MTU、降低应用层MSS(iptables --set-mss)或与ISP协商修复ICMP转发。
检查并调整内核参数:net.ipv4.tcp_window_scaling、tcp_rmem/tcp_wmem、tcp_tw_reuse、net.ipv4.ip_local_port_range 等,以适应高并发。对于虚拟化或云环境,关闭或调整GRO/GSO/TSO可缓解微小包延迟问题(ethtool -K eth0 gro off gso off tso off)。更新网卡驱动与固件也常能解决奇怪的性能问题。
大量短连接或SYN洪泛会耗尽nf_conntrack表,导致新连接被丢弃。检查 /proc/net/nf_conntrack、conntrack -L。若满了,适当增大 net.netfilter.nf_conntrack_max 并优化超时参数,或在防火墙规则中减少不必要的逐包检查。
使用 iperf3 在服务器与测试端之间进行TCP/UDP吞吐测试,验证是否能达到链路速率。注意测试方向(上行/下行)与并发连接数。若TCP无法达到线速,结合 tcpdump 查看重传与拥塞窗口(cwnd)情况,排查丢包/延迟导致的影响。
收集详细证据:mtr/traceroute 列表、tcpdump 抓包、系统与防火墙日志、BGP路由表、接口错误计数与时间点。这些信息在与ISP或上游运营商沟通时非常关键,能缩短问题定位周期。
临时:调整MTU/MSS、增加conntrack、关闭GRO/GSO、在应用侧降速或重试策略。长期:考虑购买CN2 GIA或增加多线BGP冗余、部署大陆节点或CDN以减少跨境依赖、做流量工程与QoS策略。对于预算敏感的场景,先用软件优化与CDN边缘节点能达到“最便宜”的效果。
快速Checklist:1) 检查物理链路与接口错误;2) 确认主机资源与应用状态;3) 用mtr/traceroute定点;4) 抓包看重传/ICMP;5) 检查BGP/路由;6) 调整MTU与内核参数;7) 检查防火墙与conntrack。若自行无法解决,向台湾电信提供上述采样数据并要求排查cn2宽带链路。
常用命令示例:ping, traceroute, mtr, tcpdump -i eth0, iperf3, ethtool eth0, ss -s, netstat -s, sysctl -a | grep net.ipv4。将输出保存并附给ISP以便协同定位。