Skip to content

masike0609/clash-rs

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1,113 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ClashRS

A custom protocol, rule based network proxy software.

CI codecov

✨ 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

πŸ’° 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.

πŸ”— Links

🀝 Contributing

❀️ Inspired By

About

custom protocol network proxy

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Rust 88.7%
  • TypeScript 8.0%
  • Python 2.3%
  • CSS 0.4%
  • Shell 0.4%
  • HTML 0.1%
  • Other 0.1%