feat: listen on all interfaces, hotspot sharing for iOS/laptop#483
Merged
therealaleph merged 1 commit intotherealaleph:mainfrom Apr 29, 2026
Merged
Conversation
Change default `listen_host` from `127.0.0.1` to `0.0.0.0` so the proxy is reachable from other devices on the same network. This enables hotspot sharing: run the app on Android with hotspot enabled, and an iPhone/iPad/laptop on the same WiFi can use the proxy by pointing at the Android's hotspot IP (192.168.43.1:8080 for HTTP, :1081 for SOCKS5). On iOS, apps like Shadowrocket or Potatso can create a local VPN that routes all device traffic through the SOCKS5 proxy — giving full tunnel coverage without installing the app on the iOS device. Added a "Sharing via hotspot" section to README with setup steps for iOS, macOS, and Windows. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
therealaleph
added a commit
that referenced
this pull request
Apr 29, 2026
…p + hotspot sharing Three substantive PRs landed for this release plus an Iran-safe DoH default: - #488 by @dazzling-no-more (with credit to @patterniha): fronting_groups config field generalizes the Google-edge SNI-rewrite trick to any multi-tenant CDN edge (Vercel, Fastly, etc.). Renames `mode = "google_only"` → `mode = "direct"` with a deprecated alias keeping existing configs working. This is the v1.9.0 headline — new top-level config field + public mode-string rename are minor-bump territory. xmux moves to v1.10.0. - #494 by @dazzling-no-more: edge-cache DNS at Apps Script (CodeFull.gs) using CacheService. udp_open / port=53 ops served from cache or DoH fallback chain (Cloudflare → Google → Quad9). Cache hits drop typical first-hop DNS latency from 600-1200ms to 200-400ms. Default-on, opt-out via ENABLE_EDGE_DNS_CACHE; every failure mode falls through to existing tunnel-node forward path (zero regression). - #483 by @yyoyoian-pixel: default listen_host from 127.0.0.1 to 0.0.0.0 so an Android phone running the tunnel + an iPhone/laptop on the same hotspot can use it as proxy. Old configs with explicit 127.0.0.1 are honored (not overwritten). Plus: default `tunnel_doh: true` (flipped from false in v1.8.x) per #468 — Iran ISPs filter direct connections to dns.google, chrome.cloudflare-dns.com, and other pinned DoH hosts. The bypass-on default silently broke DNS for the dominant Iranian userbase. The safe default keeps DoH inside the tunnel; non-Iran users can opt back into the bypass for the latency win. Backwards-compatible — any config with explicit tunnel_doh keeps its setting. 169 mhrv-rs lib tests + 33 tunnel-node tests + 11 edge-DNS JS tests all passing. Clean release + UI builds.
This was referenced Apr 29, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #481
Summary
listen_hostfrom127.0.0.1to0.0.0.0Why
Users often have one Android phone running the tunnel and want to share the connection with an iPhone, iPad, or laptop. With
127.0.0.1the proxy only accepts local connections. With0.0.0.0any device on the hotspot can use it.How it works
192.168.43.1:8080(HTTP) or:1081(SOCKS5)For full device-wide coverage on iOS, use Shadowrocket or Potatso — they create a local VPN that routes all traffic through the SOCKS5 proxy on the Android phone.
Test plan
"listen_host": "127.0.0.1"still honored (not overwritten)🤖 Generated with Claude Code