Repository navigation
Releases: Erfan-XRay/XRayMesh
Release list
XRayMesh v3.3.0 - Scheduled Restart & Telegram Channel
XRayMesh 3.3.0 lets every server restart its XRayMesh service on a schedule, and adds a link to the Telegram channel in the panel.
Install / update
bash <(curl -fsSL https://raw.githubusercontent.com/Erfan-XRay/XRayMesh/main/xraymesh.sh)Servers on 3.x or 2.2.x: run xraymesh update or use Update in the panel. A server must be on 3.3.0 before another panel can schedule it.
Scheduled restart
- Per server: press Auto-restart on a server's row (or on the "This server" card) in the Servers tab, turn it on and pick how often: 30 minutes, 1, 3, 6 or 12 hours, 1 day, or any custom interval from 5 minutes to 30 days.
- From any panel: change another server's schedule without logging in to it. The row shows Restarts every …, and the dialog shows when the last scheduled restart ran.
- Safe by design: only the mesh service restarts, the panel stays online, and a server you stopped by hand stays stopped. It is a systemd timer, removed when you turn it off, delete the mesh configuration or uninstall.
Telegram channel
- The panel links to t.me/Erfan_Xray in the header, the phone menu, the sign-in page and at the end of every section.
Full list of changes: CHANGELOG.md
XRayMesh v3.2.0 - iptables on Any Server & Public IPs
XRayMesh 3.2.0 lets you create iptables tunnels on any server of the mesh, and shows every server's public IP in the Servers list.
Install / update
bash <(curl -fsSL https://raw.githubusercontent.com/Erfan-XRay/XRayMesh/main/xraymesh.sh)Servers on 3.x or 2.2.x: run xraymesh update or use Update in the panel. Update the server whose panel you use to manage tunnels. A server shows its public IP only after it is updated too.
iptables on any server
- Pick where it runs: "Runs on" now works for iptables like for the other engines. Create, edit and delete an iptables tunnel on another server from any panel.
- That server's interfaces: the inbound interface list is read from the server you pick, not from the one you are on.
- No endless loading: if that server doesn't answer, the panel gives up after about 5 seconds, offers "Try again" and lets you type the interface name.
Public IP of every server (thanks to @amirmohamadkazemi, issue #4)
- The Servers list and the "this server" card show each server's public IP under its virtual IP, with a copy button.
- Servers report it themselves, so it also works for servers that joined without an invite.
Full list of changes: CHANGELOG.md
XRayMesh v3.1.0 - Tunnels Between Servers Fixed
XRayMesh 3.1.0 fixes tunnels between servers: you can again create, edit and delete a tunnel on another server of the mesh from any panel.
Install / update
bash <(curl -fsSL https://raw.githubusercontent.com/Erfan-XRay/XRayMesh/main/xraymesh.sh)Servers on 3.0.x or 2.2.x: run xraymesh update or use Update in the panel. Update the server whose panel you use to manage tunnels; the other servers work with it as they are.
Tunnels on other servers
- No more "NetworkError" or JSON errors: picking another server as a tunnel's origin crashed the panel while it forwarded the request, so the browser got no answer. Create, edit and delete now reach that server.
- Enough time for the first tunnel: the first tunnel of an engine installs it on that server, which can take minutes. Remote changes now wait up to 270 seconds instead of 8, and an offline server is reported within seconds.
- Clear errors: a failed change says why: the server is offline, the network secrets differ, the server needs an update, or it is still applying the change.
- Safer changes: the panel checks requests from other servers the same way as its own, runs tunnel changes on a server one at a time, and never sends a timed-out change twice.
- Destination list: no longer offers the tunnel's own origin server.
- While a change runs on another server, the form says it can take a few minutes.
Panel
- An unexpected server error now shows a readable message instead of dropping the connection.
Full list of changes: CHANGELOG.md
XRayMesh v3.0.6 - Vazirmatn Font for Persian & Terminal Tunnels
XRayMesh 3.0.6 gives the Persian panel a clearer font and adds a Tunnels section to the terminal menu (from 3.0.5, which was only on beta until now).
Install / update
bash <(curl -fsSL https://raw.githubusercontent.com/Erfan-XRay/XRayMesh/main/xraymesh.sh)Servers on 3.0.x or 2.2.x: run xraymesh update or use Update in the panel.
Persian panel (3.0.6)
- New font: Vazirmatn (bundled, OFL) replaces Estedad and reads more clearly at small sizes. IPs, versions and host names keep their Latin font and digits.
- Line spacing: Persian text, headings and body text get taller lines, so the letters no longer look cramped.
- Latency is shown in "ms" again instead of «میلیثانیه».
Terminal menu (3.0.5)
- Tunnels section: "Tunnels overview" lists every saved HAProxy, iptables, GOST and Realm tunnel with its target, protocol, ports and service state, warns when a tunnel listens on the web panel's port, and can start the saved tunnels again.
- Stop all tunnels: an emergency stop for when a tunnel blocks the panel. It stops every tunnel, keeps them off after a reboot and keeps their settings. ICMP/PCK links keep running.
- CLI:
xraymesh tunnels,xraymesh tunnels-stopandxraymesh tunnels-applydo the same without the menu. - Health check, Update and Uninstall are now menu options 17, 18 and 19.
Full list of changes: CHANGELOG.md
XRayMesh v3.0.4 - Servers List Traffic Alignment
A small fix for the Servers list.
Install / update
bash <(curl -fsSL https://raw.githubusercontent.com/Erfan-XRay/XRayMesh/main/xraymesh.sh)Servers on 3.0.x or 2.2.x: run xraymesh update or use Update in the panel.
Fixed
- Servers list: traffic now sits under the Traffic title instead of in the middle of its column, in both English and Persian.
Full list of changes: CHANGELOG.md
XRayMesh v3.0.3 - Servers List & Persian Layout Fixes
XRayMesh 3.0.3 fixes the Servers list layout and how numbers read in the Persian panel.
Install / update
bash <(curl -fsSL https://raw.githubusercontent.com/Erfan-XRay/XRayMesh/main/xraymesh.sh)Servers on 3.0.x or 2.2.x: run xraymesh update or use Update in the panel.
Changes
- Servers list: the column titles now line up with the rows on large screens.
- Persian panel: the protocol under Connection sits under the connection type, and traffic, latency and RAM usage read in the right order (before, they showed up backwards, like "MB ۱۲٫۳").
- Persian panel: latency is shown in «میلیثانیه» instead of "ms" everywhere: overview, servers, ping, speed test and tunnels.
- WSS: the description no longer says a domain and certificate are needed. EasyTier makes its own certificate. The certificate from
xraymesh sslis only for the web panel, and WSS does not work behind a CDN.
Full list of changes: CHANGELOG.md
XRayMesh v3.0.2 - Stable-only Updates (Beta Channel Removed)
XRayMesh 3.0.2 removes the beta update channel. From now on every server checks for and installs updates only from the stable main branch.
Install / update
bash <(curl -fsSL https://raw.githubusercontent.com/Erfan-XRay/XRayMesh/main/xraymesh.sh)Servers on 3.0.1 or 2.2.x: run xraymesh update or use Update in the panel.
Servers that were on beta
- From the panel: update them from the panel of a server that runs 3.0.2. The panel first moves the server to
main, then installs the stable release. - From the terminal: on the server itself, run:
bash <(curl -fsSL https://raw.githubusercontent.com/Erfan-XRay/XRayMesh/main/xraymesh.sh) update
Changes
- Removed: the beta update channel. The panel no longer has the "Receive beta updates" switch, the channel badges or the channel dialog.
- Fixed: a server that once turned on beta updates kept checking and installing from the beta branch, because
XRAYMESH_BRANCH="beta"stayed inweb.env. That setting is now ignored and set back tomainon the next update. - Changed: in the peers list, servers still on beta are offered the latest stable release.
- Changed:
install.shnow downloads the script frommaininstead ofbeta.
Full list of changes: CHANGELOG.md
XRayMesh v3.0.1 - Stable 3.0: ICMP/PCK (BackPack), Private Mesh & New Terminal Menu
The first stable release of XRayMesh 3.0. It brings everything from the 3.0.0-beta.1 to beta.16 test builds to the main branch.
Install / update
bash <(curl -fsSL https://raw.githubusercontent.com/Erfan-XRay/XRayMesh/main/xraymesh.sh)Servers on 2.2.x: run xraymesh update or use Update in the panel. Servers that turned on beta updates stay on the beta channel.
Highlights
- New ICMP and PCK transports, powered by BackPack by Amin Mohammadi (AminMGMT). ICMP carries the mesh inside ping packets. PCK carries it inside TCP segments built without the kernel's TCP stack. BackPack runs as its official, unmodified AGPL-3.0 release. Thanks to Amin Mohammadi. See the README for how to set them up.
- Private mesh: nodes accept only servers that share your network secret, so strangers can't use your server as a free EasyTier relay.
- Multi-thread mode: EasyTier can use more than one CPU core.
- Redesigned Firouzeh panel with full Persian RTL support, a live speed test and ping, an installable web app and animated backgrounds.
- Update channels (stable/beta) and per-server updates from the panel, with verification and automatic rollback.
- New terminal menu with arrow-key navigation and a status panel. Ctrl+C no longer freezes the terminal.
- New logo, the same mark as the panel and home-screen icon.
Full list of changes: CHANGELOG.md
XRayMesh v2.2.5 - iptables Origin Lock & Peer Probe Optimization
Fixed
- Restricted iptables tunnels to local host origin, eliminating remote interface discovery hangs and ensuring kernel-level forwarding rules execute on the correct host.
- Removed blind port scanning across arbitrary ports in peer version discovery, targeting only the primary/cached Web UI port.
- Reduced peer probe request timeouts to 1.0s, preventing Web UI lag during dashboard peer polling.
- Preserved valid peer versions and interface metadata during transient network timeouts instead of falsely falling back to \legacy (< 2.0.0).
XRayMesh v2.1.0 - Web Dashboard, SafeSync & Multi-Tunnel Manager
🚀 XRayMesh v2.1.0 (Official Release)
XRayMesh v2.1.0 represents a major evolutionary leap from the classic terminal manager into a full-fledged, enterprise-grade mesh network and traffic forwarding platform with a responsive Web UI Dashboard, cluster synchronization, multi-protocol forwarding tunnels, and security hardening.
✨ What's New in v2.1.0
💻 Modern Web UI Dashboard
- Real-Time Mesh Topology: Live visibility into EasyTier connected peers, latency badges, route cost, and real-time RX/TX traffic.
- Node Highlight: The current local node is clearly identified and pinned at the top of the cluster list.
- Streamlined Node Config: Clutter-free configuration segmented into 4 sub-tabs (Identity, Transport & Protocol, Invite & Peers, and Danger Zone).
- In-Mesh Speedtest (iperf3): End-to-end TCP throughput benchmarking and UDP jitter/packet loss analysis across the encrypted mesh.
- Interactive Ping Diagnostics: Real-time multi-packet latency measurements directly between mesh nodes.
- Cyber Aesthetic & Mobile Drawer: 5 themes (Cyber Cyan, Emerald Matrix, Neon Purple, Amber Gold, Midnight Blue), mobile navigation drawer, and full English / Persian (RTL) localization.
🛡️ 4 Port Forwarding Tunnel Backends
- HAProxy Tunnels: High-throughput TCP proxying with connection pooling and health checks.
- Realm Tunnels: Ultra-lightweight Rust forwarding engine for TCP and UDP.
- GOST v3 Tunnels: Flexible multi-protocol user-space forwarding.
- iptables Kernel Forwarding: Linux kernel-level DNAT + MASQUERADE for lowest latency on UDP applications (e.g. Hysteria2, WireGuard).
- Supports single ports, comma-separated lists, and port ranges (
8000-8020).
⚡ Cluster SafeSync (Inter-Node Synchronization)
- Sync mesh configuration updates across all nodes in the cluster simultaneously.
- 90-Second Safety Watchdog: Automatically reverts to the last known-good configuration backup if a configuration change interrupts node communication.
- HMAC-SHA256 authenticated inter-node control channel.
🔒 Hardened Security & Authentication
- One-Click Instant Login: Generate temporary CLI tokens (
sudo xraymesh token) for instant browser access without typing passwords. - Address Bar Sanitization: Tokens are immediately scrubbed from browser URL history upon login.
- Brute-Force Rate Limiter: Protects web login with strict attempt limiting (HTTP 429) per IP.
- Secure Cookie Flag: Dynamically appends
; Secureto session cookies when HTTPS/SSL is active. - UFW Firewall Auto-Allow: Detects active UFW firewalls and automatically opens required web and mesh communication ports.
📥 Quick Install & Update
Run the following command on any Debian or Ubuntu server:
bash <(curl -fsSL https://raw.githubusercontent.com/Erfan-XRay/XRayMesh/main/xraymesh.sh)To update existing nodes:
xraymesh update📦 Legacy CLI-Only Version (v1.x)
For users who prefer a minimal, terminal-only manager without the Web UI daemon or background services, the legacy release is permanently available:
- Release: XRayMesh v1.7.0
- Install:
bash <(curl -fsSL https://raw.githubusercontent.com/Erfan-XRay/XRayMesh/v1.7.0/xraymesh.sh)
Developed by ErfanXRay.