qiyan2019 / clash-rs

custom protocol network proxy

Home Page:https://watfaq.gitbook.io/clashrs-user-manual/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ClashRS

A custom protocol, rule based network proxy software.

CI

✨ 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.
  • πŸ›‘ Run as an HTTP/Socks5 proxy, or utun device as a home network gateway.
  • βš™οΈ Shadowsocks/Trojan/Vmess/Wireguard(userspace)/Tor outbound support with different underlying trasports(gRPC/TLS/H2/WebSocket/etc.).
  • 🌍 Dynamic remote rule/proxy loader.
  • 🎡 Tracing with Jaeger

πŸ–₯ 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 you program as administrator.
  • iOS - TestFlight

πŸ“¦ Install

Download Prebuilt Binary

Can be found at https://github.com/Watfaq/clash-rs/releases

Local Build

Dependencies

  • cmake (3.29 or newer)
  • Golang
  • libclang(LLVM)
  • nasm (Windows)
$ cargo build

πŸ”¨ Usage

Example Config

sample.yaml:

port: 7890

Run

-> % ./target/debug/clash -c sample.yaml

Help

-> % ./target/debug/clash -h
Usage: clash [OPTIONS]

Options:
  -d, --directory <DIRECTORY>
  -c, --config <FILE>          [default: config.yaml]
  -t, --test
  -h, --help                   Print help
  -V, --version                Print version

πŸ”— Links

🀝 Contributing

❀️ Inspired By

About

custom protocol network proxy

https://watfaq.gitbook.io/clashrs-user-manual/

License:Apache License 2.0


Languages

Language:Rust 98.5%Language:Shell 0.9%Language:Python 0.4%Language:HTML 0.2%Language:CMake 0.1%Language:Makefile 0.0%Language:Dockerfile 0.0%