前言“在Oracle的e2.1.micro免费实例上安装了tailsacle 设置为了exit出口 Windows电脑也把这个实例作为所有流量exit出口 第一天连接这个出口的网速很快 但第二天、第三天就很慢 在云南省文山州使用Windows电脑e2.1.micro实例在Tokyo”一、可以通过如下命令优化网速这些命令是 Tailscale 官方推荐的性能优化配置特别是针对作为 Exit Node出口节点的 Linux 设备。tailscale netcheck检查当前网络连接状况包括 UDP 是否可用、NAT 类型、到 DERP 中继服务器的延迟、是否能直连等。这是 Tailscale 的诊断工具用于排查连接问题比如是直连还是走中继DERP中继速度通常慢很多。NETDEV$(ip -o route get 8.8.8.8 | cut -f 5 -d )自动获取默认路由出口网卡的名称通常是 eth0 或 ens3 等后面 ethtool 命令会用在这个网卡上。# 获取网卡名称 ens3ubuntu:~$ip-oroute get8.8.8.88.8.8.8 via10.0.0.1 dev ens3 src10.0.0.54 uid1001\cachesudo ethtool -K $NETDEV rx-udp-gro-forwarding on rx-gro-list off这是核心优化命令rx-udp-gro-forwarding on启用 UDP Generic Receive Offload 转发功能能让内核批量聚合传入的 UDP 包显著降低 CPU 开销提高转发吞吐量对 WireGuard/Tailscale 这种 UDP 隧道特别有效。rx-gro-list off接收通用接收分段列表关闭 GRO fraglist防止它优先级高于上面的 UDP GRO 转发导致优化失效。Tailscale 1.54 Linux 内核 6.2 时作为 Exit Node 或 Subnet Router 时强烈推荐开启能明显提升 UDP 转发性能。最后的 ethtool 检查命令验证设置是否生效。ubuntu:~$ethtool-k$NETDEV|grep-Erx-udp-gro|rx-gro-listrx-gro-list: off rx-udp-gro-forwarding: on总结这些命令优化了 Linux 内核对 UDP 流量的接收/转发能力减少 CPU 消耗提高 Tailscale Exit Node 的吞吐量尤其是高流量场景。不设置的话Tailscale 会提示 “UDP GRO forwarding is suboptimally configured” 警告性能受限。注意ethtool 修改重启后会丢失建议按 Tailscale 文档用networkd-dispatcher做开机自动生效。“第一天快后面慢”的原因Oraclee2.1.micro是burstable可突发的免费实例只有很低的 baseline CPU约 1/8 核有 CPU 积分credit机制。第一天快实例有积累的 CPU credit能突发高性能。第二天/第三天慢CPU credit 耗尽只能跑很低的 baseline 性能Tailscale WireGuard 加密 转发会很吃 CPU导致整体变慢。其他可能原因跨国 中国网络环境直连变中继DERP东京到云南的 UDP 直连可能不稳定尤其是 Oracle 的网络策略或中国出口限速。tailscale netcheck能确认。Oracle 免费实例网络本身有一定限制 长时间高负载。Windows 客户端问题或 MTU 不优。建议优化步骤立即检查在 Exit NodeOracle上运行tailscale netcheck和客户端的tailscale netcheck看是否直连Preferred DERP 相同且 latency 合理。检查 CPU 使用率htop或top看是否长期 100%。应用上面 GRO 优化已经贴的命令并做持久化。考虑换实例强烈推荐Oracle Ampere A1ARM免费实例转发性能远好于 E2 micro即使 1 OCPU 也能轻松跑几百 Mbps。很多用户反馈用 ARM 后速度大幅提升。其他优化确保 IP forwarding 和 iptables 配置正确Tailscale exit node 需要。Windows 客户端试试调整 MTU有时默认 1280 太保守。GRO 优化还没持久化或没完全生效Windows 客户端 MTU 或驱动问题立即诊断命令请在Windows 电脑上运行# 1. 看具体到 Exit Node 的连接详情tailscale ping 你的-exit-node-hostname# 或 tailnet IP# 2. 客户端自己的 netchecktailscale netcheck优化建议应用你之前提到的 GRO 命令并做开机持久化参考 Tailscale 文档用 networkd-dispatcher。在 Windows 客户端尝试tailscale down tailscale up --exit-nodexxx --reset调整 MTUtailscale up ... --mtu1280或 1420 测试监控 Exit Node CPUhtop如果长期接近 100%就是 CPU 瓶颈。二、查看mtu值PS C:\Users\netsh interface ipv4 show subinterfaces MTU MediaSenseState Bytes In Bytes Out Interface ------ --------------- --------- --------- -------------4294967295101326587Loopback Pseudo-Interface1128012418943923643979728Tailscale1500500Ethernet150011209466813430082065Wi-Fi21500500Local Area Connection*91500500Local Area Connection*10150010277173vEthernet(Default Switch)1500500vEthernet(June9virtual_Switch)11280 是 Tailscale 的默认值**也是最常用的推荐值。**默认1280的原因这是IPv6 要求的最小 MTURFC 标准规定 IPv6 至少支持 1280。Tailscale 是 WireGuard 隧道会有一定的封装开销UDP 加密头。默认 1280 能在绝大多数网络环境下稳定工作避免分片fragmentation和丢包。对大多数用户尤其是跨地区、跨运营商来说1280 是一个安全且平衡的选择。在你这个场景下的建议你的 Oracle → 云南是长距离国际直连网络路径复杂中间可能有各种 NAT、防火墙、中国出口等默认 1280已经算保守但不一定是“最优”。很多用户包括 Reddit 上反馈在类似长距离或不稳定链路上把 MTU 再调低到1250或1200后反而获得更高吞吐量和更稳定的速度。快速测试建议继续用你当前的 Wi-Fi 环境依次测试下面几个值每次改完测速 30-60 秒tailscale down# 最推荐先测这两个tailscale up--exit-nodeccpp--reset--mtu1250 tailscale up--exit-nodeccpp--reset--mtu1200# 如果还想试tailscale up--exit-nodeccpp--reset--mtu1280# 默认值tailscale up--exit-nodeccpp--reset--mtu1150# 再低一点极限测试