Skip to content

v1.7.8

Choose a tag to compare

@shayanb shayanb released this 25 May 21:28
fc0a4ed

Component refresh (Xray, telemt, wstunnel) with a new XDNS multi-resolver fallback for hostile networks, much faster xray builds, and hardened build resilience for restricted regions.

Highlights

🌐 XDNS multi-resolver fan-out (XDNS_RESOLVERS) β€” XDNS client bundles now round-robin DNS queries across multiple public resolvers in a single mKCP session (default 1.1.1.1,8.8.8.8). When one resolver gets throttled or null-routed β€” the daily reality during Iran shutdowns β€” the tunnel keeps moving on the others. Configurable in .env; direct-mode bundles correctly skip it.

⚑ xray builds in seconds, not minutes β€” the server image now installs the official prebuilt Xray binary for the pinned tag (the same one the client already used, FinalMask/XDNS included) and only compiles from source as a fallback. The from-source compile was a leftover from the pre-1.7.4 main-branch era.

πŸ›‘οΈ Build resilience for restricted networks β€” all Go-from-source images now use GOPROXY=…|goproxy.cn|direct (pipe = fall through on any error, including the 403 Google's module CDN throws under rate-limiting) with GOSUMDB=off. Fixes hard build failures like klauspost/compress@v1.17.4: 403 Forbidden. Overridable in .env.

🩺 moav doctor logs β€” new check that finds oversized container logs (*-json.log > 100 MB) and offers to truncate them in place β€” useful for clearing accumulated logs from pre-1.7.6 containers created before log rotation existed.

πŸ”„ Config-aware moav update β€” after pulling, it now detects changed server config templates and prints the full ordered apply sequence (build β†’ bootstrap β†’ regenerate-users β†’ start) instead of a bare build hint, including the reminder that moav start (not restart) is what recreates containers on rebuilt images.

Component updates

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Component β”‚   From   β”‚   To    β”‚                                                Notes                                                 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Xray-core β”‚ v26.3.27 β”‚ v26.5.9 β”‚ mKCP unaggressive congestion default (XDNS stability win), XHTTP memory-leak fix, XDNS               β”‚
β”‚           β”‚          β”‚         β”‚ multi-resolver support, single-UDP-socket multi-resolver                                             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ telemt    β”‚ 3.4.10   β”‚ 3.4.11  β”‚ Security hardening (constant-time API auth, fail-closed deny-lists, PROXY-protocol rejection),       β”‚
β”‚           β”‚          β”‚         β”‚ persistent quota state, REST quota-reset, new TLS/connection metrics                                 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ wstunnel  β”‚ 10.5.3   β”‚ 10.5.5  β”‚ Bugfixes: HTTP-proxy password log leak, TLS/DNS resolution, Android compat                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

⚠️ Upgrade note β€” no action required

Xray v26.5.9 renamed the inbound clients/accounts key to users, but kept the old keys as backward-compatible aliases. Your existing configs/xray/config.json keeps working as-is β€” no crash, no re-bootstrap needed. MoaV's templates emit users for fresh installs. Optional cleanup: moav bootstrap migrates the on-disk config to the new key (idempotent, preserves keys + user UUIDs). To get the new XDNS_RESOLVERS default into existing user bundles, run moav regenerate-users.

To update:

  moav update                       # pull + sync .env versions
  moav build xray telemt wstunnel --no-cache
  moav start                        # recreate containers on the new images
  • DNS-tunnel docs: new Reachable DNS resolvers guidance (docs/protocols.md) with findns/dns-mns scanner links, cross-referenced from DNS.md, CLIENTS.md, and the bundled xdns.txt.
  • TROUBLESHOOTING.md "Disk space full": in-place log truncation steps + docker builder prune -af.
  • Dockerfile.client xray pin bumped to match the server; stale moav.sh fallback versions corrected.

Full Changelog: v1.7.7...v1.7.8


Quick Install

curl -fsSL moav.sh/install.sh | bash

This will install MoaV to /opt/moav and guide you through setup.

Documentation

moav.sh/docs β€” Full documentation