Clash的搭建教程

没啊办法,翻墙翻墙还是翻墙。

上游有若干 trojian 、v2ray 、sock5 、http各种各样的代理,这样多种的选择,那么就装一个 clash 客户端就可以全接管了。

说下我们的做法:找个小Linux做旁路由,DNS和网关都设置在这台机器上,局域网内的机器都通过这台上网。

我们用到的是 clash 的 Tproxy redir-host 和 udp-proxy 模式,这种模式比较强大。用就用最强大的。

安装很简单,操作系统 centos 或者 ubuntu 都行,项目地址:

https://github.com/Dreamacro/clash

说明书:

https://lancellc.gitbook.io/clash/clash-config-file/proxy-groups/load-balance

首先下载二进制文件,现在版本是 v1.7.1,解压后放到 /usr/local/bin 目录下

1wget https://github.com/Dreamacro/clash/releases/download/v1.7.1/clash-linux-amd64-v1.7.1.gz
2gzip -d clash-linux-amd64-v1.7.1.gz
3chmod 755 clash-linux-amd64-v1.7.1
4mv clash-linux-amd64-v1.7.1 /usr/local/bin

然后生成 clash.service

 1cat << EOF >> /etc/systemd/system/clash.service 
 2[Unit]
 3Description=clash service
 4After=network.target
 5
 6[Service]
 7Type=simple
 8User=root
 9ExecStart=/usr/local/bin/clash-linux-amd64-v1.7.1
10Restart=on-failure # or always, on-abort, etc
11
12[Install]
13WantedBy=multi-user.target
14EOF

然后最重要的,就是配置文件了

我这里这个旁路由的设备 IP 地址是 192.168.2.2,网卡设备是 enp2s0

下卖弄

 1# http的代理端口
 2port: 7890
 3#mixed-port: 7890
 4socks-port: 7891
 5redir-port: 7892
 6tproxy-port: 7893
 7
 8ipv6: false
 9
10allow-lan: true
11bind-address: '192.168.2.2'
12interface-name: enp2s0
13
14mode: rule
15log-level: info
16external-controller: 0.0.0.0:9090
17secret: "Fuck2021"
18external-ui: dashboard
19
20profile:
21  store-selected: false
22  tracing: true
23
24
25hosts:
26  # 把cantv的域名解析屏蔽掉,禁止它自动升级
27  'tms.can.cibntv.net': 0.0.0.0
28
29dns:
30  enable: true
31  listen: 0.0.0.0:1053
32  enhanced-mode: redir-host # or fake-ip
33  nameserver:
34    - '114.114.114.114'
35    - '223.5.5.5'
36  fallback:
37    - 208.67.220.220:5353
38    - 208.67.222.222:5353
39    - 101.6.6.6:5353
40
41proxies:
42  - name: "trojan1"
43    type: trojan
44    server: www.linuxboy.net
45    port: 443
46    password: Fuck2021
47    sni: www.linuxboy.net
48    skip-cert-verify: true
49
50 - name: "vmess1"
51    type: vmess
52    server: 101.59.201.93
53    port: 41555 
54    uuid: 7a17ae5e-fb86-42e2-abd4-b8c33cfabcd
55    alterId: 64
56    cipher: auto
57    
58proxy-groups:
59  - name: Proxy
60    type: select
61    proxies:
62      - trojan
63
64  - name: "auto"
65    type: url-test
66    proxies:
67      - vmess1
68      - trojan1
69    url: 'http://www.gstatic.com/generate_204'
70    interval: 300
71
72rules:
73  - DOMAIN-SUFFIX,v2ex.com,Proxy
74  - DOMAIN-SUFFIX,t66y.com,Proxy
75  - DOMAIN-SUFFIX,ycombinator.com,Proxy
76  - DOMAIN-SUFFIX,reddit.com,Proxy
77  - DOMAIN-KEYWORD,amazon,Proxy
78  - DOMAIN-KEYWORD,google,Proxy
79  - DOMAIN-KEYWORD,gmail,Proxy
80  - DOMAIN-KEYWORD,youtube,Proxy
81  - DOMAIN-KEYWORD,facebook,Proxy
82  - DOMAIN-SUFFIX,fb.me,Proxy
83  - DOMAIN-SUFFIX,fbcdn.net,Proxy
84  - DOMAIN-KEYWORD,twitter,Proxy
85  - DOMAIN-KEYWORD,instagram,Proxy
86  - DOMAIN-KEYWORD,dropbox,Proxy
87  - DOMAIN-SUFFIX,twimg.com,Proxy
88  - DOMAIN-KEYWORD,blogspot,Proxy
89  - DOMAIN-SUFFIX,youtu.be,Proxy
90  - DOMAIN-KEYWORD,whatsapp,Proxy
91  - SRC-IP-CIDR,192.168.1.0/32,DIRECT
92  - SRC-IP-CIDR,192.168.2.0/32,DIRECT
93  - IP-CIDR,127.0.0.0/8,DIRECT
94  - GEOIP,CN,DIRECT
95  - MATCH,Proxy

解释一下:proxy 定义了两个代理,一个是 trojan,一个是 v2ray。然后再集合成组,一个组叫 Proxy, 显式指定用 trojan;另一个组叫 auto,根据 vmess1 和 trojan1 访问 http://www.gstatic.com/generate_204 的页面速度,谁快就用谁,缺省300秒会访问一次这个页面来决定哪个代理快。

剩下的 rules 就很简单,把自己知道要访问的域名放到代理中去,然后把局域网的 IP 段放进 DIRECT 直接访问,最后 GEO IP 不是中国的由 Proxy 兜底。

网上有一大堆规则,八戒的建议是不要去学,规则越多越慢,你自己知道要访问什么网站需要翻墙,加进去就好了。弄一堆,自己看着都头蒙

最后我们在 rc.local 放入以下 iptable 内容,就可以了

 1###
 2#clash
 3ip rule add fwmark 1 table 100
 4ip route add local 0.0.0.0/0 dev lo table 100
 5
 6# CREATE TABLE
 7iptables -t mangle -N clash
 8
 9# RETURN LOCAL AND LANS
10iptables -t mangle -A clash -d 0.0.0.0/8 -j RETURN
11iptables -t mangle -A clash -d 10.0.0.0/8 -j RETURN
12iptables -t mangle -A clash -d 100.64.0.0/10 -j RETURN
13iptables -t mangle -A clash -d 127.0.0.0/8 -j RETURN
14iptables -t mangle -A clash -d 169.254.0.0/16 -j RETURN
15iptables -t mangle -A clash -d 172.16.0.0/12 -j RETURN
16iptables -t mangle -A clash -d 192.168.0.0/16 -j RETURN
17iptables -t mangle -A clash -d 224.0.0.0/4 -j RETURN
18iptables -t mangle -A clash -d 240.0.0.0/4 -j RETURN
19
20# whitelist China ip.
21# iptables -t mangle -A clash -m set --match-set china dst -j RETURN
22
23# FORWARD ALL
24iptables -t mangle -A clash -p udp -j TPROXY --on-port 7893 --tproxy-mark 1
25iptables -t mangle -A clash -p tcp -j TPROXY --on-port 7893 --tproxy-mark 1
26
27# REDIRECT
28iptables -t mangle -A PREROUTING -j clash
29
30# hijack DNS to Clash
31iptables -t nat -N CLASH_DNS
32iptables -t nat -F CLASH_DNS 
33iptables -t nat -A CLASH_DNS -p udp -j REDIRECT --to-port 1053
34iptables -t nat -I PREROUTING -p udp --dport 53 -j CLASH_DNS

最后启动clash

1systemctl start clash

Onedev构建一个实际java Spring应用
Kubernetes创建普通账号
comments powered by Disqus