先明确目标:把流量经过东南亚(Singapore/新加坡等)节点,降低到目标服务的 RTT。准备工作:有可用的东南亚 VPS/云主机或 VPN/加速服务账号;能访问路由器管理界面(OpenWrt/商用路由);熟悉基本命令行(ping、traceroute、iperf3、ssh)。
工具清单:ping/tracert(Windows)、traceroute/mtr(Linux/macOS)、iperf3(带宽/延迟测量)、WireGuard/OpenVPN 客户端、SSH 账号、DNS 管理控制台。
先量化当前延迟。Windows:打开 cmd,执行 ping your-target -n 20;tracert your-target。Linux/macOS:ping -c 20 your-target;sudo mtr -c 100 your-target 或 traceroute -I your-target。
用 iperf3 做吞吐与延迟基准:在东南亚 VPS 上运行 iperf3 -s,在本地运行 iperf3 -c VPS_IP -P 4 -t 30。记录 RTT、丢包率和抖动,这些数值决定下一步优化方向。
优先选择离用户或目标服务地理上最近且拥有良好公网对等(peering)的节点:新加坡(ap-southeast-1)通常是最优选。比较 AWS/GCP/Azure、DigitalOcean、Vultr 等提供商的 RTT。
参考选择项:查看各家在你所在 ISP 的实际 RTT(ping 测试)、是否有 Anycast/POP、是否提供 BGP/直连或游戏加速服务(若为游戏)。
在东南亚 VPS 上安装 WireGuard(Ubuntu):sudo apt update && sudo apt install wireguard;生成密钥:wg genkey | tee privatekey | wg pubkey > publickey。
示例客户端配置(wg0.conf):[Interface] PrivateKey = <私钥> Address = 10.0.0.2/32 DNS = 1.1.1.1;[Peer] PublicKey = <服务端公钥> Endpoint = x.x.x.x:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 25。启动:sudo wg-quick up wg0。说明:若只想对部分目的地走 SEA,修改 AllowedIPs 为目标网段,而非 0.0.0.0/0(实现分流)。
在路由器上部署 WireGuard 客户端,把需要的设备/IP 指向通过该隧道:OpenWrt LuCI -> Network -> Interfaces -> Add new interface -> Protocol: WireGuard。填写公私钥、Endpoint、AllowedIPs。
配置策略路由(policy routing):给手机/主机分配静态 DHCP,然后在策略路由插件中设置这台设备走 WireGuard 接口。调整 MTU(建议 1420)以防分片,并在防火墙上允许 UDP 51820/端口。
如果是自己托管服务,启用 GeoDNS 或 负载均衡(latency-based routing):如使用 Cloudflare、AWS Route53 加入新加坡节点并设置健康检查与权重。CDN 应选择在东南亚有 POP 的供应商。
Linux TCP 优化(可降低传输延迟):启用 BBR:sudo sysctl -w net.core.default_qdisc=fq && sudo sysctl -w net.ipv4.tcp_congestion_control=bbr;写入 /etc/sysctl.conf 以永久生效。同时可调整 net.ipv4.tcp_window_scaling、net.core.rmem_max、wmem_max 等。
问:如何确认已经走的是东南亚节点而不是本地 ISP?
答:看外网 IP 与路由路径:访问 ipinfo.io 或 myip.cn 检查显示的 IP/位置是否为东南亚 VPS;再用 traceroute/mtr 检查路径是否经过 VPS 的 IP。若使用 WireGuard,运行 wg 来查看已建立的 peer 与传输流量(transfer 字段)。
问:把默认流量全走 SEA,会不会让国内网站变慢或丢包?
答:会有可能。全局走远端节点会增加访问国内站点的 RTT。建议使用分流(split-tunnel):只把需要低延迟访问的目标或设备走 SEA,其它流量走本地出口。路由器或 WireGuard 的 AllowedIPs 可精确控制。
问:连接不稳定、丢包或高抖动怎么办?我该如何逐步排查?
答:排查步骤:1)本地到 VPS 做 ping/traceroute,检查哪一跳开始丢包;2)若最后一跳丢包,检查 VPS 防火墙/iptables 是否限制;3)若中间丢包,联系本地 ISP 或更换 VPS 提供商;4)尝试更改 MTU、启用 TCP BBR、增加 Keepalive;5)测试不同端口或 UDP/TCP 协议(WireGuard 使用 UDP,有时换端口能避开限速)。