没有不值得去解决的问题,也没有不值得去学习的技术!

After LetsVPN Dropped Self-Hosted WireGuard: A Review and Pitfall Guide for Slow Speeds on Chengdu Mobile Broadband With a Vultr Singapore Node

Speedtest bandwidth test, opened: https://www.speedtest.net/ . Results shown in Figure 2.

Since LetsVPN officially announced its shutdown, many users who value privacy and personal networking have turned to setting up their own WireGuard. Recently, a reader emailed me with a question: like me, they purchased a $5/month entry-level Singapore instance on Vultr, but after setting up WireGuard, accessing overseas platforms like Binance was very slow and pages stuttered while loading. They suspected a configuration issue on their end and wanted to know the specific cause and solution. See Figure 1.

Recently a reader emailed me asking: just like me, they bought a $5/month entry-level Singapore instance on Vultr, but after setting up WireGuard, accessing overseas platforms like Binance was very slow and pages stuttered while loading. They suspected a configuration issue on their end and wanted to know the specific cause and solution. See Figure 1.


This reader’s question actually highlights a common pitfall many beginners encounter after setting up their own WireGuard. Beginners generally share a consensus when selecting a server: prioritize Singapore datacenters. The reasoning is intuitive—the physical distance from China to Singapore is short, so theoretically, latency is lower and accessing overseas websites is smoother.
I am also using the same Vultr Singapore node, fully deployed WireGuard according to tutorials, and optimized every configuration item. Yet, I encountered the exact same issue as this reader in actual use: Binance loaded slowly, pages frequently showed loading spinners, and K-line charts lagged noticeably. Even though the bandwidth was fully utilized, the actual experience felt very unsmooth.
Therefore, I specifically conducted a full-process test covering Ping latency, traceroute, bandwidth speed tests, and real-world browsing experience. On one hand, this was to help the reader find the root cause; on the other, it was to clearly organize the test data, the root cause of the routing detours, common misconceptions, and actionable recommendations all at once. This serves as a practical pitfall-avoidance reference for readers planning to set up their own WireGuard and currently selecting VPS datacenters and routes.

1. Personal Test Environment Baseline

  • Local broadband: China Mobile home broadband in Chengdu, Sichuan (Gigabit bandwidth)
  • VPS provider: Vultr
  • Datacenter node: Singapore
  • Server specs: 1 vCPU / 1GB RAM / 25GB SSD / 2.5TB monthly traffic
  • Use case: Self-hosted WireGuard for personal use, browsing overseas sites, accessing market tracking platforms
  • Configuration status: WireGuard private/public keys, split tunneling rules, DNS, MTU, and keepalive parameters are all optimized. No configuration errors or firewall conflicts.

2. Raw Data from Comprehensive Testing

  1. PowerShell Ping Latency Test
Plaintext
PS C:\Users\Thinkpad> ping www.binance.com -n 30
Pinging dobbmei4jnjlh.cloudfront.net [18.64.211.66] with 32 bytes of data:
Reply from 18.64.211.66: bytes=32 time=410ms TTL=245
Reply from 18.64.211.66: bytes=32 time=415ms TTL=245
Reply from 18.64.211.66: bytes=32 time=418ms TTL=245
Reply from 18.64.211.66: bytes=32 time=426ms TTL=245
Reply from 18.64.211.66: bytes=32 time=408ms TTL=245
Reply from 18.64.211.66: bytes=32 time=407ms TTL=245
Reply from 18.64.211.66: bytes=32 time=419ms TTL=245
Reply from 18.64.211.66: bytes=32 time=409ms TTL=245
Reply from 18.64.211.66: bytes=32 time=423ms TTL=245
Reply from 18.64.211.66: bytes=32 time=426ms TTL=245
Reply from 18.64.211.66: bytes=32 time=415ms TTL=245
Reply from 18.64.211.66: bytes=32 time=418ms TTL=245
Reply from 18.64.211.66: bytes=32 time=407ms TTL=245
Reply from 18.64.211.66: bytes=32 time=410ms TTL=245
Reply from 18.64.211.66: bytes=32 time=412ms TTL=245
Reply from 18.64.211.66: bytes=32 time=409ms TTL=245
Reply from 18.64.211.66: bytes=32 time=406ms TTL=245
Reply from 18.64.211.66: bytes=32 time=408ms TTL=245

Ping statistics for 18.64.211.66:
    Packets: Sent = 18, Received = 18, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Control-C
PS C:\Users\Thinkpad> ping api.binance.com -n 30

