GitHub - Dreamacro/clash: A rule based proxy in Go.
source link: https://github.com/Dreamacro/clash
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
Clash
A rule based proxy in Go.
Features
- HTTP/HTTPS and SOCKS proxy
- Surge like configuration
- GeoIP rule support
- Support Vmess/Shadowsocks/Socks5
- Support for Netfilter TCP redirect
Discussion
Install
You can build from source:
go get -u -v github.com/Dreamacro/clash
Pre-built binaries are available: release
Requires Go >= 1.10.
Daemon
Unfortunately, there is no native elegant way to implement golang's daemon.
So we can use third-party daemon tools like pm2, supervisor, and so on.
In the case of pm2, we can start the daemon this way:
pm2 start clash
If you have Docker installed, you can run clash directly using docker-compose
.
Config
NOTE: after v0.7.1, clash using yaml as configuration file
Configuration file at $HOME/.config/clash/config.yml
Below is a simple demo configuration file:
# port of HTTP port: 7890 # port of SOCKS5 socks-port: 7891 # redir proxy for Linux and macOS redir-port: 7892 allow-lan: false # Rule / Global/ Direct mode: Rule # set log level to stdout (default is info) # info / warning / error / debug log-level: info # A RESTful API for clash external-controller: 127.0.0.1:9090 Proxy: # shadowsocks # The types of cipher are consistent with go-shadowsocks2 # support AEAD_AES_128_GCM AEAD_AES_192_GCM AEAD_AES_256_GCM AEAD_CHACHA20_POLY1305 AES-128-CTR AES-192-CTR AES-256-CTR AES-128-CFB AES-192-CFB AES-256-CFB CHACHA20-IETF XCHACHA20 # after v0.7.1 clash support chacha20 rc4-md5 - { name: "ss1", type: ss, server: server, port: 443, cipher: AEAD_CHACHA20_POLY1305, password: "password" } - { name: "ss2", type: ss, server: server, port: 443, cipher: AEAD_CHACHA20_POLY1305, password: "password", obfs: tls, obfs-host: bing.com } # vmess # cipher support auto/aes-128-gcm/chacha20-poly1305/none - { name: "vmess1", type: vmess, server: server, port: 443, uuid: uuid, alterId: 32, cipher: auto } - { name: "vmess2", type: vmess, server: server, port: 443, uuid: uuid, alterId: 32, cipher: auto, tls: true } # socks5 - { name: "socks", type: socks5, server: server, port: 443 } Proxy Group: # url-test select which proxy will be used by benchmarking speed to a URL. - { name: "auto", type: url-test, proxies: ["ss1", "ss2", "vmess1"], url: http://www.gstatic.com/generate_204, delay: 300 } # fallback select an available policy by priority. The availability is tested by accessing an URL, just like an auto url-test group. - { name: "fallback-auto", type: fallback, proxies: ["ss1", "ss2", "vmess1"], url: http://www.gstatic.com/generate_204, delay: 300 } # select is used for selecting proxy or proxy group # you can use RESTful API to switch proxy, is recommended for use in GUI. - { name: "Proxy", type: select, proxies: ["ss1", "ss2", "vmess1", "auto"] } Rule: - DOMAIN-SUFFIX,google.com,Proxy - DOMAIN-KEYWORD,google,Proxy - DOMAIN-SUFFIX,ad.com,REJECT - GEOIP,CN,DIRECT # note: there is two "," - FINAL,,Proxy
Thanks
License
TODO
- Complementing the necessary rule operators
- Redir proxy
- UDP support
- Connection manager
Recommend
-
4
Rule-Based V/s AI-Based: Approaches to Building AI - Applozic Blog February 24, 2020
-
7
Declarative, Concise Implementation of a Rule-based Dialog System in F#This website uses cookies to improve your experience. Learn more
-
8
Product Information
-
3
DICKSON JIN December 20, 2021 3 minute read
-
3
Rule-Based Programming in Interactive Fiction I presented this talk at Penguicon 7, on May 3, 2009. I also gave a (high-speed) rendition at BarCamp Bost...
-
4
@pythonscholarPython ScholarLearn python programming for free with our beginner-friendly online course to advance tutorials. What Exa...
-
3
I have read many academic papers which start off by criticising rule-based NLG, often in a way which shows that the authors have no understanding of what is actually involved in building rule-based NLG systems. I’ve often complained about t...
-
5
validator | Rule Based Validation Library in Android
-
9
Ayan Bishnu January 23, 2023 Less than a 1 minute read...
-
3
Why Your Organization Needs Rule-Based Access ControlWidely used role-based security offers strong network protection. Lesser-known rule-based access control can provide even more resiliency.
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK