WaterWall custom build + one-command installer.
zex-tunnel
provides a streamlined way to deploy a customised build of WaterWall for traffic tunnelling & obfuscation. It ships all required templates in-repo, installs services, and includes a powerful terminal panel (zt
) for daily operations.
- Ubuntu 20.04 / 22.04 only (systemd required)
- Unified
config/
folder (single source of truth for templates) - Setup wizard (English UI, shows local IPv4/IPv6, review & confirm)
- Multi‑port support: enter up to 10 ports (e.g.,
443 2083 2087
) - Services renamed & streamlined: main tunnel + web API (auto‑start on boot)
- Two‑step uninstall (type
UNINSTALL
) - Python deps include psutil; JSON edits via jq
- Modern TUI panel with grouped actions
The installer copies templates from
config/
to the main directory and edits only the copies. Files insideconfig/
are never modified.
- Ubuntu 20.04 or 22.04 (with systemd)
sudo
privileges
git clone https://github.com/izex/ZEX-Tunnel.git
cd ZEX-Tunnel
chmod +x *
sudo bash zex-tunnel-install.sh
The wizard prompts for:
- Two server endpoints (IP/Domain for each side)
- Protocol Number (default 18, recommended < 100, range 0–255)
- Ports (optional multi‑port): single
443
or multi443 2083 2087
(max 10, unique, 1–65535)
It writes to /root/ZEX-Tunnel
:
core.json
→ selects the active runtime config- a runtime config file (copied from
config/
and customised) config.zex
→ 4 lines:ENDPOINT_A
,ENDPOINT_B
,PROTOCOL
,PORTS
====================================================
ZEX Tunnel V3 Setup
====================================================
IP V4: 203.0.113.10
IP V6: 2001:db8::10
---------------------------------------
Mode: choose server location
[1] Server A role
[2] Server B role
- Ports are optional and support multi‑port in one go.
- A review screen summarizes your choices before applying.
Open the panel:
zt
Key options:
- Start / Stop / Restart / Logs for the tunnel service
- Start / Stop / Restart / Logs for the web API
- Reconfigure (re‑runs the wizard and restarts services)
- Edit Web Config (port/password)
- Reload panel info, Uninstall Everything (two‑step), Install 3x‑ui, Reboot
Services (systemd)
sudo systemctl status zextunnel # main tunnel
sudo systemctl status zexweb # web API
sudo systemctl restart zextunnel zexweb
sudo systemctl enable zextunnel zexweb
sudo journalctl -u zextunnel -n 200 --no-pager
From panel (Reconfigure) or via script:
sudo bash /root/ZEX-Tunnel/zex-tunnel-install.sh --reconfigure
Flow:
- Temporarily disable/stop services
- Remove old
core.json
, runtime config,config.zex
- Copy fresh templates from
config/
and rebuild with new values - Enable + restart services
From panel (Uninstall Everything) → type UNINSTALL
to confirm.
Removes services, unit files, panel launcher, and /root/ZEX-Tunnel
directory.
ZEX Tunnel Config (Windows) — a simple GUI that configures the tunnel for you.
Just enter the IP, SSH port, username, and password for both servers; the app SSHs in and performs the setup automatically.
.
├── zex-tunnel-install.sh # installer / reconfigure
├── Waterwall # main binary
├── web.py # Flask web API
├── web.zex # default web API config
├── config/ # templates (read‑only)
│ ├── core.json
│ ├── config_ir.json
│ └── config_kharej.json
└── README.md
- WaterWall — https://github.com/radkesvat/WaterWall
- 3x-ui — https://github.com/MHSanaei/3x-ui
MIT Licensed.