JohnWatsoon / WatTunnel
git clone https://github.com/JohnWatsoon/WatTunnel.git
v2.5.1 Β· 6d ago
Fast, encrypted TCP/UDP tunnel that keeps working when the network only lets ping through. ICMP, UDP, TCP, TLS, WebSocket, HTTP/2 and gRPC carriers in one process.
+4
stars, 24h Β· #6,862
+~51
stars, 7 days Β· #3,929
+97
stars, 30 days Β· #7,315
97
β
total Β· +51% this week
9
forks Β· 1 open issues
Star history (as recorded here)
LanguageGo
LicenseMIT
Created2026-10-10 (13d ago)
Last pushtoday
Watchers0
OwnerUser
GitHub topics
anti-censorshipcensorship-circumventioncloudflareechgolangicmp-tunnelinternet-freedomiraniran-internetping-tunnelport-forwardingrealityshadowsockstunneltunnel-servertunnelingvlessvpnwireguardxray
Links
- GitHub: github.com/JohnWatsoon/WatTunnel
- Homepage: https://t.me/WatxDev
- Releases Β· Issues Β· Hacker News mentions
README excerpt
# πͺ WatTunnel **Encrypted Iran β Kharej port forwarding that keeps working when the network is filtered, even when only ping gets through.** **English** Β· ΩΨ§Ψ±Ψ³Ϋ --- WatTunnel connects an **Iran** server (where your users connect) to a **Kharej** server (where your service runs) and forwards any TCP or UDP port between them. One static binary, no dependencies, and a menu that sets everything up from one pasted token. It rides whatever your route lets through: `icmp` (ping), `udp`, `tcp`, `tls`, `ws`, `wss`, `h2`, `h2c`, `grpc`, Cloudflare with ECH, reverse mode, or several of them bonded into one tunnel. ## Speed Measured on real Iran β Europe servers (2 vCPU each), October 2026. Ping is the round trip through the tunnel while it is fully loaded; the route's own ping is about 40 ms. | Connection type | Download | Upload | Ping under load | |---|---|---|---| | **TCP / TLS / reverse** (2.5.1, production tunnel with users on it) | **195 MB/s (~1.6 Gbit)** | **276 MB/s (~2.2 Gbit)** | 40-51 ms | | **ICMP** (only ping passes on the route) | **up to ~33 MB/s**, the route's maximum | 26 MB/s | 40-45 ms | | **Cloudflare CDN** (`wss` + ECH, 4 sessions) | 44-48 MB/s | up to 82 MB/s | 109-116 ms (CDN base 86) | Plain TCP with no tunnel at all reaches 243 MB/s down on the same route with 16 connections. WatTunnel, encrypted, reaches **80 % of that**. Full tables, every version and how each was measured: docs/TECHNICAL.md. ## Compared to other tunnels Same servers, same filtered route (only ICMP passes), real VLESS traffic through each tunnel: | Tool | Throughput | Latency p50 | Iran CPU per MB | RAM | |---|---|---|---|---| | **WatTunnel** | **up to ~33 MB/s** | **40-45 ms** | **0.026 CPU-s** | **~40 MB** | | GOST v3 ICMP | 1.6-5.4 MB/s | ~51 ms | 0.15-0.20 CPU-s | 50-70 MB | | BackPack (tuned) | ~6.1 MB/s | 102 ms | - | - | | Hans | 1.1-3.8 MB/s | - | - | - | | WireGuard over pingtunnel | 0.25-2.7 MB/s | - | - | - | | pingtunnel | ~0.5 MB/s under load | - | CPU saturates | - | | ptunnel-ng | ~20 KB/s | - | - | - | That is **about 5x the next best ICMP tunnel, 6-20x GOST at 6-7x less CPU**, and one process carries 250-300 real users. | | WatTunnel | GOST | pingtunnel | Hans | ptunnel-ng | |---|:-:|:-:|:-:|:-:|:-:| | ICMP carrier | β | β | β | β | β | | UDP / TCP / TLS / WS / gRPC carriers | β | β | β | β | β | | Cloudflare/CDN with ECH | β | - | β | β | β | | One token tests every connection type for you | β | β | β | β | β | | Loss does not slow it down (delay-based pacing) | β | β | β | β | β | | All ports in one process | β | β | β | β (tun) | β | | Add or remove ports without a restart | β | β | β | - | β | | Reverse mode / reverse ICMP | β / β | β / β | β | β | β | | Per-port traffic stats and quotas | β | β | β | β | β | | Guided menu, auto-heal, update and rollback | β | β | β | β | β | On a clean, unfiltered link every tunnel reaches line rate and GOST uses a little less CPU; WatTunnel still halves small-request latency there (43 ms vs 83 ms) because i