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 | bashThis will install MoaV to /opt/moav and guide you through setup.
Documentation
moav.sh/docs — Full documentation
- Setup Guide — Complete installation instructions
- Client Setup — How to connect from devices
- DNS Configuration — DNS records setup
- CLI Reference — All commands and options
- Monitoring — Grafana dashboards and metrics
- Troubleshooting — Common issues and solutions