setup proxy with clash
What is Clash? | Clash
A rule-based tunnel in Go.

Service
clash.service
[Unit]
Description=Clash daemon, A rule-based proxy in Go.
After=network.target
[Service]
Type=simple
Restart=always
ExecStart=/usr/local/bin/clash -d /home/pi/workspace/clash
[Install]
WantedBy=multi-user.targetConfig
config.yaml
# basic
mixed-port: 7890
socks-port: 7891
mode: rule
log-level: info
external-controller: 0.0.0.0:9090
secret: ''
external-ui: ./clash-dashboard
# dns
dns:
enable: true
ipv6: false
listen: 0.0.0.0:5352
default-nameserver:
- 119.29.29.29
- 223.5.5.5
nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
- dhcp://en0
fallback:
- 'https://dns.google/dns-query'
- 'https://1.1.1.1/dns-query'
- 'tls://1.1.1.1:853'
- 'tcp://1.1.1.1:53'
- 'tls://dns.google'
fallback-filter:
geoip: true
ipcidr:
- 240.0.0.0/4
- 127.0.0.1/8
- 0.0.0.0/32
domain:
- +.google.com
- +.facebook.com
- +.twitter.com
- +.youtube.com
- +.google.cn
- +.googleapis.cn
- +.googleapis.com
# proxies
proxy-providers:
vhk:
type: file
path: ./proxies/hk.yaml
health-check:
enable: true
interval: 36000
url: http://www.gstatic.com/generate_204
vsg:
type: file
path: ./proxies/sg.yaml
health-check:
enable: true
interval: 36000
url: http://www.gstatic.com/generate_204
vus:
type: file
path: ./proxies/us.yaml
health-check:
enable: true
interval: 36000
url: http://www.gstatic.com/generate_204
proxy-groups:
- name: PROXY
type: select
use:
- vhk
- vus
- vsg
proxies:
- DIRECT
# rule
rule-providers:
reject:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
path: ./ruleset/reject.yaml
interval: 86400
icloud:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt"
path: ./ruleset/icloud.yaml
interval: 86400
apple:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt"
path: ./ruleset/apple.yaml
interval: 86400
google:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt"
path: ./ruleset/google.yaml
interval: 86400
proxy:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
path: ./ruleset/proxy.yaml
interval: 86400
direct:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
path: ./ruleset/direct.yaml
interval: 86400
private:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt"
path: ./ruleset/private.yaml
interval: 86400
gfw:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt"
path: ./ruleset/gfw.yaml
interval: 86400
tld-not-cn:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/tld-not-cn.txt"
path: ./ruleset/tld-not-cn.yaml
interval: 86400
telegramcidr:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt"
path: ./ruleset/telegramcidr.yaml
interval: 86400
cncidr:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt"
path: ./ruleset/cncidr.yaml
interval: 86400
lancidr:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt"
path: ./ruleset/lancidr.yaml
interval: 86400
applications:
type: http
behavior: classical
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/applications.txt"
path: ./ruleset/applications.yaml
interval: 86400
rules:
- RULE-SET,applications,DIRECT
- RULE-SET,private,DIRECT
- RULE-SET,reject,REJECT
- RULE-SET,icloud,DIRECT
- RULE-SET,apple,DIRECT
- RULE-SET,google,DIRECT
- RULE-SET,proxy,PROXY
- RULE-SET,direct,DIRECT
- RULE-SET,lancidr,DIRECT
- RULE-SET,cncidr,DIRECT
- RULE-SET,telegramcidr,PROXY
- GEOIP,LAN,DIRECT
- GEOIP,CN,DIRECT
- MATCH,PROXY
proxy-groups
proxy-groups:
- name: PROXY_MU
type: select
proxies:
- vhk
- vus
- vsg
- wg
- DIRECT
- name: PROXY_AU
type: url-test
proxies:
- vhk
- vsg
- vus
# tolerance: 150
# lazy: true
url: 'http://www.gstatic.com/generate_204'
interval: 300
- name: PROXY_LB
type: load-balance
proxies:
- vhk
- vsg
url: 'http://www.gstatic.com/generate_204'
interval: 300
# strategy: consistent-hashing # or round-robin
- name: PROXY
type: select
proxies:
- PROXY_MU
- PROXY_AU
- PROXY_LB
Member discussion