安装环境
软路由机器架构: x86_64
OpenWrt版本: 22.03
Clash版本: Premium
OpenWrt的IP: 192.168.88.3 (如果不同,后面涉及此地址全部需要修改)
目标
安装及配置完Clash后,在浏览器的设置->系统->打开您计算机的代理设置->手动设置代理
按上图输入主路由器地址和端口,并保存退出就可以访问Google
0. 下载
以下软件需要预先下载,然后再通过Winscp工具上传到openWrt里面。
- Clash
- Country.mmdb
- yacd (UI界面,可选)
也可以在openWrt命令行执行以下脚本自动安装及配置后续全部内容(但代理配置文件仍需自定义)
wget https://www.shuncs.com/download/instclash.sh && chmod +x instclash.sh && ./instclash.sh
1. 安装Clash
打开Winscp客户端,点击新建会话(快捷键ctrl+n),文件协议选择SCP,主机名里面输入主路由器地址192.168.88.3,用户名输入root,如下图
然后点击保存和确定,然后点击登录,将下载好的软件上传到openWrt中(如果有密钥提示,点击添加)
使用putty登录openWrt,然后按顺序执行以下命令(大小写勿输错)
cd /root
gunzip clash-linux-amd64-latest.gz
mv clash-linux-amd64-latest /usr/bin/clash
chmod +x /usr/bin/clash
mkdir -p /root/.config/clash
mv Country.mmdb .config/clash/
2. 配置
- 新增Clash配置文件
vi /root/.config/clash/router.yaml
将如下内容复制到文件中(以下部分内容自定义),然后输入:wq保存退出
mixed-port: 7890
redir-port: 7892
tproxy-port: 7893
allow-lan: true
log-level: info
ipv6: false
#下面三行内容可以在web页面查看流量规则等,如果未安装请在前面加#
secret: ''
external-controller: '192.168.88.3:9090'
external-ui: ui
profile:
store-fake-ip: true
#如果未安装tun,请在前面加#注释掉
tun:
enable: true
stack: system
dns-hijack:
- tcp://8.8.8.8:53
- udp://8.8.8.8:53
auto-route: true
auto-detect-interface: true
dns:
enable: true
ipv6: false
listen: 0.0.0.0:5353
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- 114.114.114.114
- 223.5.5.5
fallback:
- tls://dns.google:853
- tls://1.1.1.1:853
fallback-filter:
geoip: true
ipcidr:
- 240.0.0.0/4
proxy-providers:
proxyA: #根据实际情况自定义
type: file
path: ./proxies/proxyA.yaml #根据实际情况自定义
health-check:
enable: true
interval: 36000
url: http://www.gstatic.com/generate_204
proxyB: #根据实际情况自定义
type: file
path: ./proxies/proxyB.yaml #根据实际情况自定义
health-check:
enable: true
interval: 36000
url: http://www.gstatic.com/generate_204
proxyURL: #如果是订阅链接在此处配置即可
type: http
url: "https://raw.githubusercontent.com/learnhard-cn/free_proxy_ss/main/clash/clash.provider.yaml" #根据实际情况自定义
interval: 3600
path: ./proxies/proxyURL.yaml #根据实际情况自定义
health-check:
enable: true
interval: 600
url: http://www.gstatic.com/generate_204
proxy-groups:
- name: "auto"
type: url-test
use:
- proxyA #需要和上面名称对应
- proxyB #需要和上面名称对应
url: 'http://www.gstatic.com/generate_204'
interval: 300
- name: Proxy
type: select
use:
- proxyB #需要和上面名称对应
# fallback 自动选择服务器
- name: "fallback-auto"
type: fallback
use:
- proxyA #需要和上面名称对应
- proxyB #需要和上面名称对应
url: 'http://www.gstatic.com/generate_204'
interval: 300
- name: "load-balance"
type: load-balance
use:
- proxyA #需要和上面名称对应
- proxyB #需要和上面名称对应
url: 'http://www.gstatic.com/generate_204'
interval: 300
rule-providers:
reject:
type: file
behavior: classical
path: ./rules/reject.yaml
proxy:
type: file
behavior: classical
path: ./rules/proxy.yaml
rules:
# 拒绝->代理->其余直连
- RULE-SET,reject,REJECT
- RULE-SET,proxy,fallback-auto
- MATCH,DIRECT
以上内容也可在以下地址下载
https://www.shuncs.com/download/route_sample.yaml
- 新增规则文件
输入以下命令
vi /root/.config/clash/rules/proxy.yaml
将如下内容复制到文件中,然后输入:wq保存退出
payload:
- DOMAIN-KEYWORD,google
- DOMAIN-KEYWORD,gmail
- DOMAIN-KEYWORD,youtube
以上内容仅是示例, 具体可在以下地址下载
https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/proxy.txt
- 新增黑名单文件
输入以下命令
vi /root/.config/clash/rules/reject.yaml
将如下内容复制到文件中,然后输入:wq保存退出
payload:
- DOMAIN-KEYWORD,admarvel
- DOMAIN-KEYWORD,admaster
以上内容仅是示例, 详细可在以下地址下载
https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/reject.txt
- 测试Clash配置文件的格式是否正确
clash -d /root/.config/clash/ -t -f router.yaml
- 设置openWrt中每次开机自动启动Clash
vi /etc/init.d/clash
将此内容复制到文件中,并输入:wq保存退出。
#!/bin/sh /etc/rc.common
START=90
STOP=15
USE_PROCD=1
#PROCD_DEBUG=1
CONF=/root/.config/clash/
CONFFILE=router.yaml
PROG=/usr/bin/clash
start_service() {
procd_open_instance
procd_set_param command $PROG -f $CONF$CONFFILE -d $CONF
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-9}
procd_close_instance
}
- 设置权限,并使之生效
chmod 755 /etc/init.d/clash
service clash enable
- 启动Clash
service clash start
- 配置Clash UI (可选)
使用Winscp工具,将yacd.tar内的文件夹上传到openWrt机器,然后执行以下命令
mv /root/public /root/.config/clash/ui
/etc/init.d/clash restart
在浏览器地址栏中输入: http://192.168.88.3:9090/ui 显示以下内容,在Host一栏输入192.168.88.3,点击确定即可显示Clash详细页面
3. 软件下载
名称 | 版本号 | 说明 | 下载地址 |
---|---|---|---|
Clash | Premium | 透明代理 | https://release.dreamacro.workers.dev/latest/clash-linux-amd64-latest.gz |
Clash-dashboard | clash Web界面 | https://github.com/Dreamacro/clash-dashboard/archive/refs/heads/gh-pages.zip | |
Winscp | 5.21 | SCP客户端 | https://winscp.net/download/WinSCP-5.21.5-Portable.zip |
Putty | 0.78 | 虚拟终端 | https://the.earth.li/~sgtatham/putty/latest/w64/putty.exe |
Country.mmdb | IP地址库 | https://github.com/Dreamacro/maxmind-geoip/releases/latest/download/Country.mmdb |
4. 说明
- Clash版本区别
Premium 版本支持TUN和配置文件中RULE-SET
如果有电视机顶盒,只能使用Premium版本
- Clash规则配置文件格式(Premium有效)
payload:
- DOMAIN-SUFFIX,yinxiang.com
- DOMAIN-SUFFIX,fb.me
- DOMAIN-KEYWORD,linkedin
- DOMAIN,local.adguard.org
- IP-CIDR,192.168.0.0/16
- PROCESS-NAME,wechat
- Clash配置说明
规则 说明 范例 说明 PROCESS-NAME 匹配进程 wechat.exe 进程名包含该关键字,在透明代理上不生效 PROCESS-SUFFIX 域名后缀 yinxiang.com PROCESS-KEYWORD 域名关键字 linkedin DOMAIN 域名匹配 local.adguard.org IP-CIDR IP段匹配 192.168.0.0/16 SRC-IP-CIDR 源IP段匹配 192.168.0.0/16 GEOIP GEOIP数据库匹配 CN 国家代码 DST-PORT 目标端口匹配 SRC-PORT 源端口匹配 MATCH 全匹配 一般放在最后
全文完