在香港服务器(Linux)上排查 TCP 重传(TCP Retransmission),可以按下面几个层次来查:网络层、系统层、抓包分析、应用层。
—
## 一、快速确认是否有 TCP 重传
### 1️⃣ 用 netstat / ss 看重传计数bash<br>netstat -s | grep -i retransmit<br>
或bash<br>ss -s<br>
常见指标:
- TCPRetransSegs:TCP 重传段数
- retransmitted:重传包数量
如果数值持续增长,说明存在重传。
—
## 二、更精细的 TCP 重传统计(推荐)
### 2️⃣ nstat(比 netstat 更准确)bash<br>nstat -az | grep -i retrans<br>
关注:
- TcpRetransSegs
- TcpExtTCPLoss
- TcpExtTCPFastRetrans
—
## 三、抓包分析(最直接)
### 3️⃣ 用 tcpdump 抓 TCP 重传bash<br>tcpdump -i eth0 -n 'tcp[tcpflags] & (tcp-rst|tcp-syn) == 0 and (tcp[13] & 0x04) != 0'<br>
或者更简单:bash<br>tcpdump -i eth0 tcp retransmitted<br>
(部分 tcpdump 版本支持)
导出分析:bash<br>tcpdump -i eth0 -w tcp.pcap<br>
然后用 Wireshark 打开,过滤:<br>tcp.analysis.retransmission<br>
—
## 四、内核 / 网络参数排查
### 4️⃣ 查看网卡丢包bash<br>ifconfig eth0<br>
或bash<br>ip -s link<br>
看:
- RX errors
- TX errors
- dropped
—
### 5️⃣ 查看队列与缓冲bash<br>ethtool -S eth0 | grep -i drop<br>bash<br>cat /proc/net/softnet_stat<br>
—
## 五、RTT 与丢包方向判断(香港服务器常见)
### 6️⃣ 看 RTT 和重传方向bash<br>ss -ti<br>
示例:<br>rtt:45ms rcv_rtt:40ms retrans:3<br>
如果是 到大陆 / 海外 重传高:
- 可能是 跨境链路丢包
- 国际出口拥塞(很常见)
—
## 六、常见原因(香港服务器)
✅ 国际出口丢包
✅ 防火墙 / 安全组限速
✅ 网卡 offload 异常
✅ 应用写 socket 太慢
✅ MTU / MSS 不匹配(尤其 VPN、隧道)
—
## 七、快速优化建议(可先试)bash<br># 开启 BBR<br>sysctl -w net.core.default_qdisc=fq<br>sysctl -w net.ipv4.tcp_congestion_control=bbr<br>bash<br># 增大缓冲<br>sysctl -w net.ipv4.tcp_rmem="4096 87380 67108864"<br>sysctl -w net.ipv4.tcp_wmem="4096 65536 67108864"<br>
—
## 八、如果你愿意,我可以帮你
你可以补充:
- 服务器系统(CentOS / Ubuntu / Debian)
- 重传发生在 入站还是出站
- 是否跨境(大陆 ↔ 香港)
- 是否有公网 IP / 专线 / 云厂商
我可以直接给你针对性排查命令 + 优化方案。