Pinging d3h36i1mno13q3.cloudfront.net [18.155.69.202] with 32 bytes of data:
Reply from 18.155.69.202: bytes=32 time=263ms TTL=248
Reply from 18.155.69.202: bytes=32 time=255ms TTL=248
Reply from 18.155.69.202: bytes=32 time=265ms TTL=248
Reply from 18.155.69.202: bytes=32 time=257ms TTL=248
Reply from 18.155.69.202: bytes=32 time=256ms TTL=248
Reply from 18.155.69.202: bytes=32 time=253ms TTL=248
Reply from 18.155.69.202: bytes=32 time=253ms TTL=248
Reply from 18.155.69.202: bytes=32 time=257ms TTL=248
Reply from 18.155.69.202: bytes=32 time=256ms TTL=248
Reply from 18.155.69.202: bytes=32 time=254ms TTL=248
Reply from 18.155.69.202: bytes=32 time=273ms TTL=248
Reply from 18.155.69.202: bytes=32 time=297ms TTL=248
Reply from 18.155.69.202: bytes=32 time=310ms TTL=248
Reply from 18.155.69.202: bytes=32 time=311ms TTL=248
Reply from 18.155.69.202: bytes=32 time=253ms TTL=248
Reply from 18.155.69.202: bytes=32 time=253ms TTL=248

Ping statistics for 18.155.69.202:
    Packets: Sent = 16, Received = 16, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 253ms, Maximum = 311ms, Average = 266ms
Control-C
PS C:\Users\Thinkpad> ping 8.8.8.8 -n 30

Pinging 8.8.8.8 with 32 bytes of data:
Reply from 8.8.8.8: bytes=32 time=253ms TTL=117
Reply from 8.8.8.8: bytes=32 time=256ms TTL=117
Reply from 8.8.8.8: bytes=32 time=253ms TTL=117
Reply from 8.8.8.8: bytes=32 time=257ms TTL=117
Reply from 8.8.8.8: bytes=32 time=262ms TTL=117
Reply from 8.8.8.8: bytes=32 time=253ms TTL=117
Reply from 8.8.8.8: bytes=32 time=259ms TTL=117
Reply from 8.8.8.8: bytes=32 time=254ms TTL=117
Reply from 8.8.8.8: bytes=32 time=254ms TTL=117
Reply from 8.8.8.8: bytes=32 time=254ms TTL=117
Reply from 8.8.8.8: bytes=32 time=258ms TTL=117
Reply from 8.8.8.8: bytes=32 time=253ms TTL=117
Reply from 8.8.8.8: bytes=32 time=257ms TTL=117
Reply from 8.8.8.8: bytes=32 time=254ms TTL=117
Reply from 8.8.8.8: bytes=32 time=253ms TTL=117

Ping statistics for 8.8.8.8:
    Packets: Sent = 15, Received = 15, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 253ms, Maximum = 262ms, Average = 255ms
Control-C

Binance official site www.binance.com
Minimum 406ms, maximum 426ms, average 413ms, 0 packet loss.

Binance API api.binance.com
Minimum 253ms, maximum 311ms, average 266ms, 0 packet loss.

Public DNS 8.8.8.8
Average latency 255ms, link is smooth with no packet loss.

Summary: The network path is completely normal with no packet loss or disconnections, but the cross-border latency is severely high, falling far below the experience standard of premium routes.

  1. Tracert Route Analysis
Plaintext
PS C:\Users\Thinkpad> tracert www.binance.com

Tracing route to dobbmei4jnjlh.cloudfront.net [13.33.88.84]
over a maximum of 30 hops:

  1   254 ms   255 ms   260 ms  10.66.66.1 [10.66.66.1]
  2   259 ms   254 ms   253 ms  169.254.169.254
  3   275 ms   285 ms   274 ms  vl199-ds1-j2-r0124.sgp1.constant.com [45.32.97.97]
  4   261 ms   262 ms   253 ms  10.79.0.97 [10.79.0.97]
  5   275 ms   258 ms   257 ms  10.79.1.162 [10.79.1.162]
  6   261 ms   255 ms   280 ms  16509.sgw.equinix.com [27.111.228.87]
  7     *        *        *     Request timed out.
  8     *        *        *     Request timed out.
  9     *        *        *     Request timed out.
 10     *        *        *     Request timed out.
 11   252 ms   259 ms   268 ms  server-13-33-88-84.sin2.r.cloudfront.net [13.33.88.84]

Trace complete.

The traceroute visually shows the packet forwarding path, exposing the core issue:
2.1. The latency starts at 254ms right at the first hop of the WireGuard gateway. The bottleneck is not on the local computer; the root cause is the poor quality of the VPS datacenter’s return path to the Chengdu Mobile link.
2.2. The entire route uses standard international BGP backbones, with no CN2 GIA/CMI premium direct connect lines.
2.3. The route passes through numerous internal network relay nodes. Mid-section backbone nodes block ping requests and time out, indicating a redundant forwarding path and intentional routing detours.
2.4. Without optimized direct routing, the inherent latency cannot be brought down. No amount of local setting adjustments will help.

  1. Speedtest bandwidth test, opened: https://www.speedtest.net/ . Results shown in Figure 2.
Speedtest bandwidth test, opened: https://www.speedtest.net/ . Results shown in Figure 2.
  • Download: 61.26 Mbps
  • Upload: 41.07 Mbps
  • Test latency fluctuation: 304ms ~ 550ms

