github Kianmhz/GooseRelayVPN v1.4.0

latest releases: v1.7.1, v1.7.0, v1.6.0...
one month ago

What's New in v1.4.0

✨ New Features

  • SOCKS5 username/password authentication (RFC 1929) — Optionally require credentials on the local SOCKS5 listener via socks_user and socks_pass in client_config.json. Useful for shared or LAN setups where you want to control who can use your tunnel.
  • Server upstream proxy (upstream_proxy) — Route all outbound connections from the VPS through a local SOCKS5 proxy such as Cloudflare WARP. Sites that block datacenter IPs see the proxy's IP instead. Set upstream_proxy in server_config.json.
  • Graceful client shutdown — On Ctrl+C the client sends RST frames for all active sessions so the server releases upstream connections immediately rather than waiting for the idle GC timer.
  • Server-side idle session GC — Upstream TCP connections orphaned by ungraceful client disconnects (killed process, network drop, sleep/wake) are now force-closed after 10 minutes, preventing slow resource exhaustion over repeated disconnect cycles.

⚡ Performance

  • download throughput improvement — Poll worker idle sleep reduced from 50 ms to 10 ms, keeping workers in the pool fast enough to sustain concurrent download polls without gaps.
  • 3 poll workers per deployment key — Each script_keys entry now spawns 3 concurrent poll workers, scaling parallelism proportionally with the number of configured endpoints.

🛡️ Stability

  • Session receive queue 64 → 1024 frames — The per-session inbox can absorb large multi-user fan-out bursts without dropping connections.
  • Graceful receive backpressure — Instead of immediately killing a session when the inbox is full (which caused mid-stream drops during brief GC pauses), the server now waits up to 5 s for the consumer to drain before giving up.
  • Drain window fix — Any non-empty client batch now triggers the short active drain window, so connection setup and teardown are no longer gated on the 8-second long-poll window.
  • Idle GC respects outbound traffic — A long pure-download session (large file, video stream) with no client→server frames is no longer incorrectly force-closed by the idle GC.

📖 Documentation & Developer Tools

  • Windows Server setup guide — Step-by-step NSSM instructions in both English and Persian READMEs for running goose-server as a Windows service.
  • End-to-end benchmark harness (bench/) — Real goose-client + goose-server loopback suite measuring throughput, TTFB, session rate, and idle CPU. Run bash bench/bench.sh to validate performance impact before opening a PR.

Don't miss a new GooseRelayVPN release

NewReleases is sending notifications on new releases.