README.md
April 28, 2026 · View on GitHub
ClashRS
✨ Features
- 🌈 Flexible traffic routing rules based off source/destination IP/Domain/GeoIP etc.
- 📦 Local anti spoofing DNS with support of UDP/TCP/DoH/DoT remote, and expose it as a local UDP/TCP/DoH/DoT server.
- ⚙️ AnyTLS/Hysteria2/Shadowquic/Shadowsocks/Socks5(TCP/UDP)/SSH/Tailscale/tor(onion)/Trojan/Tuic/VLess/Vmess/Wireguard(userspace) outbound support with different underlying transports(gRPC/TLS/H2/WebSocket/etc.).
- 🔀 Multiple inbound modes: HTTP, SOCKS5, Mixed, Shadowsocks, AnyTLS, Redir, TProxy, and TUN (utun) for transparent proxying.
- 🌍 Dynamic remote rule/proxy loader.
- 🎵 Tracing with Jaeger
📡 Protocol Support
Inbounds
| Type | Description | Notes |
|---|---|---|
http | HTTP proxy | |
socks | SOCKS5 (TCP + UDP) | |
mixed | HTTP + SOCKS5 on a single port | |
shadowsocks | Shadowsocks inbound with multi-user support | shadowsocks feature |
anytls | AnyTLS inbound with multi-user support, GFW fallback camouflage | |
tun | TUN device for transparent proxying | All platforms |
tproxy | Transparent proxy (TCP + UDP) | Linux; tproxy feature |
redir | TCP redirect | Linux; redir feature |
tunnel | Routes all traffic to a fixed target |
Outbounds
| Protocol | Transports | Notes |
|---|---|---|
direct | — | |
reject | — | |
ss | plain · obfs-http · obfs-tls · v2ray-plugin-ws · v2ray-plugin-ws-tls · shadow-tls | shadowsocks feature |
socks5 | plain TCP · TLS | |
anytls | TLS | |
trojan | TLS · WebSocket+TLS · gRPC+TLS | |
vmess | TCP · TCP+TLS · WebSocket+TLS · H2+TLS · gRPC+TLS | |
vless | TLS · WebSocket+TLS · H2+TLS · gRPC+TLS · REALITY | |
wireguard | UDP (userspace) | wireguard feature |
hysteria2 | QUIC · obfs-salamander | |
tuic | QUIC (bbr / cubic / new_reno) | tuic feature |
shadowquic | QUIC · over-stream | shadowquic feature |
ssh | SSH tunnel | ssh feature |
tor | Onion routing | onion feature (plus build) |
tailscale | Mesh VPN | tailscale feature (plus build) |
🖥 Environment Support
- Linux
- macOS
- Windows
- You need to copy the wintun.dll file which matches your architecture to the same directory as your executable and run your program as administrator.
- iOS

- TestFlight Access: TestFlight
💰 Sponsors
📦 Install
Use With GUI
https://github.com/LibNyanpasu/clash-nyanpasu
Download Prebuilt Binary
Can be found at https://github.com/Watfaq/clash-rs/releases
Docker Image
https://github.com/Watfaq/clash-rs/pkgs/container/clash-rs
Local Build
Dependencies
- cmake (3.29 or newer)
- libclang(LLVM)
- nasm (Windows)
- protoc(for geodata proto generation)
- pre-commit for managing git hooks
$ pipx install pre-commit
$ pre-commit install
$ cargo build
🔨 Usage
Example Config
sample.yaml:
port: 7890
Run
-> % ./target/debug/clash-rs -c sample.yaml
Help
-> % ./target/debug/clash-rs -h
Usage: clash-rs [OPTIONS]
Options:
-d, --directory <DIRECTORY> Set working directory (config-relative paths resolve from here)
-c, --config <FILE> Specify configuration file [default: config.yaml] [short aliases: f]
-t, --test-config Test configuration and exit
-v, --version Print clash-rs version and exit [short aliases: V]
-l, --log-file <LOG_FILE> Additionally log to file
--help-improve Enable crash report to help improve clash
--controller-ipc <IPC_PATH> Specify the IPC path for the controller [aliases: --ext-ctl-pipe, --ext-ctl-unix]
--compatibility Enable compatibility mode for mihomo-consistent behavior
-h, --help Print help
FFI
Compile for apple platforms
To create a framework for iOS and macOS platforms
git clone https://github.com/Watfaq/clash-rs.git
cd clash-rs
chmod +x scripts/build_apple.sh
./scripts/build_apple.sh
This command will generate a clashrs.xcframework file in the build directory.