Key Conclusion:
Bandwidth is more than sufficient. The slow webpage loading, market chart stuttering, and spinning lag have absolutely nothing to do with bandwidth size or server specs. They are purely caused by high cross-border latency and routing detours.

  1. Real-world browsing experience
    Ordinary static web pages barely load, but slowly.
    Accessing market trading platforms like Binance results in slow homepage loading, frequent spinning wheels when switching pages, and noticeable lag in real-time K-line chart refreshing. The experience is very poor for latency-sensitive use cases.

3. In-depth Breakdown: Why is the network so slow despite the physical proximity?
Misconception: Close physical distance = Fast network speed
Most beginners select datacenters based on intuition:
Chengdu is geographically closer to Singapore than to Los Angeles, so it must be faster.

This is the biggest misconception.
Internet transmission does not depend on physical straight-line distance; it depends entirely on how the ISP’s backbone routes the traffic.

The inherent shortcoming of Chengdu Mobile broadband
Chengdu Mobile lacks a local international exit gateway. All cross-border traffic must first detour across provinces to a unified exit in Beijing, Shanghai, or Guangzhou before going overseas.
Despite being geographically close, data packets detour across half of China before being relayed out, drastically lengthening the actual transmission path.

The inherent limitation of Vultr’s Singapore route
To be blunt:
None of Vultr’s datacenters offer CN2 premium lines; they are all standard international BGP routes.
They are barely usable during off-peak hours, but once international link congestion hits during evening peak hours, latency spikes immediately.
Combined with Chengdu Mobile’s own routing detours, latency easily hits 300–400ms+.

Key Conclusion: It’s not your configuration
I have already optimized the Windows network, all WireGuard parameters, DNS, split tunneling, and keepalive to their best settings.
The facts prove:
The stuttering and high latency are unrelated to local settings, WireGuard configuration, server hardware tier, or bandwidth size. It is an inherent issue caused by the dual overlay of “Chengdu Mobile broadband routing + Vultr’s standard non-CN2 line.”

4. Actionable Advice for Self-Hosted WireGuard Users

  1. Advice for beginners to avoid pitfalls
    Do not blindly rush to the Singapore datacenter just because of “close physical distance.”
    Especially for Chengdu Mobile and standard home broadband users, blindly choosing Vultr Singapore makes it extremely easy to fall into the high-latency trap.
  2. Three viable solutions, choose as needed
    Solution 1: Maintain the status quo and make do for personal use
    If you don’t want to hassle with it, switch providers, or redeploy WireGuard, just accept it and keep using it as is.
    Pros: No migration hassle, no configuration changes, no need to re-adapt devices;
    Cons: You must accept high latency. Suitable for general browsing, but not for market tracking, trading, or low-latency scenarios.

Solution 2: Stay with Vultr, change datacenter but not platform
If you don’t want to change providers and fear the hassle of reinstalling and redeploying, you can migrate your Vultr server from Singapore to Los Angeles on the US West Coast.
Chengdu Mobile’s backbone route to the US West is actually more regular with fewer detours. Latency can drop from 400ms to around 200ms, noticeably improving stability and smoothness. The existing WireGuard setup only needs an IP change, requiring no major configuration modifications.

Solution 3: Pursue silky-smooth low latency (Optimal solution)
If you frequently access overseas platforms, check market charts, need pages to load instantly, and want K-line charts without lag:
Drop Vultr entirely and choose a VPS provider that offers Singapore CN2 GIA premium lines.
This truly leverages Singapore’s geographical proximity, keeping domestic latency stable at 140–180ms, with no congestion, latency fluctuation, or packet loss during evening peak hours.

5. Final Summary

  1. Slow access to overseas networks via self-hosted WireGuard is usually not a configuration issue, but a dual pitfall of broadband ISP routing and VPS line quality;
  2. Don’t choose datacenters based on intuition. Close physical distance ≠ close network routing. Chengdu Mobile users need to be especially aware of this;
  3. Vultr is suitable for beginners, offers easy deployment, and has lenient risk control, but lacking CN2 lines makes it unsuitable for strict low-latency requirements;
  4. If you don’t want to hassle with it, just make do. If you want a better experience, either migrate to the Los Angeles datacenter or switch directly to a premium line provider with CN2.
  5. I personally chose Solution 1: maintain the status quo and make do for personal use. I plan to redeploy using Solution 3 later when I have some free time.
系列导航

关于作者 · 持续学习与技术实践

我是一名拥有 15 年以上开发经验的技术从业者,自 2013 年起持续运营个人技术博客,记录工作与个人项目中遇到的真实问题,以及解决问题过程中的探索、实践和思考。

除了技术写作,我也在持续开发和维护自己的独立项目,探索新技术和新工具在实际场景中的应用。我始终相信,没有不值得去解决的问题,也没有不值得去学习的技术。

如果这篇文章对你有所帮助,欢迎浏览博客中的其他文章,也欢迎交流技术经验与想法。

关于我  ·  GitHub  ·  邮件联系