├── README.md
├── bin
├── Country.mmdb
├── clash
│ ├── clash-linux-386
│ ├── clash-linux-amd64
│ ├── clash-linux-armv5
│ ├── clash-linux-armv7
│ ├── clash-linux-armv8
│ ├── clash-linux-mips-softfloat
│ ├── clash-linux-mipsle-hardfloat
│ └── clash-linux-mipsle-softfloat
├── clashdb.tar.gz
├── clashfm.tar.gz
├── clashpre
│ ├── clash-linux-386
│ ├── clash-linux-amd64
│ ├── clash-linux-armv5
│ ├── clash-linux-armv7
│ ├── clash-linux-armv8
│ ├── clash-linux-mips-softfloat
│ ├── clash-linux-mipsle-hardfloat
│ └── clash-linux-mipsle-softfloat
├── config.yaml
└── version
├── install.sh
├── install_cdn.sh
└── scripts
├── clash.service
├── clash.sh
├── clashservice
├── getdate.sh
└── start.sh
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # ShellClash(原Clash for Miwifi)
4 |
5 | 在Linux系统中Shell环境下一键部署及管理[Clash](https://github.com/Dreamacro/clash)
6 | =====
7 |
8 | 功能简介:
9 | --
10 | ~通过管理脚本在各种版本的Linux系统中Shell环境下便捷使用[Clash](https://github.com/Dreamacro/clash)
11 | ~支持在Shell环境下管理[Clash各种功能](https://lancellc.gitbook.io/clash)
12 | ~支持批量导入[Clash](https://github.com/Dreamacro/clash)支持的节点链接及订阅链接
13 | ~支持配置定时任务,以及定时更新订阅及配置文件
14 | ~支持在线安装及使用网页Dashboard面板管理规则组,且支持自动保存面板选择
15 | ~支持局域网透明代理/纯净模式等多种模式切换
~支持在线更新管理脚本及升级Clash核心
16 |
17 | 设备支持:
18 | --
19 |
20 | ~支持小米/红米全系使用官方系统或官方开发版系统的路由器设备
21 | ~支持各种基于OpenWrt或使用OpenWrt二次定制开发的路由器设备
22 | ~支持各种运行Linux系统(如Debian/CenOS/Armbian等)的设备
~兼容Padavan固件(保守模式)、潘多拉固件
——————————
23 | ~高恪、梅林等固件(需要自行安装curl以完成安装和使用)
24 | ~更多设备支持,请提issue或前往TG群反馈(需提供设备名称及运行uname -a返回的设备核心信息)
25 |
26 | 使用方式:
27 | --
28 | ~确认路由器或设备已经开启SSH并获取root权限
29 | ~使用SSH连接工具(如putty,JuiceSSH,系统自带终端等)路由器或设备的SSH管理界面,并切换到root用户
30 | ~确认设备已经安装curl,如未安装,LInux设备请[参考此处](https://www.howtoing.com/install-curl-in-linux)进行安装,基于OpenWrt(小米官方系统、潘多拉、高恪等)的设备请使用如下命令安装:
31 |
32 | ```shell
33 | opkg update && opkg install curl
34 | ```
35 |
36 | ~之后在SSH界面执行如下安装命令,并按照后续提示完成安装
37 |
38 | ```Shell
39 | #Release版本-github直连
40 | sh -c "$(curl -kfsSl --resolve raw.githubusercontent.com:443:199.232.68.133 https://raw.githubusercontent.com/juewuy/ShellClash/master/install.sh)" && source /etc/profile &> /dev/null
41 | #Release版本-jsdelivrCDN源
42 | sh -c "$(curl -kfsSl https://cdn.jsdelivr.net/gh/juewuy/ShellClash@master/install.sh)" && source /etc/profile &> /dev/null
43 | #Test版本-github直连
44 | sh -c "$(curl -kfsSl --resolve raw.githubusercontent.com:443:199.232.68.133 https://raw.githubusercontent.com/juewuy/ShellClash/master/install.sh)" -s 1 && source /etc/profile &> /dev/null
45 | ```
46 |
47 | ~安装完成管理脚本后,执行如下命令以运行管理脚本
48 |
49 | ```Shell
50 | clash #正常模式运行
51 | clash -h #脚本帮助及说明
52 | clash -t #测试模式运行
53 | ```
54 |
55 | 更新日志:
56 | --
57 | https://github.com/juewuy/ShellClash/releases
58 |
59 | 交流反馈:
60 | --
61 | ### https://t.me/clashfm
62 |
63 | 已知问题:
64 | --
65 | ~Tun模式下clash服务可能会和路由器内置的网游加速器冲突,请谨慎同时使用
66 | ~Redir模式暂不支持转发udp流量,外服游戏可能会受影响,外服游戏用户建议使用Tun模式
67 | ~部分低性能设备长时间使用会出现内存占用偏高,可以通过屏蔽p2p流量及设置每日定时重启核心以缓解
68 |
69 | 友情推广:
70 | --
71 | [顶级8K专线机场-墙洞](https://dler.best/auth/register?affid=89698)
72 |
--------------------------------------------------------------------------------
/bin/Country.mmdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/Country.mmdb
--------------------------------------------------------------------------------
/bin/clash/clash-linux-386:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clash/clash-linux-386
--------------------------------------------------------------------------------
/bin/clash/clash-linux-amd64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clash/clash-linux-amd64
--------------------------------------------------------------------------------
/bin/clash/clash-linux-armv5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clash/clash-linux-armv5
--------------------------------------------------------------------------------
/bin/clash/clash-linux-armv7:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clash/clash-linux-armv7
--------------------------------------------------------------------------------
/bin/clash/clash-linux-armv8:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clash/clash-linux-armv8
--------------------------------------------------------------------------------
/bin/clash/clash-linux-mips-softfloat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clash/clash-linux-mips-softfloat
--------------------------------------------------------------------------------
/bin/clash/clash-linux-mipsle-hardfloat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clash/clash-linux-mipsle-hardfloat
--------------------------------------------------------------------------------
/bin/clash/clash-linux-mipsle-softfloat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clash/clash-linux-mipsle-softfloat
--------------------------------------------------------------------------------
/bin/clashdb.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clashdb.tar.gz
--------------------------------------------------------------------------------
/bin/clashfm.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clashfm.tar.gz
--------------------------------------------------------------------------------
/bin/clashpre/clash-linux-386:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clashpre/clash-linux-386
--------------------------------------------------------------------------------
/bin/clashpre/clash-linux-amd64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clashpre/clash-linux-amd64
--------------------------------------------------------------------------------
/bin/clashpre/clash-linux-armv5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clashpre/clash-linux-armv5
--------------------------------------------------------------------------------
/bin/clashpre/clash-linux-armv7:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clashpre/clash-linux-armv7
--------------------------------------------------------------------------------
/bin/clashpre/clash-linux-armv8:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clashpre/clash-linux-armv8
--------------------------------------------------------------------------------
/bin/clashpre/clash-linux-mips-softfloat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clashpre/clash-linux-mips-softfloat
--------------------------------------------------------------------------------
/bin/clashpre/clash-linux-mipsle-hardfloat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clashpre/clash-linux-mipsle-hardfloat
--------------------------------------------------------------------------------
/bin/clashpre/clash-linux-mipsle-softfloat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yang123me/ShellClash/e60b0ad59b41f2987ed37b0f1775363730d28421/bin/clashpre/clash-linux-mipsle-softfloat
--------------------------------------------------------------------------------
/bin/config.yaml:
--------------------------------------------------------------------------------
1 | port: 7890 # HTTP代理端口
2 | socks-port: 7891 # SOCKS5代理端口
3 | mixed-port: 8888 # HTTP&SOCKS5代理二合一端口
4 | redir-port: 7892 # Redir模式代理端口
5 | allow-lan: true # 允许局域网连接
6 | mode: Rule # 默认代理模式,可在网页调试页面更换
7 | log-level: info # 日志级别 silent / info / warning / error / debug
8 | external-controller: ':9999' # 网页调试端口
9 | secret: "" # 网页调试密码,默认为空
10 | dns: {enable: true, listen: ':1053', fake-ip-range: 198.18.0.1/16, enhanced-mode: fake-ip, nameserver: [tls://dns.rubyfish.cn:853, 127.0.0.1:53], fallback: [tcp://1.1.1.1, tls://dns.google:853]}
11 | tun: {enable: false, stack: system} #Tun模式设置
12 | experimental: {ignore-resolve-fail: true, interface-name: en0} #实验性功能,尽量不要改动
13 |
14 | proxies: #代理节点配置
15 | # 注意ss/ssr节点仅支持如下加密方式:
16 | # aes-128-gcm aes-192-gcm aes-256-gcm
17 | # aes-128-cfb aes-192-cfb aes-256-cfb
18 | # aes-128-ctr aes-192-ctr aes-256-ctr
19 | # rc4-md5 chacha20-ietf xchacha20
20 | # chacha20-ietf-poly1305 xchacha20-ietf-poly1305
21 | #以下为配置具体示例,可以直接修改
22 | #懒得改的可以使用https://clash.skk.moe/proxy生成配置
23 | - name: "ss" # 软件显示的节点名字
24 | type: ss # 代理类型
25 | server: 1.2.4.8 # 服务器 IP
26 | port: 443 # 端口号
27 | cipher: chacha20-ietf-poly1305 # 加密方法
28 | password: "password" # SS 密码
29 | #udp: true #udp转发,默认不开启
30 | - name: "v2ray" # 软件显示的节点名字
31 | type: vmess # 代理类型
32 | server: v2rayssr.com # 服务器 IP
33 | port: 443 # 端口号
34 | uuid: a3482e88-686a-4a58-8126-99c9df64b7bf
35 | alterId: 64 #额外的 ID
36 | cipher: auto
37 | #上面几行为必选参数
38 | #下面几行为可选参数 根据你的配置情况来,需要删除#号以生效
39 | #udp: true #udp转发,默认不开启
40 | #tls: true #TLS证书模式 开启
41 | #skip-cert-verify: true #跳过证书验证,默认不开启
42 | #network: ws # 网路类型 WS HTTP 等
43 | #ws-path: /path # 路径
44 | #ws-headers: #默认不开启
45 | #Host: v2ray.com # HOST网址
46 | - name: "Trojan"
47 | type: trojan # 代理类型
48 | server: 123.abc.xyz # 代理服务器地址
49 | port: 443 # 端口,通常都是443
50 | password: asdf1234 # 密码
51 | skip-cert-verify: true # 跳过证书验证,建议打开
52 |
53 | proxy-groups:
54 | - name: "自动节点选择"
55 | type: url-test
56 | proxies:
57 | - "ss" #添加或者删除节点时要同步修改
58 | - "v2ray"
59 | - "Trojan"
60 | url: 'http://www.gstatic.com/generate_204'
61 | interval: 100
62 |
63 | # 代理节点选择
64 | - name: "PROXY"
65 | type: select
66 | proxies:
67 | - "自动节点选择"
68 | - "ss" #添加或者删除节点时要同步修改
69 | - "v2ray"
70 | - "Trojan"
71 | # 白名单模式 PROXY,黑名单模式 DIRECT
72 | - name: "Final"
73 | type: select
74 | proxies:
75 | - "PROXY"
76 | - "DIRECT"
77 | # Apple 服务代理
78 | - name: "Apple"
79 | type: select
80 | proxies:
81 | - "DIRECT"
82 | - "PROXY"
83 | # 国际流媒体服务
84 | - name: "GlobalMedia"
85 | type: select
86 | proxies:
87 | - "PROXY"
88 | - "ss" #添加或者删除节点时要同步修改
89 | - "v2ray"
90 | - "Trojan"
91 | # 大陆流媒体面向港澳台限定服务
92 | - name: "HKMTMedia"
93 | type: select
94 | proxies:
95 | - "DIRECT"
96 | - "ss" #添加或者删除节点时要同步修改
97 | - "v2ray"
98 | - "Trojan"
99 | # 运营商及声名狼藉网站劫持
100 | - name: "Hijacking"
101 | type: select
102 | proxies:
103 | - "REJECT"
104 | - "DIRECT"
105 |
106 | # 规则
107 | rules:
108 | # Unbreak
109 | # > Google
110 | - DOMAIN-SUFFIX,googletraveladservices.com,DIRECT
111 | - DOMAIN,dl.google.com,DIRECT
112 | - DOMAIN,mtalk.google.com,DIRECT
113 | # Internet Service Providers Hijacking 运营商劫持
114 | - DOMAIN-SUFFIX,17gouwuba.com,Hijacking
115 | - DOMAIN-SUFFIX,186078.com,Hijacking
116 | - DOMAIN-SUFFIX,189zj.cn,Hijacking
117 | - DOMAIN-SUFFIX,285680.com,Hijacking
118 | - DOMAIN-SUFFIX,3721zh.com,Hijacking
119 | - DOMAIN-SUFFIX,4336wang.cn,Hijacking
120 | - DOMAIN-SUFFIX,51chumoping.com,Hijacking
121 | - DOMAIN-SUFFIX,51mld.cn,Hijacking
122 | - DOMAIN-SUFFIX,51mypc.cn,Hijacking
123 | - DOMAIN-SUFFIX,58mingri.cn,Hijacking
124 | - DOMAIN-SUFFIX,58mingtian.cn,Hijacking
125 | - DOMAIN-SUFFIX,5vl58stm.com,Hijacking
126 | - DOMAIN-SUFFIX,6d63d3.com,Hijacking
127 | - DOMAIN-SUFFIX,7gg.cc,Hijacking
128 | - DOMAIN-SUFFIX,91veg.com,Hijacking
129 | - DOMAIN-SUFFIX,9s6q.cn,Hijacking
130 | - DOMAIN-SUFFIX,adsame.com,Hijacking
131 | - DOMAIN-SUFFIX,aiclk.com,Hijacking
132 | - DOMAIN-SUFFIX,akuai.top,Hijacking
133 | - DOMAIN-SUFFIX,atplay.cn,Hijacking
134 | - DOMAIN-SUFFIX,baiwanchuangyi.com,Hijacking
135 | - DOMAIN-SUFFIX,beerto.cn,Hijacking
136 | - DOMAIN-SUFFIX,beilamusi.com,Hijacking
137 | - DOMAIN-SUFFIX,benshiw.net,Hijacking
138 | - DOMAIN-SUFFIX,bianxianmao.com,Hijacking
139 | - DOMAIN-SUFFIX,bryonypie.com,Hijacking
140 | - DOMAIN-SUFFIX,cishantao.com,Hijacking
141 | - DOMAIN-SUFFIX,cszlks.com,Hijacking
142 | - DOMAIN-SUFFIX,cudaojia.com,Hijacking
143 | - DOMAIN-SUFFIX,dafapromo.com,Hijacking
144 | - DOMAIN-SUFFIX,daitdai.com,Hijacking
145 | - DOMAIN-SUFFIX,dsaeerf.com,Hijacking
146 | - DOMAIN-SUFFIX,dugesheying.com,Hijacking
147 | - DOMAIN-SUFFIX,dv8c1t.cn,Hijacking
148 | - DOMAIN-SUFFIX,echatu.com,Hijacking
149 | - DOMAIN-SUFFIX,erdoscs.com,Hijacking
150 | - DOMAIN-SUFFIX,fan-yong.com,Hijacking
151 | - DOMAIN-SUFFIX,feih.com.cn,Hijacking
152 | - DOMAIN-SUFFIX,fjlqqc.com,Hijacking
153 | - DOMAIN-SUFFIX,fkku194.com,Hijacking
154 | - DOMAIN-SUFFIX,freedrive.cn,Hijacking
155 | - DOMAIN-SUFFIX,gclick.cn,Hijacking
156 | - DOMAIN-SUFFIX,goufanli100.com,Hijacking
157 | - DOMAIN-SUFFIX,goupaoerdai.com,Hijacking
158 | - DOMAIN-SUFFIX,gouwubang.com,Hijacking
159 | - DOMAIN-SUFFIX,gzxnlk.com,Hijacking
160 | - DOMAIN-SUFFIX,haoshengtoys.com,Hijacking
161 | - DOMAIN-SUFFIX,hyunke.com,Hijacking
162 | - DOMAIN-SUFFIX,ichaosheng.com,Hijacking
163 | - DOMAIN-SUFFIX,ishop789.com,Hijacking
164 | - DOMAIN-SUFFIX,jdkic.com,Hijacking
165 | - DOMAIN-SUFFIX,jiubuhua.com,Hijacking
166 | - DOMAIN-SUFFIX,jsncke.com,Hijacking
167 | - DOMAIN-SUFFIX,junkucm.com,Hijacking
168 | - DOMAIN-SUFFIX,jwg365.cn,Hijacking
169 | - DOMAIN-SUFFIX,kawo77.com,Hijacking
170 | - DOMAIN-SUFFIX,kualianyingxiao.cn,Hijacking
171 | - DOMAIN-SUFFIX,kumihua.com,Hijacking
172 | - DOMAIN-SUFFIX,ltheanine.cn,Hijacking
173 | - DOMAIN-SUFFIX,maipinshangmao.com,Hijacking
174 | - DOMAIN-SUFFIX,minisplat.cn,Hijacking
175 | - DOMAIN-SUFFIX,mkitgfs.com,Hijacking
176 | - DOMAIN-SUFFIX,mlnbike.com,Hijacking
177 | - DOMAIN-SUFFIX,mobjump.com,Hijacking
178 | - DOMAIN-SUFFIX,nbkbgd.cn,Hijacking
179 | - DOMAIN-SUFFIX,newapi.com,Hijacking
180 | - DOMAIN-SUFFIX,pinzhitmall.com,Hijacking
181 | - DOMAIN-SUFFIX,poppyta.com,Hijacking
182 | - DOMAIN-SUFFIX,qianchuanghr.com,Hijacking
183 | - DOMAIN-SUFFIX,qichexin.com,Hijacking
184 | - DOMAIN-SUFFIX,qinchugudao.com,Hijacking
185 | - DOMAIN-SUFFIX,quanliyouxi.cn,Hijacking
186 | - DOMAIN-SUFFIX,qutaobi.com,Hijacking
187 | - DOMAIN-SUFFIX,ry51w.cn,Hijacking
188 | - DOMAIN-SUFFIX,sg536.cn,Hijacking
189 | - DOMAIN-SUFFIX,sifubo.cn,Hijacking
190 | - DOMAIN-SUFFIX,sifuce.cn,Hijacking
191 | - DOMAIN-SUFFIX,sifuda.cn,Hijacking
192 | - DOMAIN-SUFFIX,sifufu.cn,Hijacking
193 | - DOMAIN-SUFFIX,sifuge.cn,Hijacking
194 | - DOMAIN-SUFFIX,sifugu.cn,Hijacking
195 | - DOMAIN-SUFFIX,sifuhe.cn,Hijacking
196 | - DOMAIN-SUFFIX,sifuhu.cn,Hijacking
197 | - DOMAIN-SUFFIX,sifuji.cn,Hijacking
198 | - DOMAIN-SUFFIX,sifuka.cn,Hijacking
199 | - DOMAIN-SUFFIX,smgru.net,Hijacking
200 | - DOMAIN-SUFFIX,taoggou.com,Hijacking
201 | - DOMAIN-SUFFIX,tcxshop.com,Hijacking
202 | - DOMAIN-SUFFIX,tjqonline.cn,Hijacking
203 | - DOMAIN-SUFFIX,topitme.com,Hijacking
204 | - DOMAIN-SUFFIX,tt3sm4.cn,Hijacking
205 | - DOMAIN-SUFFIX,tuia.cn,Hijacking
206 | - DOMAIN-SUFFIX,tuipenguin.com,Hijacking
207 | - DOMAIN-SUFFIX,tuitiger.com,Hijacking
208 | - DOMAIN-SUFFIX,websd8.com,Hijacking
209 | - DOMAIN-SUFFIX,wsgblw.com,Hijacking
210 | - DOMAIN-SUFFIX,wx16999.com,Hijacking
211 | - DOMAIN-SUFFIX,xchmai.com,Hijacking
212 | - DOMAIN-SUFFIX,xiaohuau.xyz,Hijacking
213 | - DOMAIN-SUFFIX,ygyzx.cn,Hijacking
214 | - DOMAIN-SUFFIX,yinmong.com,Hijacking
215 | - DOMAIN-SUFFIX,yitaopt.com,Hijacking
216 | - DOMAIN-SUFFIX,yjqiqi.com,Hijacking
217 | - DOMAIN-SUFFIX,yukhj.com,Hijacking
218 | - DOMAIN-SUFFIX,zhaozecheng.cn,Hijacking
219 | - DOMAIN-SUFFIX,zhenxinet.com,Hijacking
220 | - DOMAIN-SUFFIX,zlne800.com,Hijacking
221 | - DOMAIN-SUFFIX,zunmi.cn,Hijacking
222 | - DOMAIN-SUFFIX,zzd6.com,Hijacking
223 | - IP-CIDR,39.107.15.115/32,Hijacking,no-resolve
224 | - IP-CIDR,47.89.59.182/32,Hijacking,no-resolve
225 | - IP-CIDR,103.49.209.27/32,Hijacking,no-resolve
226 | - IP-CIDR,123.56.152.96/32,Hijacking,no-resolve
227 | # > ChinaTelecom
228 | - IP-CIDR,61.160.200.223/32,Hijacking,no-resolve
229 | - IP-CIDR,61.160.200.242/32,Hijacking,no-resolve
230 | - IP-CIDR,61.160.200.252/32,Hijacking,no-resolve
231 | - IP-CIDR,61.174.50.214/32,Hijacking,no-resolve
232 | - IP-CIDR,111.175.220.163/32,Hijacking,no-resolve
233 | - IP-CIDR,111.175.220.164/32,Hijacking,no-resolve
234 | - IP-CIDR,122.229.8.47/32,Hijacking,no-resolve
235 | - IP-CIDR,122.229.29.89/32,Hijacking,no-resolve
236 | - IP-CIDR,124.232.160.178/32,Hijacking,no-resolve
237 | - IP-CIDR,175.6.223.15/32,Hijacking,no-resolve
238 | - IP-CIDR,183.59.53.237/32,Hijacking,no-resolve
239 | - IP-CIDR,218.93.127.37/32,Hijacking,no-resolve
240 | - IP-CIDR,221.228.17.152/32,Hijacking,no-resolve
241 | - IP-CIDR,221.231.6.79/32,Hijacking,no-resolve
242 | - IP-CIDR,222.186.61.91/32,Hijacking,no-resolve
243 | - IP-CIDR,222.186.61.95/32,Hijacking,no-resolve
244 | - IP-CIDR,222.186.61.96/32,Hijacking,no-resolve
245 | - IP-CIDR,222.186.61.97/32,Hijacking,no-resolve
246 | # > ChinaUnicom
247 | - IP-CIDR,106.75.231.48/32,Hijacking,no-resolve
248 | - IP-CIDR,119.4.249.166/32,Hijacking,no-resolve
249 | - IP-CIDR,220.196.52.141/32,Hijacking,no-resolve
250 | - IP-CIDR,221.6.4.148/32,Hijacking,no-resolve
251 | # > ChinaMobile
252 | - IP-CIDR,114.247.28.96/32,Hijacking,no-resolve
253 | - IP-CIDR,221.179.131.72/32,Hijacking,no-resolve
254 | - IP-CIDR,221.179.140.145/32,Hijacking,no-resolve
255 | # > Dr.Peng
256 | # - IP-CIDR,10.72.25.0/24,Hijacking,no-resolve
257 | - IP-CIDR,115.182.16.79/32,Hijacking,no-resolve
258 | - IP-CIDR,118.144.88.126/32,Hijacking,no-resolve
259 | - IP-CIDR,118.144.88.215/32,Hijacking,no-resolve
260 | - IP-CIDR,118.144.88.216/32,Hijacking,no-resolve
261 | - IP-CIDR,120.76.189.132/32,Hijacking,no-resolve
262 | - IP-CIDR,124.14.21.147/32,Hijacking,no-resolve
263 | - IP-CIDR,124.14.21.151/32,Hijacking,no-resolve
264 | - IP-CIDR,180.166.52.24/32,Hijacking,no-resolve
265 | - IP-CIDR,211.161.101.106/32,Hijacking,no-resolve
266 | - IP-CIDR,220.115.251.25/32,Hijacking,no-resolve
267 | - IP-CIDR,222.73.156.235/32,Hijacking,no-resolve
268 |
269 | # Malware 恶意网站
270 | # > 快压
271 | # https://zhuanlan.zhihu.com/p/39534279
272 | - DOMAIN-SUFFIX,kuaizip.com,Hijacking
273 | # > MacKeeper
274 | # https://www.lizhi.io/blog/40002904
275 | - DOMAIN-SUFFIX,mackeeper.com,Hijacking
276 | - DOMAIN-SUFFIX,zryydi.com,Hijacking
277 | # > Adobe Flash China Special Edition
278 | # https://www.zhihu.com/question/281163698/answer/441388130
279 | - DOMAIN-SUFFIX,flash.cn,Hijacking
280 | - DOMAIN,geo2.adobe.com,Hijacking
281 | # > C&J Marketing 思杰马克丁软件
282 | # https://www.zhihu.com/question/46746200
283 | - DOMAIN-SUFFIX,4009997658.com,Hijacking
284 | - DOMAIN-SUFFIX,abbyychina.com,Hijacking
285 | - DOMAIN-SUFFIX,bartender.cc,Hijacking
286 | - DOMAIN-SUFFIX,betterzip.net,Hijacking
287 | - DOMAIN-SUFFIX,betterzipcn.com,Hijacking
288 | - DOMAIN-SUFFIX,beyondcompare.cc,Hijacking
289 | - DOMAIN-SUFFIX,bingdianhuanyuan.cn,Hijacking
290 | - DOMAIN-SUFFIX,chemdraw.com.cn,Hijacking
291 | - DOMAIN-SUFFIX,cjmakeding.com,Hijacking
292 | - DOMAIN-SUFFIX,cjmkt.com,Hijacking
293 | - DOMAIN-SUFFIX,codesoftchina.com,Hijacking
294 | - DOMAIN-SUFFIX,coreldrawchina.com,Hijacking
295 | - DOMAIN-SUFFIX,crossoverchina.com,Hijacking
296 | - DOMAIN-SUFFIX,dongmansoft.com,Hijacking
297 | - DOMAIN-SUFFIX,earmasterchina.cn,Hijacking
298 | - DOMAIN-SUFFIX,easyrecoverychina.com,Hijacking
299 | - DOMAIN-SUFFIX,ediuschina.com,Hijacking
300 | - DOMAIN-SUFFIX,flstudiochina.com,Hijacking
301 | - DOMAIN-SUFFIX,formysql.com,Hijacking
302 | - DOMAIN-SUFFIX,guitarpro.cc,Hijacking
303 | - DOMAIN-SUFFIX,huishenghuiying.com.cn,Hijacking
304 | - DOMAIN-SUFFIX,hypersnap.net,Hijacking
305 | - DOMAIN-SUFFIX,iconworkshop.cn,Hijacking
306 | - DOMAIN-SUFFIX,imindmap.cc,Hijacking
307 | - DOMAIN-SUFFIX,jihehuaban.com.cn,Hijacking
308 | - DOMAIN-SUFFIX,keyshot.cc,Hijacking
309 | - DOMAIN-SUFFIX,kingdeecn.cn,Hijacking
310 | - DOMAIN-SUFFIX,logoshejishi.com,Hijacking
311 | - DOMAIN-SUFFIX,luping.net.cn,Hijacking
312 | - DOMAIN-SUFFIX,mairuan.cn,Hijacking
313 | - DOMAIN-SUFFIX,mairuan.com,Hijacking
314 | - DOMAIN-SUFFIX,mairuan.com.cn,Hijacking
315 | - DOMAIN-SUFFIX,mairuan.net,Hijacking
316 | - DOMAIN-SUFFIX,mairuanwang.com,Hijacking
317 | - DOMAIN-SUFFIX,makeding.com,Hijacking
318 | - DOMAIN-SUFFIX,mathtype.cn,Hijacking
319 | - DOMAIN-SUFFIX,mindmanager.cc,Hijacking
320 | - DOMAIN-SUFFIX,mindmanager.cn,Hijacking
321 | - DOMAIN-SUFFIX,mindmapper.cc,Hijacking
322 | - DOMAIN-SUFFIX,mycleanmymac.com,Hijacking
323 | - DOMAIN-SUFFIX,nicelabel.cc,Hijacking
324 | - DOMAIN-SUFFIX,ntfsformac.cc,Hijacking
325 | - DOMAIN-SUFFIX,ntfsformac.cn,Hijacking
326 | - DOMAIN-SUFFIX,overturechina.com,Hijacking
327 | - DOMAIN-SUFFIX,passwordrecovery.cn,Hijacking
328 | - DOMAIN-SUFFIX,pdfexpert.cc,Hijacking
329 | - DOMAIN-SUFFIX,photozoomchina.com,Hijacking
330 | - DOMAIN-SUFFIX,shankejingling.com,Hijacking
331 | - DOMAIN-SUFFIX,ultraiso.net,Hijacking
332 | - DOMAIN-SUFFIX,vegaschina.cn,Hijacking
333 | - DOMAIN-SUFFIX,xmindchina.net,Hijacking
334 | - DOMAIN-SUFFIX,xshellcn.com,Hijacking
335 | - DOMAIN-SUFFIX,yihuifu.cn,Hijacking
336 | - DOMAIN-SUFFIX,yuanchengxiezuo.com,Hijacking
337 | - DOMAIN-SUFFIX,zbrushcn.com,Hijacking
338 | - DOMAIN-SUFFIX,zhzzx.com,Hijacking
339 |
340 | # Global Area Network
341 | # (GlobalMedia)
342 | # (Music)
343 | # > Deezer
344 | # USER-AGENT,Deezer*,GlobalMedia
345 | - DOMAIN-SUFFIX,deezer.com,GlobalMedia
346 | - DOMAIN-SUFFIX,dzcdn.net,GlobalMedia
347 | # > KKBOX
348 | - DOMAIN-SUFFIX,kkbox.com,GlobalMedia
349 | - DOMAIN-SUFFIX,kkbox.com.tw,GlobalMedia
350 | - DOMAIN-SUFFIX,kfs.io,GlobalMedia
351 | # > JOOX
352 | # USER-AGENT,WeMusic*,GlobalMedia
353 | # USER-AGENT,JOOX*,GlobalMedia
354 | - DOMAIN-SUFFIX,joox.com,GlobalMedia
355 | # > Pandora
356 | # USER-AGENT,Pandora*,GlobalMedia
357 | - DOMAIN-SUFFIX,pandora.com,GlobalMedia
358 | # > SoundCloud
359 | # USER-AGENT,SoundCloud*,GlobalMedia
360 | - DOMAIN-SUFFIX,p-cdn.us,GlobalMedia
361 | - DOMAIN-SUFFIX,sndcdn.com,GlobalMedia
362 | - DOMAIN-SUFFIX,soundcloud.com,GlobalMedia
363 | # > Spotify
364 | # USER-AGENT,Spotify*,GlobalMedia
365 | - DOMAIN-SUFFIX,pscdn.co,GlobalMedia
366 | - DOMAIN-SUFFIX,scdn.co,GlobalMedia
367 | - DOMAIN-SUFFIX,spotify.com,GlobalMedia
368 | - DOMAIN-SUFFIX,spoti.fi,GlobalMedia
369 | - DOMAIN-KEYWORD,spotify.com,GlobalMedia
370 | - DOMAIN-KEYWORD,-spotify-com,GlobalMedia
371 | # > TIDAL
372 | # USER-AGENT,TIDAL*,GlobalMedia
373 | - DOMAIN-SUFFIX,tidal.com,GlobalMedia
374 | # > YouTubeMusic
375 | # USER-AGENT,com.google.ios.youtubemusic*,GlobalMedia
376 | # USER-AGENT,YouTubeMusic*,GlobalMedia
377 | # (Video)
378 | # > All4
379 | # USER-AGENT,All4*,GlobalMedia
380 | - DOMAIN-SUFFIX,c4assets.com,GlobalMedia
381 | - DOMAIN-SUFFIX,channel4.com,GlobalMedia
382 | # > AbemaTV
383 | # USER-AGENT,AbemaTV*,GlobalMedia
384 | - DOMAIN-SUFFIX,abema.io,GlobalMedia
385 | - DOMAIN-SUFFIX,ameba.jp,GlobalMedia
386 | - DOMAIN-SUFFIX,abema.tv,GlobalMedia
387 | - DOMAIN-SUFFIX,hayabusa.io,GlobalMedia
388 | - DOMAIN,abematv.akamaized.net,GlobalMedia
389 | - DOMAIN,ds-linear-abematv.akamaized.net,GlobalMedia
390 | - DOMAIN,ds-vod-abematv.akamaized.net,GlobalMedia
391 | - DOMAIN,linear-abematv.akamaized.net,GlobalMedia
392 | # > Amazon Prime Video
393 | # USER-AGENT,InstantVideo.US*,GlobalMedia
394 | # USER-AGENT,Prime%20Video*,GlobalMedia
395 | - DOMAIN-SUFFIX,aiv-cdn.net,GlobalMedia
396 | - DOMAIN-SUFFIX,aiv-delivery.net,GlobalMedia
397 | - DOMAIN-SUFFIX,amazonvideo.com,GlobalMedia
398 | - DOMAIN-SUFFIX,primevideo.com,GlobalMedia
399 | - DOMAIN,avodmp4s3ww-a.akamaihd.net,GlobalMedia
400 | - DOMAIN,d25xi40x97liuc.cloudfront.net,GlobalMedia
401 | - DOMAIN,dmqdd6hw24ucf.cloudfront.net,GlobalMedia
402 | - DOMAIN,d22qjgkvxw22r6.cloudfront.net,GlobalMedia
403 | - DOMAIN,d1v5ir2lpwr8os.cloudfront.net,GlobalMedia
404 | - DOMAIN-KEYWORD,avoddashs,GlobalMedia
405 | # > Bahamut
406 | # USER-AGENT,Anime*,GlobalMedia
407 | - DOMAIN-SUFFIX,bahamut.com.tw,GlobalMedia
408 | - DOMAIN-SUFFIX,gamer.com.tw,GlobalMedia
409 | - DOMAIN,gamer-cds.cdn.hinet.net,GlobalMedia
410 | - DOMAIN,gamer2-cds.cdn.hinet.net,GlobalMedia
411 | # > BBC iPlayer
412 | # USER-AGENT,BBCiPlayer*,GlobalMedia
413 | - DOMAIN-SUFFIX,bbc.co.uk,GlobalMedia
414 | - DOMAIN-SUFFIX,bbci.co.uk,GlobalMedia
415 | - DOMAIN-KEYWORD,bbcfmt,GlobalMedia
416 | - DOMAIN-KEYWORD,uk-live,GlobalMedia
417 | # > DAZN
418 | # USER-AGENT,DAZN*,GlobalMedia
419 | - DOMAIN-SUFFIX,dazn.com,GlobalMedia
420 | - DOMAIN-SUFFIX,dazn-api.com,GlobalMedia
421 | - DOMAIN,d151l6v8er5bdm.cloudfront.net,GlobalMedia
422 | - DOMAIN-KEYWORD,voddazn,GlobalMedia
423 | # > Disney+
424 | # USER-AGENT,Disney+*,GlobalMedia
425 | - DOMAIN-SUFFIX,bamgrid.com,GlobalMedia
426 | - DOMAIN-SUFFIX,disney-plus.net,GlobalMedia
427 | - DOMAIN-SUFFIX,disneyplus.com,GlobalMedia
428 | - DOMAIN-SUFFIX,dssott.com,GlobalMedia
429 | - DOMAIN,cdn.registerdisney.go.com,GlobalMedia
430 | # > encoreTVB
431 | # USER-AGENT,encoreTVB*,GlobalMedia
432 | - DOMAIN-SUFFIX,encoretvb.com,GlobalMedia
433 | - DOMAIN,edge.api.brightcove.com,GlobalMedia
434 | - DOMAIN,bcbolt446c5271-a.akamaihd.net,GlobalMedia
435 | # > FOX NOW
436 | # USER-AGENT,FOX%20NOW*,GlobalMedia
437 | - DOMAIN-SUFFIX,fox.com,GlobalMedia
438 | - DOMAIN-SUFFIX,foxdcg.com,GlobalMedia
439 | - DOMAIN-SUFFIX,theplatform.com,GlobalMedia
440 | - DOMAIN-SUFFIX,uplynk.com,GlobalMedia
441 | # > HBO NOW
442 | # USER-AGENT,HBO%20NOW*,GlobalMedia
443 | - DOMAIN-SUFFIX,hbo.com,GlobalMedia
444 | - DOMAIN-SUFFIX,hbogo.com,GlobalMedia
445 | - DOMAIN-SUFFIX,hbonow.com,GlobalMedia
446 | # > HBO GO HKG
447 | # USER-AGENT,HBO%20GO%20PROD%20HKG*,GlobalMedia
448 | - DOMAIN-SUFFIX,hbogoasia.com,GlobalMedia
449 | - DOMAIN-SUFFIX,hbogoasia.hk,GlobalMedia
450 | - DOMAIN,bcbolthboa-a.akamaihd.net,GlobalMedia
451 | - DOMAIN,players.brightcove.net,GlobalMedia
452 | - DOMAIN,s3-ap-southeast-1.amazonaws.com,GlobalMedia
453 | - DOMAIN,dai3fd1oh325y.cloudfront.net,GlobalMedia
454 | - DOMAIN,44wilhpljf.execute-api.ap-southeast-1.amazonaws.com,GlobalMedia
455 | - DOMAIN,hboasia1-i.akamaihd.net,GlobalMedia
456 | - DOMAIN,hboasia2-i.akamaihd.net,GlobalMedia
457 | - DOMAIN,hboasia3-i.akamaihd.net,GlobalMedia
458 | - DOMAIN,hboasia4-i.akamaihd.net,GlobalMedia
459 | - DOMAIN,hboasia5-i.akamaihd.net,GlobalMedia
460 | - DOMAIN,cf-images.ap-southeast-1.prod.boltdns.net,GlobalMedia
461 | # > 华文电视
462 | # USER-AGENT,HWTVMobile*,GlobalMedia
463 | - DOMAIN-SUFFIX,5itv.tv,GlobalMedia
464 | - DOMAIN-SUFFIX,ocnttv.com,GlobalMedia
465 | # > Hulu
466 | - DOMAIN-SUFFIX,hulu.com,GlobalMedia
467 | - DOMAIN-SUFFIX,huluim.com,GlobalMedia
468 | - DOMAIN-SUFFIX,hulustream.com,GlobalMedia
469 | # > Hulu(フールー)
470 | - DOMAIN-SUFFIX,happyon.jp,GlobalMedia
471 | - DOMAIN-SUFFIX,hulu.jp,GlobalMedia
472 | # > ITV
473 | # USER-AGENT,ITV_Player*,GlobalMedia
474 | - DOMAIN-SUFFIX,itv.com,GlobalMedia
475 | - DOMAIN-SUFFIX,itvstatic.com,GlobalMedia
476 | - DOMAIN,itvpnpmobile-a.akamaihd.net,GlobalMedia
477 | # > KKTV
478 | # USER-AGENT,KKTV*,GlobalMedia
479 | # USER-AGENT,com.kktv.ios.kktv*,GlobalMedia
480 | - DOMAIN-SUFFIX,kktv.com.tw,GlobalMedia
481 | - DOMAIN-SUFFIX,kktv.me,GlobalMedia
482 | - DOMAIN,kktv-theater.kk.stream,GlobalMedia
483 | # > Line TV
484 | # USER-AGENT,LINE%20TV*,GlobalMedia
485 | - DOMAIN-SUFFIX,linetv.tw,GlobalMedia
486 | - DOMAIN,d3c7rimkq79yfu.cloudfront.net,GlobalMedia
487 | # > LiTV
488 | - DOMAIN-SUFFIX,litv.tv,GlobalMedia
489 | - DOMAIN,litvfreemobile-hichannel.cdn.hinet.net,GlobalMedia
490 | # > My5
491 | # USER-AGENT,My5*,GlobalMedia
492 | - DOMAIN-SUFFIX,channel5.com,GlobalMedia
493 | - DOMAIN-SUFFIX,my5.tv,GlobalMedia
494 | - DOMAIN,d349g9zuie06uo.cloudfront.net,GlobalMedia
495 | # > myTV SUPER
496 | # USER-AGENT,mytv*,GlobalMedia
497 | - DOMAIN-SUFFIX,mytvsuper.com,GlobalMedia
498 | - DOMAIN-SUFFIX,tvb.com,GlobalMedia
499 | # > Netflix
500 | # USER-AGENT,Argo*,GlobalMedia
501 | - DOMAIN-SUFFIX,netflix.com,GlobalMedia
502 | - DOMAIN-SUFFIX,netflix.net,GlobalMedia
503 | - DOMAIN-SUFFIX,nflxext.com,GlobalMedia
504 | - DOMAIN-SUFFIX,nflximg.com,GlobalMedia
505 | - DOMAIN-SUFFIX,nflximg.net,GlobalMedia
506 | - DOMAIN-SUFFIX,nflxso.net,GlobalMedia
507 | - DOMAIN-SUFFIX,nflxvideo.net,GlobalMedia
508 | - DOMAIN-SUFFIX,netflixdnstest0.com,GlobalMedia
509 | - DOMAIN-SUFFIX,netflixdnstest1.com,GlobalMedia
510 | - DOMAIN-SUFFIX,netflixdnstest2.com,GlobalMedia
511 | - DOMAIN-SUFFIX,netflixdnstest3.com,GlobalMedia
512 | - DOMAIN-SUFFIX,netflixdnstest4.com,GlobalMedia
513 | - DOMAIN-SUFFIX,netflixdnstest5.com,GlobalMedia
514 | - DOMAIN-SUFFIX,netflixdnstest6.com,GlobalMedia
515 | - DOMAIN-SUFFIX,netflixdnstest7.com,GlobalMedia
516 | - DOMAIN-SUFFIX,netflixdnstest8.com,GlobalMedia
517 | - DOMAIN-SUFFIX,netflixdnstest9.com,GlobalMedia
518 | - IP-CIDR,23.246.0.0/18,GlobalMedia,no-resolve
519 | - IP-CIDR,37.77.184.0/21,GlobalMedia,no-resolve
520 | - IP-CIDR,45.57.0.0/17,GlobalMedia,no-resolve
521 | - IP-CIDR,64.120.128.0/17,GlobalMedia,no-resolve
522 | - IP-CIDR,66.197.128.0/17,GlobalMedia,no-resolve
523 | - IP-CIDR,108.175.32.0/20,GlobalMedia,no-resolve
524 | - IP-CIDR,192.173.64.0/18,GlobalMedia,no-resolve
525 | - IP-CIDR,198.38.96.0/19,GlobalMedia,no-resolve
526 | - IP-CIDR,198.45.48.0/20,GlobalMedia,no-resolve
527 | # > niconico
528 | # USER-AGENT,Niconico*,GlobalMedia
529 | - DOMAIN-SUFFIX,dmc.nico,GlobalMedia
530 | - DOMAIN-SUFFIX,nicovideo.jp,GlobalMedia
531 | - DOMAIN-SUFFIX,nimg.jp,GlobalMedia
532 | - DOMAIN-SUFFIX,socdm.com,GlobalMedia
533 | # > PBS
534 | # USER-AGENT,PBS*,GlobalMedia
535 | - DOMAIN-SUFFIX,pbs.org,GlobalMedia
536 | # > Pornhub
537 | - DOMAIN-SUFFIX,phncdn.com,GlobalMedia
538 | - DOMAIN-SUFFIX,pornhub.com,GlobalMedia
539 | - DOMAIN-SUFFIX,pornhubpremium.com,GlobalMedia
540 | # > 台湾好
541 | # USER-AGENT,TaiwanGood*,GlobalMedia
542 | - DOMAIN-SUFFIX,skyking.com.tw,GlobalMedia
543 | - DOMAIN,hamifans.emome.net,GlobalMedia
544 | # > Twitch
545 | - DOMAIN-SUFFIX,twitch.tv,GlobalMedia
546 | - DOMAIN-SUFFIX,twitchcdn.net,GlobalMedia
547 | - DOMAIN-SUFFIX,ttvnw.net,GlobalMedia
548 | - DOMAIN-SUFFIX,jtvnw.net,GlobalMedia
549 | # > ViuTV
550 | # USER-AGENT,Viu*,GlobalMedia
551 | # USER-AGENT,ViuTV*,GlobalMedia
552 | - DOMAIN-SUFFIX,viu.com,GlobalMedia
553 | - DOMAIN-SUFFIX,viu.tv,GlobalMedia
554 | - DOMAIN,api.viu.now.com,GlobalMedia
555 | - DOMAIN,d1k2us671qcoau.cloudfront.net,GlobalMedia
556 | - DOMAIN,d2anahhhmp1ffz.cloudfront.net,GlobalMedia
557 | - DOMAIN,dfp6rglgjqszk.cloudfront.net,GlobalMedia
558 | # > YouTube
559 | # USER-AGENT,com.google.ios.youtube*,GlobalMedia
560 | # USER-AGENT,YouTube*,GlobalMedia
561 | - DOMAIN-SUFFIX,googlevideo.com,GlobalMedia
562 | - DOMAIN-SUFFIX,youtube.com,GlobalMedia
563 | - DOMAIN,youtubei.googleapis.com,GlobalMedia
564 |
565 | # (HKMTMedia)
566 | # > 愛奇藝台灣站
567 | - DOMAIN-SUFFIX,iqiyi.com,HKMTMedia
568 | - DOMAIN-SUFFIX,71.am,HKMTMedia
569 | # > bilibili
570 | - DOMAIN-SUFFIX,bilibili.com,HKMTMedia
571 | - DOMAIN,upos-hz-mirrorakam.akamaized.net,HKMTMedia
572 |
573 | # (DNS Cache Pollution Protection)
574 | # > Google
575 | - DOMAIN-SUFFIX,ampproject.org,PROXY
576 | - DOMAIN-SUFFIX,appspot.com,PROXY
577 | - DOMAIN-SUFFIX,blogger.com,PROXY
578 | - DOMAIN-SUFFIX,getoutline.org,PROXY
579 | - DOMAIN-SUFFIX,gvt0.com,PROXY
580 | - DOMAIN-SUFFIX,gvt1.com,PROXY
581 | - DOMAIN-SUFFIX,gvt3.com,PROXY
582 | - DOMAIN-SUFFIX,xn--ngstr-lra8j.com,PROXY
583 | - DOMAIN-KEYWORD,google,PROXY
584 | - DOMAIN-KEYWORD,blogspot,PROXY
585 | # > Microsoft
586 | - DOMAIN-SUFFIX,onedrive.live.com,PROXY
587 | - DOMAIN-SUFFIX,xboxlive.com,PROXY
588 | # > Facebook
589 | - DOMAIN-SUFFIX,cdninstagram.com,PROXY
590 | - DOMAIN-SUFFIX,fb.com,PROXY
591 | - DOMAIN-SUFFIX,fb.me,PROXY
592 | - DOMAIN-SUFFIX,fbaddins.com,PROXY
593 | - DOMAIN-SUFFIX,fbcdn.net,PROXY
594 | - DOMAIN-SUFFIX,fbsbx.com,PROXY
595 | - DOMAIN-SUFFIX,fbworkmail.com,PROXY
596 | - DOMAIN-SUFFIX,instagram.com,PROXY
597 | - DOMAIN-SUFFIX,m.me,PROXY
598 | - DOMAIN-SUFFIX,messenger.com,PROXY
599 | - DOMAIN-SUFFIX,oculus.com,PROXY
600 | - DOMAIN-SUFFIX,oculuscdn.com,PROXY
601 | - DOMAIN-SUFFIX,rocksdb.org,PROXY
602 | - DOMAIN-SUFFIX,whatsapp.com,PROXY
603 | - DOMAIN-SUFFIX,whatsapp.net,PROXY
604 | - DOMAIN-KEYWORD,facebook,PROXY
605 | - IP-CIDR,3.123.36.126/32,PROXY,no-resolve
606 | - IP-CIDR,35.157.215.84/32,PROXY,no-resolve
607 | - IP-CIDR,35.157.217.255/32,PROXY,no-resolve
608 | - IP-CIDR,52.58.209.134/32,PROXY,no-resolve
609 | - IP-CIDR,54.93.124.31/32,PROXY,no-resolve
610 | - IP-CIDR,54.162.243.80/32,PROXY,no-resolve
611 | - IP-CIDR,54.173.34.141/32,PROXY,no-resolve
612 | - IP-CIDR,54.235.23.242/32,PROXY,no-resolve
613 | - IP-CIDR,169.45.248.118/32,PROXY,no-resolve
614 | # > Twitter
615 | - DOMAIN-SUFFIX,pscp.tv,PROXY
616 | - DOMAIN-SUFFIX,periscope.tv,PROXY
617 | - DOMAIN-SUFFIX,t.co,PROXY
618 | - DOMAIN-SUFFIX,twimg.co,PROXY
619 | - DOMAIN-SUFFIX,twimg.com,PROXY
620 | - DOMAIN-SUFFIX,twitpic.com,PROXY
621 | - DOMAIN-SUFFIX,vine.co,PROXY
622 | - DOMAIN-KEYWORD,twitter,PROXY
623 | # > Telegram
624 | - DOMAIN-SUFFIX,t.me,PROXY
625 | - DOMAIN-SUFFIX,tdesktop.com,PROXY
626 | - DOMAIN-SUFFIX,telegra.ph,PROXY
627 | - DOMAIN-SUFFIX,telegram.me,PROXY
628 | - DOMAIN-SUFFIX,telegram.org,PROXY
629 | - IP-CIDR,91.108.4.0/22,PROXY,no-resolve
630 | - IP-CIDR,91.108.8.0/22,PROXY,no-resolve
631 | - IP-CIDR,91.108.12.0/22,PROXY,no-resolve
632 | - IP-CIDR,91.108.16.0/22,PROXY,no-resolve
633 | - IP-CIDR,91.108.56.0/22,PROXY,no-resolve
634 | - IP-CIDR,149.154.160.0/20,PROXY,no-resolve
635 | # > Line
636 | - DOMAIN-SUFFIX,line.me,PROXY
637 | - DOMAIN-SUFFIX,line-apps.com,PROXY
638 | - DOMAIN-SUFFIX,line-scdn.net,PROXY
639 | - DOMAIN-SUFFIX,naver.jp,PROXY
640 | - IP-CIDR,103.2.30.0/23,PROXY,no-resolve
641 | - IP-CIDR,125.209.208.0/20,PROXY,no-resolve
642 | - IP-CIDR,147.92.128.0/17,PROXY,no-resolve
643 | - IP-CIDR,203.104.144.0/21,PROXY,no-resolve
644 | # > Other
645 | - DOMAIN-SUFFIX,4shared.com,PROXY
646 | - DOMAIN-SUFFIX,520cc.cc,PROXY
647 | - DOMAIN-SUFFIX,881903.com,PROXY
648 | - DOMAIN-SUFFIX,9cache.com,PROXY
649 | - DOMAIN-SUFFIX,9gag.com,PROXY
650 | - DOMAIN-SUFFIX,abc.com,PROXY
651 | - DOMAIN-SUFFIX,abc.net.au,PROXY
652 | - DOMAIN-SUFFIX,abebooks.com,PROXY
653 | - DOMAIN-SUFFIX,amazon.co.jp,PROXY
654 | - DOMAIN-SUFFIX,apigee.com,PROXY
655 | - DOMAIN-SUFFIX,apk-dl.com,PROXY
656 | - DOMAIN-SUFFIX,apkfind.com,PROXY
657 | - DOMAIN-SUFFIX,apkmirror.com,PROXY
658 | - DOMAIN-SUFFIX,apkmonk.com,PROXY
659 | - DOMAIN-SUFFIX,apkpure.com,PROXY
660 | - DOMAIN-SUFFIX,aptoide.com,PROXY
661 | - DOMAIN-SUFFIX,archive.is,PROXY
662 | - DOMAIN-SUFFIX,archive.org,PROXY
663 | - DOMAIN-SUFFIX,arte.tv,PROXY
664 | - DOMAIN-SUFFIX,artstation.com,PROXY
665 | - DOMAIN-SUFFIX,arukas.io,PROXY
666 | - DOMAIN-SUFFIX,ask.com,PROXY
667 | - DOMAIN-SUFFIX,avg.com,PROXY
668 | - DOMAIN-SUFFIX,avgle.com,PROXY
669 | - DOMAIN-SUFFIX,badoo.com,PROXY
670 | - DOMAIN-SUFFIX,bandwagonhost.com,PROXY
671 | - DOMAIN-SUFFIX,bbc.com,PROXY
672 | - DOMAIN-SUFFIX,behance.net,PROXY
673 | - DOMAIN-SUFFIX,bibox.com,PROXY
674 | - DOMAIN-SUFFIX,biggo.com.tw,PROXY
675 | - DOMAIN-SUFFIX,binance.com,PROXY
676 | - DOMAIN-SUFFIX,bitcointalk.org,PROXY
677 | - DOMAIN-SUFFIX,bitfinex.com,PROXY
678 | - DOMAIN-SUFFIX,bitmex.com,PROXY
679 | - DOMAIN-SUFFIX,bit-z.com,PROXY
680 | - DOMAIN-SUFFIX,bloglovin.com,PROXY
681 | - DOMAIN-SUFFIX,bloomberg.cn,PROXY
682 | - DOMAIN-SUFFIX,bloomberg.com,PROXY
683 | - DOMAIN-SUFFIX,blubrry.com,PROXY
684 | - DOMAIN-SUFFIX,book.com.tw,PROXY
685 | - DOMAIN-SUFFIX,booklive.jp,PROXY
686 | - DOMAIN-SUFFIX,books.com.tw,PROXY
687 | - DOMAIN-SUFFIX,boslife.net,PROXY
688 | - DOMAIN-SUFFIX,box.com,PROXY
689 | - DOMAIN-SUFFIX,businessinsider.com,PROXY
690 | - DOMAIN-SUFFIX,bwh1.net,PROXY
691 | - DOMAIN-SUFFIX,castbox.fm,PROXY
692 | - DOMAIN-SUFFIX,cbc.ca,PROXY
693 | - DOMAIN-SUFFIX,cdw.com,PROXY
694 | - DOMAIN-SUFFIX,change.org,PROXY
695 | - DOMAIN-SUFFIX,channelnewsasia.com,PROXY
696 | - DOMAIN-SUFFIX,ck101.com,PROXY
697 | - DOMAIN-SUFFIX,clarionproject.org,PROXY
698 | - DOMAIN-SUFFIX,clyp.it,PROXY
699 | - DOMAIN-SUFFIX,cna.com.tw,PROXY
700 | - DOMAIN-SUFFIX,comparitech.com,PROXY
701 | - DOMAIN-SUFFIX,conoha.jp,PROXY
702 | - DOMAIN-SUFFIX,crucial.com,PROXY
703 | - DOMAIN-SUFFIX,cts.com.tw,PROXY
704 | - DOMAIN-SUFFIX,cw.com.tw,PROXY
705 | - DOMAIN-SUFFIX,cyberctm.com,PROXY
706 | - DOMAIN-SUFFIX,dailymotion.com,PROXY
707 | - DOMAIN-SUFFIX,dailyview.tw,PROXY
708 | - DOMAIN-SUFFIX,daum.net,PROXY
709 | - DOMAIN-SUFFIX,daumcdn.net,PROXY
710 | - DOMAIN-SUFFIX,dcard.tw,PROXY
711 | - DOMAIN-SUFFIX,deepdiscount.com,PROXY
712 | - DOMAIN-SUFFIX,depositphotos.com,PROXY
713 | - DOMAIN-SUFFIX,deviantart.com,PROXY
714 | - DOMAIN-SUFFIX,disconnect.me,PROXY
715 | - DOMAIN-SUFFIX,discordapp.com,PROXY
716 | - DOMAIN-SUFFIX,discordapp.net,PROXY
717 | - DOMAIN-SUFFIX,disqus.com,PROXY
718 | - DOMAIN-SUFFIX,dlercloud.com,PROXY
719 | - DOMAIN-SUFFIX,dns2go.com,PROXY
720 | - DOMAIN-SUFFIX,dowjones.com,PROXY
721 | - DOMAIN-SUFFIX,dropbox.com,PROXY
722 | - DOMAIN-SUFFIX,dropboxusercontent.com,PROXY
723 | - DOMAIN-SUFFIX,duckduckgo.com,PROXY
724 | - DOMAIN-SUFFIX,dw.com,PROXY
725 | - DOMAIN-SUFFIX,dynu.com,PROXY
726 | - DOMAIN-SUFFIX,earthcam.com,PROXY
727 | - DOMAIN-SUFFIX,ebookservice.tw,PROXY
728 | - DOMAIN-SUFFIX,economist.com,PROXY
729 | - DOMAIN-SUFFIX,edgecastcdn.net,PROXY
730 | - DOMAIN-SUFFIX,edu,PROXY
731 | - DOMAIN-SUFFIX,elpais.com,PROXY
732 | - DOMAIN-SUFFIX,enanyang.my,PROXY
733 | - DOMAIN-SUFFIX,encyclopedia.com,PROXY
734 | - DOMAIN-SUFFIX,esoir.be,PROXY
735 | - DOMAIN-SUFFIX,etherscan.io,PROXY
736 | - DOMAIN-SUFFIX,euronews.com,PROXY
737 | - DOMAIN-SUFFIX,evozi.com,PROXY
738 | - DOMAIN-SUFFIX,feedly.com,PROXY
739 | - DOMAIN-SUFFIX,firech.at,PROXY
740 | - DOMAIN-SUFFIX,flickr.com,PROXY
741 | - DOMAIN-SUFFIX,flitto.com,PROXY
742 | - DOMAIN-SUFFIX,foreignpolicy.com,PROXY
743 | - DOMAIN-SUFFIX,freebrowser.org,PROXY
744 | - DOMAIN-SUFFIX,freewechat.com,PROXY
745 | - DOMAIN-SUFFIX,freeweibo.com,PROXY
746 | - DOMAIN-SUFFIX,friday.tw,PROXY
747 | - DOMAIN-SUFFIX,ftchinese.com,PROXY
748 | - DOMAIN-SUFFIX,ftimg.net,PROXY
749 | - DOMAIN-SUFFIX,gate.io,PROXY
750 | - DOMAIN-SUFFIX,getlantern.org,PROXY
751 | - DOMAIN-SUFFIX,getsync.com,PROXY
752 | - DOMAIN-SUFFIX,globalvoices.org,PROXY
753 | - DOMAIN-SUFFIX,goo.ne.jp,PROXY
754 | - DOMAIN-SUFFIX,goodreads.com,PROXY
755 | - DOMAIN-SUFFIX,gov,PROXY
756 | - DOMAIN-SUFFIX,gov.tw,PROXY
757 | - DOMAIN-SUFFIX,greatfire.org,PROXY
758 | - DOMAIN-SUFFIX,gumroad.com,PROXY
759 | - DOMAIN-SUFFIX,hbg.com,PROXY
760 | - DOMAIN-SUFFIX,heroku.com,PROXY
761 | - DOMAIN-SUFFIX,hightail.com,PROXY
762 | - DOMAIN-SUFFIX,hk01.com,PROXY
763 | - DOMAIN-SUFFIX,hkbf.org,PROXY
764 | - DOMAIN-SUFFIX,hkbookcity.com,PROXY
765 | - DOMAIN-SUFFIX,hkej.com,PROXY
766 | - DOMAIN-SUFFIX,hket.com,PROXY
767 | - DOMAIN-SUFFIX,hkgolden.com,PROXY
768 | - DOMAIN-SUFFIX,hootsuite.com,PROXY
769 | - DOMAIN-SUFFIX,hudson.org,PROXY
770 | - DOMAIN-SUFFIX,hyread.com.tw,PROXY
771 | - DOMAIN-SUFFIX,ibtimes.com,PROXY
772 | - DOMAIN-SUFFIX,i-cable.com,PROXY
773 | - DOMAIN-SUFFIX,icij.org,PROXY
774 | - DOMAIN-SUFFIX,icoco.com,PROXY
775 | - DOMAIN-SUFFIX,imgur.com,PROXY
776 | - DOMAIN-SUFFIX,initiummall.com,PROXY
777 | - DOMAIN-SUFFIX,insecam.org,PROXY
778 | - DOMAIN-SUFFIX,ipfs.io,PROXY
779 | - DOMAIN-SUFFIX,issuu.com,PROXY
780 | - DOMAIN-SUFFIX,istockphoto.com,PROXY
781 | - DOMAIN-SUFFIX,japantimes.co.jp,PROXY
782 | - DOMAIN-SUFFIX,jiji.com,PROXY
783 | - DOMAIN-SUFFIX,jinx.com,PROXY
784 | - DOMAIN-SUFFIX,jkforum.net,PROXY
785 | - DOMAIN-SUFFIX,joinmastodon.org,PROXY
786 | - DOMAIN-SUFFIX,justmysocks.net,PROXY
787 | - DOMAIN-SUFFIX,justpaste.it,PROXY
788 | - DOMAIN-SUFFIX,kakao.com,PROXY
789 | - DOMAIN-SUFFIX,kakaocorp.com,PROXY
790 | - DOMAIN-SUFFIX,kik.com,PROXY
791 | - DOMAIN-SUFFIX,kobo.com,PROXY
792 | - DOMAIN-SUFFIX,kobobooks.com,PROXY
793 | - DOMAIN-SUFFIX,kodingen.com,PROXY
794 | - DOMAIN-SUFFIX,lemonde.fr,PROXY
795 | - DOMAIN-SUFFIX,lepoint.fr,PROXY
796 | - DOMAIN-SUFFIX,lihkg.com,PROXY
797 | - DOMAIN-SUFFIX,listennotes.com,PROXY
798 | - DOMAIN-SUFFIX,livestream.com,PROXY
799 | - DOMAIN-SUFFIX,logmein.com,PROXY
800 | - DOMAIN-SUFFIX,mail.ru,PROXY
801 | - DOMAIN-SUFFIX,mailchimp.com,PROXY
802 | - DOMAIN-SUFFIX,marc.info,PROXY
803 | - DOMAIN-SUFFIX,matters.news,PROXY
804 | - DOMAIN-SUFFIX,maying.co,PROXY
805 | - DOMAIN-SUFFIX,medium.com,PROXY
806 | - DOMAIN-SUFFIX,mega.nz,PROXY
807 | - DOMAIN-SUFFIX,mil,PROXY
808 | - DOMAIN-SUFFIX,mingpao.com,PROXY
809 | - DOMAIN-SUFFIX,mobile01.com,PROXY
810 | - DOMAIN-SUFFIX,myspace.com,PROXY
811 | - DOMAIN-SUFFIX,myspacecdn.com,PROXY
812 | - DOMAIN-SUFFIX,nanyang.com,PROXY
813 | - DOMAIN-SUFFIX,naver.com,PROXY
814 | - DOMAIN-SUFFIX,neowin.net,PROXY
815 | - DOMAIN-SUFFIX,newstapa.org,PROXY
816 | - DOMAIN-SUFFIX,nexitally.com,PROXY
817 | - DOMAIN-SUFFIX,nhk.or.jp,PROXY
818 | - DOMAIN-SUFFIX,nicovideo.jp,PROXY
819 | - DOMAIN-SUFFIX,nii.ac.jp,PROXY
820 | - DOMAIN-SUFFIX,nikkei.com,PROXY
821 | - DOMAIN-SUFFIX,nofile.io,PROXY
822 | - DOMAIN-SUFFIX,now.com,PROXY
823 | - DOMAIN-SUFFIX,nrk.no,PROXY
824 | - DOMAIN-SUFFIX,nyt.com,PROXY
825 | - DOMAIN-SUFFIX,nytchina.com,PROXY
826 | - DOMAIN-SUFFIX,nytcn.me,PROXY
827 | - DOMAIN-SUFFIX,nytco.com,PROXY
828 | - DOMAIN-SUFFIX,nytimes.com,PROXY
829 | - DOMAIN-SUFFIX,nytimg.com,PROXY
830 | - DOMAIN-SUFFIX,nytlog.com,PROXY
831 | - DOMAIN-SUFFIX,nytstyle.com,PROXY
832 | - DOMAIN-SUFFIX,ok.ru,PROXY
833 | - DOMAIN-SUFFIX,okex.com,PROXY
834 | - DOMAIN-SUFFIX,on.cc,PROXY
835 | - DOMAIN-SUFFIX,orientaldaily.com.my,PROXY
836 | - DOMAIN-SUFFIX,overcast.fm,PROXY
837 | - DOMAIN-SUFFIX,paltalk.com,PROXY
838 | - DOMAIN-SUFFIX,pao-pao.net,PROXY
839 | - DOMAIN-SUFFIX,parsevideo.com,PROXY
840 | - DOMAIN-SUFFIX,pbxes.com,PROXY
841 | - DOMAIN-SUFFIX,pcdvd.com.tw,PROXY
842 | - DOMAIN-SUFFIX,pchome.com.tw,PROXY
843 | - DOMAIN-SUFFIX,pcloud.com,PROXY
844 | - DOMAIN-SUFFIX,picacomic.com,PROXY
845 | - DOMAIN-SUFFIX,pinimg.com,PROXY
846 | - DOMAIN-SUFFIX,pixiv.net,PROXY
847 | - DOMAIN-SUFFIX,player.fm,PROXY
848 | - DOMAIN-SUFFIX,plurk.com,PROXY
849 | - DOMAIN-SUFFIX,po18.tw,PROXY
850 | - DOMAIN-SUFFIX,potato.im,PROXY
851 | - DOMAIN-SUFFIX,potatso.com,PROXY
852 | - DOMAIN-SUFFIX,prism-break.org,PROXY
853 | - DOMAIN-SUFFIX,proxifier.com,PROXY
854 | - DOMAIN-SUFFIX,pt.im,PROXY
855 | - DOMAIN-SUFFIX,pts.org.tw,PROXY
856 | - DOMAIN-SUFFIX,pubu.com.tw,PROXY
857 | - DOMAIN-SUFFIX,pubu.tw,PROXY
858 | - DOMAIN-SUFFIX,pureapk.com,PROXY
859 | - DOMAIN-SUFFIX,quora.com,PROXY
860 | - DOMAIN-SUFFIX,quoracdn.net,PROXY
861 | - DOMAIN-SUFFIX,rakuten.co.jp,PROXY
862 | - DOMAIN-SUFFIX,readingtimes.com.tw,PROXY
863 | - DOMAIN-SUFFIX,readmoo.com,PROXY
864 | - DOMAIN-SUFFIX,redbubble.com,PROXY
865 | - DOMAIN-SUFFIX,reddit.com,PROXY
866 | - DOMAIN-SUFFIX,redditmedia.com,PROXY
867 | - DOMAIN-SUFFIX,resilio.com,PROXY
868 | - DOMAIN-SUFFIX,reuters.com,PROXY
869 | - DOMAIN-SUFFIX,reutersmedia.net,PROXY
870 | - DOMAIN-SUFFIX,rfi.fr,PROXY
871 | - DOMAIN-SUFFIX,rixcloud.com,PROXY
872 | - DOMAIN-SUFFIX,roadshow.hk,PROXY
873 | - DOMAIN-SUFFIX,scmp.com,PROXY
874 | - DOMAIN-SUFFIX,scribd.com,PROXY
875 | - DOMAIN-SUFFIX,seatguru.com,PROXY
876 | - DOMAIN-SUFFIX,shadowsocks.org,PROXY
877 | - DOMAIN-SUFFIX,shopee.tw,PROXY
878 | - DOMAIN-SUFFIX,slideshare.net,PROXY
879 | - DOMAIN-SUFFIX,softfamous.com,PROXY
880 | - DOMAIN-SUFFIX,soundcloud.com,PROXY
881 | - DOMAIN-SUFFIX,ssrcloud.org,PROXY
882 | - DOMAIN-SUFFIX,startpage.com,PROXY
883 | - DOMAIN-SUFFIX,steamcommunity.com,PROXY
884 | - DOMAIN-SUFFIX,steemit.com,PROXY
885 | - DOMAIN-SUFFIX,steemitwallet.com,PROXY
886 | - DOMAIN-SUFFIX,t66y.com,PROXY
887 | - DOMAIN-SUFFIX,tapatalk.com,PROXY
888 | - DOMAIN-SUFFIX,teco-hk.org,PROXY
889 | - DOMAIN-SUFFIX,teco-mo.org,PROXY
890 | - DOMAIN-SUFFIX,teddysun.com,PROXY
891 | - DOMAIN-SUFFIX,textnow.me,PROXY
892 | - DOMAIN-SUFFIX,theguardian.com,PROXY
893 | - DOMAIN-SUFFIX,theinitium.com,PROXY
894 | - DOMAIN-SUFFIX,thetvdb.com,PROXY
895 | - DOMAIN-SUFFIX,tineye.com,PROXY
896 | - DOMAIN-SUFFIX,torproject.org,PROXY
897 | - DOMAIN-SUFFIX,tumblr.com,PROXY
898 | - DOMAIN-SUFFIX,turbobit.net,PROXY
899 | - DOMAIN-SUFFIX,tutanota.com,PROXY
900 | - DOMAIN-SUFFIX,tvboxnow.com,PROXY
901 | - DOMAIN-SUFFIX,udn.com,PROXY
902 | - DOMAIN-SUFFIX,unseen.is,PROXY
903 | - DOMAIN-SUFFIX,upmedia.mg,PROXY
904 | - DOMAIN-SUFFIX,uptodown.com,PROXY
905 | - DOMAIN-SUFFIX,urbandictionary.com,PROXY
906 | - DOMAIN-SUFFIX,ustream.tv,PROXY
907 | - DOMAIN-SUFFIX,uwants.com,PROXY
908 | - DOMAIN-SUFFIX,v2ray.com,PROXY
909 | - DOMAIN-SUFFIX,viber.com,PROXY
910 | - DOMAIN-SUFFIX,videopress.com,PROXY
911 | - DOMAIN-SUFFIX,vimeo.com,PROXY
912 | - DOMAIN-SUFFIX,voachinese.com,PROXY
913 | - DOMAIN-SUFFIX,voanews.com,PROXY
914 | - DOMAIN-SUFFIX,voxer.com,PROXY
915 | - DOMAIN-SUFFIX,vzw.com,PROXY
916 | - DOMAIN-SUFFIX,w3schools.com,PROXY
917 | - DOMAIN-SUFFIX,washingtonpost.com,PROXY
918 | - DOMAIN-SUFFIX,wattpad.com,PROXY
919 | - DOMAIN-SUFFIX,whoer.net,PROXY
920 | - DOMAIN-SUFFIX,wikimapia.org,PROXY
921 | - DOMAIN-SUFFIX,wikipedia.org,PROXY
922 | - DOMAIN-SUFFIX,wikiquote.org,PROXY
923 | - DOMAIN-SUFFIX,wikiwand.com,PROXY
924 | - DOMAIN-SUFFIX,winudf.com,PROXY
925 | - DOMAIN-SUFFIX,wire.com,PROXY
926 | - DOMAIN-SUFFIX,wordpress.com,PROXY
927 | - DOMAIN-SUFFIX,workflow.is,PROXY
928 | - DOMAIN-SUFFIX,worldcat.org,PROXY
929 | - DOMAIN-SUFFIX,wsj.com,PROXY
930 | - DOMAIN-SUFFIX,wsj.net,PROXY
931 | - DOMAIN-SUFFIX,xhamster.com,PROXY
932 | - DOMAIN-SUFFIX,xn--90wwvt03e.com,PROXY
933 | - DOMAIN-SUFFIX,xn--i2ru8q2qg.com,PROXY
934 | - DOMAIN-SUFFIX,xnxx.com,PROXY
935 | - DOMAIN-SUFFIX,xvideos.com,PROXY
936 | - DOMAIN-SUFFIX,yahoo.com,PROXY
937 | - DOMAIN-SUFFIX,yandex.ru,PROXY
938 | - DOMAIN-SUFFIX,ycombinator.com,PROXY
939 | - DOMAIN-SUFFIX,yesasia.com,PROXY
940 | - DOMAIN-SUFFIX,yes-news.com,PROXY
941 | - DOMAIN-SUFFIX,yomiuri.co.jp,PROXY
942 | - DOMAIN-SUFFIX,you-get.org,PROXY
943 | - DOMAIN-SUFFIX,zaobao.com,PROXY
944 | - DOMAIN-SUFFIX,zb.com,PROXY
945 | - DOMAIN-SUFFIX,zello.com,PROXY
946 | - DOMAIN-SUFFIX,zeronet.io,PROXY
947 | - DOMAIN-SUFFIX,zoom.us,PROXY
948 | - DOMAIN-KEYWORD,github,PROXY
949 | - DOMAIN-KEYWORD,jav,PROXY
950 | - DOMAIN-KEYWORD,pinterest,PROXY
951 | - DOMAIN-KEYWORD,porn,PROXY
952 | - DOMAIN-KEYWORD,wikileaks,PROXY
953 |
954 | # (Region-Restricted Access Denied)
955 | - DOMAIN-SUFFIX,apartmentratings.com,PROXY
956 | - DOMAIN-SUFFIX,apartments.com,PROXY
957 | - DOMAIN-SUFFIX,bankmobilevibe.com,PROXY
958 | - DOMAIN-SUFFIX,bing.com,PROXY
959 | - DOMAIN-SUFFIX,booktopia.com.au,PROXY
960 | - DOMAIN-SUFFIX,cccat.io,PROXY
961 | - DOMAIN-SUFFIX,centauro.com.br,PROXY
962 | - DOMAIN-SUFFIX,clearsurance.com,PROXY
963 | - DOMAIN-SUFFIX,costco.com,PROXY
964 | - DOMAIN-SUFFIX,crackle.com,PROXY
965 | - DOMAIN-SUFFIX,depositphotos.cn,PROXY
966 | - DOMAIN-SUFFIX,dish.com,PROXY
967 | - DOMAIN-SUFFIX,dmm.co.jp,PROXY
968 | - DOMAIN-SUFFIX,dmm.com,PROXY
969 | - DOMAIN-SUFFIX,dnvod.tv,PROXY
970 | - DOMAIN-SUFFIX,esurance.com,PROXY
971 | - DOMAIN-SUFFIX,extmatrix.com,PROXY
972 | - DOMAIN-SUFFIX,fastpic.ru,PROXY
973 | - DOMAIN-SUFFIX,flipboard.com,PROXY
974 | - DOMAIN-SUFFIX,fnac.be,PROXY
975 | - DOMAIN-SUFFIX,fnac.com,PROXY
976 | - DOMAIN-SUFFIX,funkyimg.com,PROXY
977 | - DOMAIN-SUFFIX,fxnetworks.com,PROXY
978 | - DOMAIN-SUFFIX,gettyimages.com,PROXY
979 | - DOMAIN-SUFFIX,go.com,PROXY
980 | - DOMAIN-SUFFIX,here.com,PROXY
981 | - DOMAIN-SUFFIX,jcpenney.com,PROXY
982 | - DOMAIN-SUFFIX,jiehua.tv,PROXY
983 | - DOMAIN-SUFFIX,mailfence.com,PROXY
984 | - DOMAIN-SUFFIX,nationwide.com,PROXY
985 | - DOMAIN-SUFFIX,nbc.com,PROXY
986 | - DOMAIN-SUFFIX,nexon.com,PROXY
987 | - DOMAIN-SUFFIX,nordstrom.com,PROXY
988 | - DOMAIN-SUFFIX,nordstromimage.com,PROXY
989 | - DOMAIN-SUFFIX,nordstromrack.com,PROXY
990 | - DOMAIN-SUFFIX,superpages.com,PROXY
991 | - DOMAIN-SUFFIX,target.com,PROXY
992 | - DOMAIN-SUFFIX,thinkgeek.com,PROXY
993 | - DOMAIN-SUFFIX,tracfone.com,PROXY
994 | - DOMAIN-SUFFIX,unity3d.com,PROXY
995 | - DOMAIN-SUFFIX,uploader.jp,PROXY
996 | - DOMAIN-SUFFIX,vevo.com,PROXY
997 | - DOMAIN-SUFFIX,viu.tv,PROXY
998 | - DOMAIN-SUFFIX,vk.com,PROXY
999 | - DOMAIN-SUFFIX,vsco.co,PROXY
1000 | - DOMAIN-SUFFIX,xfinity.com,PROXY
1001 | - DOMAIN-SUFFIX,zattoo.com,PROXY
1002 | # USER-AGENT,Roam*,PROXY
1003 |
1004 | # (The Most Popular Sites)
1005 | # > Apple
1006 | # >> TestFlight
1007 | - DOMAIN,testflight.apple.com,PROXY
1008 | # >> Apple URL Shortener
1009 | - DOMAIN-SUFFIX,appsto.re,PROXY
1010 | # >> iBooks Store download
1011 | - DOMAIN,books.itunes.apple.com,PROXY
1012 | # >> iTunes Store Moveis Trailers
1013 | - DOMAIN,hls.itunes.apple.com,PROXY
1014 | # >> App Store Preview
1015 | - DOMAIN,apps.apple.com,PROXY
1016 | - DOMAIN,itunes.apple.com,PROXY
1017 | # >> Spotlight
1018 | - DOMAIN,api-glb-sea.smoot.apple.com,PROXY
1019 | # >> Dictionary
1020 | - DOMAIN,lookup-api.apple.com,PROXY
1021 | # > Google
1022 | - DOMAIN-SUFFIX,abc.xyz,PROXY
1023 | - DOMAIN-SUFFIX,android.com,PROXY
1024 | - DOMAIN-SUFFIX,androidify.com,PROXY
1025 | - DOMAIN-SUFFIX,dialogflow.com,PROXY
1026 | - DOMAIN-SUFFIX,autodraw.com,PROXY
1027 | - DOMAIN-SUFFIX,capitalg.com,PROXY
1028 | - DOMAIN-SUFFIX,certificate-transparency.org,PROXY
1029 | - DOMAIN-SUFFIX,chrome.com,PROXY
1030 | - DOMAIN-SUFFIX,chromeexperiments.com,PROXY
1031 | - DOMAIN-SUFFIX,chromestatus.com,PROXY
1032 | - DOMAIN-SUFFIX,chromium.org,PROXY
1033 | - DOMAIN-SUFFIX,creativelab5.com,PROXY
1034 | - DOMAIN-SUFFIX,debug.com,PROXY
1035 | - DOMAIN-SUFFIX,deepmind.com,PROXY
1036 | - DOMAIN-SUFFIX,firebaseio.com,PROXY
1037 | - DOMAIN-SUFFIX,getmdl.io,PROXY
1038 | - DOMAIN-SUFFIX,ggpht.com,PROXY
1039 | - DOMAIN-SUFFIX,gmail.com,PROXY
1040 | - DOMAIN-SUFFIX,gmodules.com,PROXY
1041 | - DOMAIN-SUFFIX,godoc.org,PROXY
1042 | - DOMAIN-SUFFIX,golang.org,PROXY
1043 | - DOMAIN-SUFFIX,gstatic.com,PROXY
1044 | - DOMAIN-SUFFIX,gv.com,PROXY
1045 | - DOMAIN-SUFFIX,gwtproject.org,PROXY
1046 | - DOMAIN-SUFFIX,itasoftware.com,PROXY
1047 | - DOMAIN-SUFFIX,madewithcode.com,PROXY
1048 | - DOMAIN-SUFFIX,material.io,PROXY
1049 | - DOMAIN-SUFFIX,polymer-project.org,PROXY
1050 | - DOMAIN-SUFFIX,admin.recaptcha.net,PROXY
1051 | - DOMAIN-SUFFIX,recaptcha.net,PROXY
1052 | - DOMAIN-SUFFIX,shattered.io,PROXY
1053 | - DOMAIN-SUFFIX,synergyse.com,PROXY
1054 | - DOMAIN-SUFFIX,tensorflow.org,PROXY
1055 | - DOMAIN-SUFFIX,tfhub.dev,PROXY
1056 | - DOMAIN-SUFFIX,tiltbrush.com,PROXY
1057 | - DOMAIN-SUFFIX,waveprotocol.org,PROXY
1058 | - DOMAIN-SUFFIX,waymo.com,PROXY
1059 | - DOMAIN-SUFFIX,webmproject.org,PROXY
1060 | - DOMAIN-SUFFIX,webrtc.org,PROXY
1061 | - DOMAIN-SUFFIX,whatbrowser.org,PROXY
1062 | - DOMAIN-SUFFIX,widevine.com,PROXY
1063 | - DOMAIN-SUFFIX,x.company,PROXY
1064 | - DOMAIN-SUFFIX,youtu.be,PROXY
1065 | - DOMAIN-SUFFIX,yt.be,PROXY
1066 | - DOMAIN-SUFFIX,ytimg.com,PROXY
1067 | # > Microsoft
1068 | # >> Microsoft OneDrive
1069 | - DOMAIN-SUFFIX,1drv.com,PROXY
1070 | - DOMAIN-SUFFIX,1drv.ms,PROXY
1071 | - DOMAIN-SUFFIX,blob.core.windows.net,PROXY
1072 | - DOMAIN-SUFFIX,livefilestore.com,PROXY
1073 | - DOMAIN-SUFFIX,onedrive.com,PROXY
1074 | - DOMAIN-SUFFIX,storage.live.com,PROXY
1075 | - DOMAIN-SUFFIX,storage.msn.com,PROXY
1076 | - DOMAIN,oneclient.sfx.ms,PROXY
1077 | # > Other
1078 | - DOMAIN-SUFFIX,0rz.tw,PROXY
1079 | - DOMAIN-SUFFIX,4bluestones.biz,PROXY
1080 | - DOMAIN-SUFFIX,9bis.net,PROXY
1081 | - DOMAIN-SUFFIX,allconnected.co,PROXY
1082 | - DOMAIN-SUFFIX,aol.com,PROXY
1083 | - DOMAIN-SUFFIX,bcc.com.tw,PROXY
1084 | - DOMAIN-SUFFIX,bit.ly,PROXY
1085 | - DOMAIN-SUFFIX,bitshare.com,PROXY
1086 | - DOMAIN-SUFFIX,blog.jp,PROXY
1087 | - DOMAIN-SUFFIX,blogimg.jp,PROXY
1088 | - DOMAIN-SUFFIX,blogtd.org,PROXY
1089 | - DOMAIN-SUFFIX,broadcast.co.nz,PROXY
1090 | - DOMAIN-SUFFIX,camfrog.com,PROXY
1091 | - DOMAIN-SUFFIX,cfos.de,PROXY
1092 | - DOMAIN-SUFFIX,citypopulation.de,PROXY
1093 | - DOMAIN-SUFFIX,cloudfront.net,PROXY
1094 | - DOMAIN-SUFFIX,ctitv.com.tw,PROXY
1095 | - DOMAIN-SUFFIX,cuhk.edu.hk,PROXY
1096 | - DOMAIN-SUFFIX,cusu.hk,PROXY
1097 | - DOMAIN-SUFFIX,discord.gg,PROXY
1098 | - DOMAIN-SUFFIX,discuss.com.hk,PROXY
1099 | - DOMAIN-SUFFIX,dropboxapi.com,PROXY
1100 | - DOMAIN-SUFFIX,duolingo.cn,PROXY
1101 | - DOMAIN-SUFFIX,edditstatic.com,PROXY
1102 | - DOMAIN-SUFFIX,flickriver.com,PROXY
1103 | - DOMAIN-SUFFIX,focustaiwan.tw,PROXY
1104 | - DOMAIN-SUFFIX,free.fr,PROXY
1105 | - DOMAIN-SUFFIX,gigacircle.com,PROXY
1106 | - DOMAIN-SUFFIX,hk-pub.com,PROXY
1107 | - DOMAIN-SUFFIX,hosting.co.uk,PROXY
1108 | - DOMAIN-SUFFIX,hwcdn.net,PROXY
1109 | - DOMAIN-SUFFIX,ifixit.com,PROXY
1110 | - DOMAIN-SUFFIX,iphone4hongkong.com,PROXY
1111 | - DOMAIN-SUFFIX,iphonetaiwan.org,PROXY
1112 | - DOMAIN-SUFFIX,iptvbin.com,PROXY
1113 | - DOMAIN-SUFFIX,linksalpha.com,PROXY
1114 | - DOMAIN-SUFFIX,manyvids.com,PROXY
1115 | - DOMAIN-SUFFIX,myactimes.com,PROXY
1116 | - DOMAIN-SUFFIX,newsblur.com,PROXY
1117 | - DOMAIN-SUFFIX,now.im,PROXY
1118 | - DOMAIN-SUFFIX,nowe.com,PROXY
1119 | - DOMAIN-SUFFIX,redditlist.com,PROXY
1120 | - DOMAIN-SUFFIX,s3.amazonaws.com,PROXY
1121 | - DOMAIN-SUFFIX,signal.org,PROXY
1122 | - DOMAIN-SUFFIX,smartmailcloud.com,PROXY
1123 | - DOMAIN-SUFFIX,sparknotes.com,PROXY
1124 | - DOMAIN-SUFFIX,streetvoice.com,PROXY
1125 | - DOMAIN-SUFFIX,supertop.co,PROXY
1126 | - DOMAIN-SUFFIX,tv.com,PROXY
1127 | - DOMAIN-SUFFIX,typepad.com,PROXY
1128 | - DOMAIN-SUFFIX,udnbkk.com,PROXY
1129 | - DOMAIN-SUFFIX,urbanairship.com,PROXY
1130 | - DOMAIN-SUFFIX,whispersystems.org,PROXY
1131 | - DOMAIN-SUFFIX,wikia.com,PROXY
1132 | - DOMAIN-SUFFIX,wn.com,PROXY
1133 | - DOMAIN-SUFFIX,wolframalpha.com,PROXY
1134 | - DOMAIN-SUFFIX,x-art.com,PROXY
1135 | - DOMAIN-SUFFIX,yimg.com,PROXY
1136 | - DOMAIN,api.steampowered.com,PROXY
1137 | - DOMAIN,store.steampowered.com,PROXY
1138 |
1139 | # China Area Network
1140 | # > 360
1141 | - DOMAIN-SUFFIX,qhres.com,DIRECT
1142 | - DOMAIN-SUFFIX,qhimg.com,DIRECT
1143 | # > Akamai
1144 | - DOMAIN-SUFFIX,akadns.net,DIRECT
1145 | # - DOMAIN-SUFFIX,akamai.net,DIRECT
1146 | # - DOMAIN-SUFFIX,akamaiedge.net,DIRECT
1147 | # - DOMAIN-SUFFIX,akamaihd.net,DIRECT
1148 | # - DOMAIN-SUFFIX,akamaistream.net,DIRECT
1149 | # - DOMAIN-SUFFIX,akamaized.net,DIRECT
1150 | # > Alibaba
1151 | # USER-AGENT,%E4%BC%98%E9%85%B7*,DIRECT
1152 | - DOMAIN-SUFFIX,alibaba.com,DIRECT
1153 | - DOMAIN-SUFFIX,alicdn.com,DIRECT
1154 | - DOMAIN-SUFFIX,alikunlun.com,DIRECT
1155 | - DOMAIN-SUFFIX,alipay.com,DIRECT
1156 | - DOMAIN-SUFFIX,amap.com,DIRECT
1157 | - DOMAIN-SUFFIX,autonavi.com,DIRECT
1158 | - DOMAIN-SUFFIX,dingtalk.com,DIRECT
1159 | - DOMAIN-SUFFIX,mxhichina.com,DIRECT
1160 | - DOMAIN-SUFFIX,soku.com,DIRECT
1161 | - DOMAIN-SUFFIX,taobao.com,DIRECT
1162 | - DOMAIN-SUFFIX,tmall.com,DIRECT
1163 | - DOMAIN-SUFFIX,tmall.hk,DIRECT
1164 | - DOMAIN-SUFFIX,ykimg.com,DIRECT
1165 | - DOMAIN-SUFFIX,youku.com,DIRECT
1166 | - DOMAIN-SUFFIX,xiami.com,DIRECT
1167 | - DOMAIN-SUFFIX,xiami.net,DIRECT
1168 | # > Baidu
1169 | - DOMAIN-SUFFIX,baidu.com,DIRECT
1170 | - DOMAIN-SUFFIX,baidubcr.com,DIRECT
1171 | - DOMAIN-SUFFIX,bdstatic.com,DIRECT
1172 | - DOMAIN-SUFFIX,yunjiasu-cdn.net,DIRECT
1173 | # > bilibili
1174 | - DOMAIN-SUFFIX,acgvideo.com,DIRECT
1175 | - DOMAIN-SUFFIX,biliapi.com,DIRECT
1176 | - DOMAIN-SUFFIX,biliapi.net,DIRECT
1177 | - DOMAIN-SUFFIX,bilibili.com,DIRECT
1178 | - DOMAIN-SUFFIX,bilibili.tv,DIRECT
1179 | - DOMAIN-SUFFIX,hdslb.com,DIRECT
1180 | # > Blizzard
1181 | - DOMAIN-SUFFIX,blizzard.com,DIRECT
1182 | - DOMAIN-SUFFIX,battle.net,DIRECT
1183 | - DOMAIN,blzddist1-a.akamaihd.net,DIRECT
1184 | # > ByteDance
1185 | - DOMAIN-SUFFIX,feiliao.com,DIRECT
1186 | - DOMAIN-SUFFIX,pstatp.com,DIRECT
1187 | - DOMAIN-SUFFIX,snssdk.com,DIRECT
1188 | - DOMAIN-SUFFIX,iesdouyin.com,DIRECT
1189 | - DOMAIN-SUFFIX,toutiao.com,DIRECT
1190 | # > CCTV
1191 | - DOMAIN-SUFFIX,cctv.com,DIRECT
1192 | - DOMAIN-SUFFIX,cctvpic.com,DIRECT
1193 | - DOMAIN-SUFFIX,livechina.com,DIRECT
1194 | # > DiDi
1195 | - DOMAIN-SUFFIX,didialift.com,DIRECT
1196 | - DOMAIN-SUFFIX,didiglobal.com,DIRECT
1197 | - DOMAIN-SUFFIX,udache.com,DIRECT
1198 | # > 蛋蛋赞
1199 | - DOMAIN-SUFFIX,343480.com,DIRECT
1200 | - DOMAIN-SUFFIX,baduziyuan.com,DIRECT
1201 | - DOMAIN-SUFFIX,com-hs-hkdy.com,DIRECT
1202 | - DOMAIN-SUFFIX,czybjz.com,DIRECT
1203 | - DOMAIN-SUFFIX,dandanzan.com,DIRECT
1204 | - DOMAIN-SUFFIX,fjhps.com,DIRECT
1205 | - DOMAIN-SUFFIX,kuyunbo.club,DIRECT
1206 | # > ChinaNet
1207 | - DOMAIN-SUFFIX,21cn.com,DIRECT
1208 | # > HunanTV
1209 | - DOMAIN-SUFFIX,hitv.com,DIRECT
1210 | - DOMAIN-SUFFIX,mgtv.com,DIRECT
1211 | # > iQiyi
1212 | - DOMAIN-SUFFIX,iqiyi.com,DIRECT
1213 | - DOMAIN-SUFFIX,iqiyipic.com,DIRECT
1214 | - DOMAIN-SUFFIX,71.am.com,DIRECT
1215 | # > JD
1216 | - DOMAIN-SUFFIX,jd.com,DIRECT
1217 | - DOMAIN-SUFFIX,jd.hk,DIRECT
1218 | - DOMAIN-SUFFIX,jdpay.com,DIRECT
1219 | - DOMAIN-SUFFIX,360buyimg.com,DIRECT
1220 | # > Kingsoft
1221 | - DOMAIN-SUFFIX,iciba.com,DIRECT
1222 | - DOMAIN-SUFFIX,ksosoft.com,DIRECT
1223 | # > Meitu
1224 | - DOMAIN-SUFFIX,meitu.com,DIRECT
1225 | - DOMAIN-SUFFIX,meitudata.com,DIRECT
1226 | - DOMAIN-SUFFIX,meitustat.com,DIRECT
1227 | - DOMAIN-SUFFIX,meipai.com,DIRECT
1228 | # > MI
1229 | - DOMAIN-SUFFIX,duokan.com,DIRECT
1230 | - DOMAIN-SUFFIX,mi-img.com,DIRECT
1231 | - DOMAIN-SUFFIX,miui.com,DIRECT
1232 | - DOMAIN-SUFFIX,miwifi.com,DIRECT
1233 | - DOMAIN-SUFFIX,xiaomi.com,DIRECT
1234 | # > Microsoft
1235 | - DOMAIN-SUFFIX,microsoft.com,DIRECT
1236 | - DOMAIN-SUFFIX,msecnd.net,DIRECT
1237 | - DOMAIN-SUFFIX,office365.com,DIRECT
1238 | - DOMAIN-SUFFIX,outlook.com,DIRECT
1239 | - DOMAIN-SUFFIX,s-microsoft.com,DIRECT
1240 | - DOMAIN-SUFFIX,visualstudio.com,DIRECT
1241 | - DOMAIN-SUFFIX,windows.com,DIRECT
1242 | - DOMAIN-SUFFIX,windowsupdate.com,DIRECT
1243 | - DOMAIN,officecdn-microsoft-com.akamaized.net,DIRECT
1244 | # > NetEase
1245 | # USER-AGENT,NeteaseMusic*,DIRECT
1246 | # USER-AGENT,%E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90*,DIRECT
1247 | - DOMAIN-SUFFIX,163.com,DIRECT
1248 | - DOMAIN-SUFFIX,126.net,DIRECT
1249 | - DOMAIN-SUFFIX,127.net,DIRECT
1250 | - DOMAIN-SUFFIX,163yun.com,DIRECT
1251 | - DOMAIN-SUFFIX,lofter.com,DIRECT
1252 | - DOMAIN-SUFFIX,netease.com,DIRECT
1253 | - DOMAIN-SUFFIX,ydstatic.com,DIRECT
1254 | # > Sina
1255 | - DOMAIN-SUFFIX,sina.com,DIRECT
1256 | - DOMAIN-SUFFIX,weibo.com,DIRECT
1257 | - DOMAIN-SUFFIX,weibocdn.com,DIRECT
1258 | # > Sohu
1259 | - DOMAIN-SUFFIX,sohu.com,DIRECT
1260 | - DOMAIN-SUFFIX,sohucs.com,DIRECT
1261 | - DOMAIN-SUFFIX,sohu-inc.com,DIRECT
1262 | - DOMAIN-SUFFIX,v-56.com,DIRECT
1263 | # > Sogo
1264 | - DOMAIN-SUFFIX,sogo.com,DIRECT
1265 | - DOMAIN-SUFFIX,sogou.com,DIRECT
1266 | - DOMAIN-SUFFIX,sogoucdn.com,DIRECT
1267 | # > Steam
1268 | - DOMAIN-SUFFIX,steampowered.com,DIRECT
1269 | - DOMAIN-SUFFIX,steam-chat.com,DIRECT
1270 | - DOMAIN-SUFFIX,steamgames.com,DIRECT
1271 | - DOMAIN-SUFFIX,steamusercontent.com,DIRECT
1272 | - DOMAIN-SUFFIX,steamcontent.com,DIRECT
1273 | - DOMAIN-SUFFIX,steamstatic.com,DIRECT
1274 | - DOMAIN-SUFFIX,steamcdn-a.akamaihd.net,DIRECT
1275 | - DOMAIN-SUFFIX,steamstat.us,DIRECT
1276 | # > Tencent
1277 | # USER-AGENT,MicroMessenger%20Client,DIRECT
1278 | # USER-AGENT,WeChat*,DIRECT
1279 | - DOMAIN-SUFFIX,gtimg.com,DIRECT
1280 | - DOMAIN-SUFFIX,idqqimg.com,DIRECT
1281 | - DOMAIN-SUFFIX,igamecj.com,DIRECT
1282 | - DOMAIN-SUFFIX,myapp.com,DIRECT
1283 | - DOMAIN-SUFFIX,myqcloud.com,DIRECT
1284 | - DOMAIN-SUFFIX,qq.com,DIRECT
1285 | - DOMAIN-SUFFIX,tencent.com,DIRECT
1286 | - DOMAIN-SUFFIX,tencent-cloud.net,DIRECT
1287 | # > YYeTs
1288 | # USER-AGENT,YYeTs*,DIRECT
1289 | - DOMAIN-SUFFIX,jstucdn.com,DIRECT
1290 | - DOMAIN-SUFFIX,zimuzu.io,DIRECT
1291 | - DOMAIN-SUFFIX,zimuzu.tv,DIRECT
1292 | - DOMAIN-SUFFIX,zmz2019.com,DIRECT
1293 | - DOMAIN-SUFFIX,zmzapi.com,DIRECT
1294 | - DOMAIN-SUFFIX,zmzapi.net,DIRECT
1295 | - DOMAIN-SUFFIX,zmzfile.com,DIRECT
1296 | # > Content Delivery Network
1297 | - DOMAIN-SUFFIX,ccgslb.com,DIRECT
1298 | - DOMAIN-SUFFIX,ccgslb.net,DIRECT
1299 | - DOMAIN-SUFFIX,chinanetcenter.com,DIRECT
1300 | - DOMAIN-SUFFIX,meixincdn.com,DIRECT
1301 | - DOMAIN-SUFFIX,ourdvs.com,DIRECT
1302 | - DOMAIN-SUFFIX,staticdn.net,DIRECT
1303 | - DOMAIN-SUFFIX,wangsu.com,DIRECT
1304 | # > IP Query
1305 | - DOMAIN-SUFFIX,ipip.net,DIRECT
1306 | - DOMAIN-SUFFIX,ip.la,DIRECT
1307 | - DOMAIN-SUFFIX,ip-cdn.com,DIRECT
1308 | - DOMAIN-SUFFIX,ipv6-test.com,DIRECT
1309 | - DOMAIN-SUFFIX,test-ipv6.com,DIRECT
1310 | - DOMAIN-SUFFIX,whatismyip.com,DIRECT
1311 | # > Speed Test
1312 | # - DOMAIN-SUFFIX,speedtest.net,DIRECT
1313 | - DOMAIN-SUFFIX,netspeedtestmaster.com,DIRECT
1314 | - DOMAIN,speedtest.macpaw.com,DIRECT
1315 | # > Private Tracker
1316 | - DOMAIN-SUFFIX,awesome-hd.me,DIRECT
1317 | - DOMAIN-SUFFIX,broadcasthe.net,DIRECT
1318 | - DOMAIN-SUFFIX,chdbits.co,DIRECT
1319 | - DOMAIN-SUFFIX,classix-unlimited.co.uk,DIRECT
1320 | - DOMAIN-SUFFIX,empornium.me,DIRECT
1321 | - DOMAIN-SUFFIX,gazellegames.net,DIRECT
1322 | - DOMAIN-SUFFIX,hdchina.org,DIRECT
1323 | - DOMAIN-SUFFIX,hdsky.me,DIRECT
1324 | - DOMAIN-SUFFIX,icetorrent.org,DIRECT
1325 | - DOMAIN-SUFFIX,jpopsuki.eu,DIRECT
1326 | - DOMAIN-SUFFIX,keepfrds.com,DIRECT
1327 | - DOMAIN-SUFFIX,madsrevolution.net,DIRECT
1328 | - DOMAIN-SUFFIX,m-team.cc,DIRECT
1329 | - DOMAIN-SUFFIX,nanyangpt.com,DIRECT
1330 | - DOMAIN-SUFFIX,ncore.cc,DIRECT
1331 | - DOMAIN-SUFFIX,open.cd,DIRECT
1332 | - DOMAIN-SUFFIX,ourbits.club,DIRECT
1333 | - DOMAIN-SUFFIX,passthepopcorn.me,DIRECT
1334 | - DOMAIN-SUFFIX,privatehd.to,DIRECT
1335 | - DOMAIN-SUFFIX,redacted.ch,DIRECT
1336 | - DOMAIN-SUFFIX,springsunday.net,DIRECT
1337 | - DOMAIN-SUFFIX,tjupt.org,DIRECT
1338 | - DOMAIN-SUFFIX,totheglory.im,DIRECT
1339 | # > Scholar
1340 | - DOMAIN-SUFFIX,acm.org,DIRECT
1341 | - DOMAIN-SUFFIX,acs.org,DIRECT
1342 | - DOMAIN-SUFFIX,aip.org,DIRECT
1343 | - DOMAIN-SUFFIX,ams.org,DIRECT
1344 | - DOMAIN-SUFFIX,annualreviews.org,DIRECT
1345 | - DOMAIN-SUFFIX,aps.org,DIRECT
1346 | - DOMAIN-SUFFIX,ascelibrary.org,DIRECT
1347 | - DOMAIN-SUFFIX,asm.org,DIRECT
1348 | - DOMAIN-SUFFIX,asme.org,DIRECT
1349 | - DOMAIN-SUFFIX,astm.org,DIRECT
1350 | - DOMAIN-SUFFIX,bmj.com,DIRECT
1351 | - DOMAIN-SUFFIX,cambridge.org,DIRECT
1352 | - DOMAIN-SUFFIX,cas.org,DIRECT
1353 | - DOMAIN-SUFFIX,clarivate.com,DIRECT
1354 | - DOMAIN-SUFFIX,ebscohost.com,DIRECT
1355 | - DOMAIN-SUFFIX,emerald.com,DIRECT
1356 | - DOMAIN-SUFFIX,engineeringvillage.com,DIRECT
1357 | - DOMAIN-SUFFIX,icevirtuallibrary.com,DIRECT
1358 | - DOMAIN-SUFFIX,ieee.org,DIRECT
1359 | - DOMAIN-SUFFIX,imf.org,DIRECT
1360 | - DOMAIN-SUFFIX,iop.org,DIRECT
1361 | - DOMAIN-SUFFIX,jamanetwork.com,DIRECT
1362 | - DOMAIN-SUFFIX,jhu.edu,DIRECT
1363 | - DOMAIN-SUFFIX,jstor.org,DIRECT
1364 | - DOMAIN-SUFFIX,karger.com,DIRECT
1365 | - DOMAIN-SUFFIX,libguides.com,DIRECT
1366 | - DOMAIN-SUFFIX,madsrevolution.net,DIRECT
1367 | - DOMAIN-SUFFIX,mpg.de,DIRECT
1368 | - DOMAIN-SUFFIX,myilibrary.com,DIRECT
1369 | - DOMAIN-SUFFIX,nature.com,DIRECT
1370 | - DOMAIN-SUFFIX,oecd-ilibrary.org,DIRECT
1371 | - DOMAIN-SUFFIX,osapublishing.org,DIRECT
1372 | - DOMAIN-SUFFIX,oup.com,DIRECT
1373 | - DOMAIN-SUFFIX,ovid.com,DIRECT
1374 | - DOMAIN-SUFFIX,oxfordartonline.com,DIRECT
1375 | - DOMAIN-SUFFIX,oxfordbibliographies.com,DIRECT
1376 | - DOMAIN-SUFFIX,oxfordmusiconline.com,DIRECT
1377 | - DOMAIN-SUFFIX,pnas.org,DIRECT
1378 | - DOMAIN-SUFFIX,proquest.com,DIRECT
1379 | - DOMAIN-SUFFIX,rsc.org,DIRECT
1380 | - DOMAIN-SUFFIX,sagepub.com,DIRECT
1381 | - DOMAIN-SUFFIX,sciencedirect.com,DIRECT
1382 | - DOMAIN-SUFFIX,sciencemag.org,DIRECT
1383 | - DOMAIN-SUFFIX,scopus.com,DIRECT
1384 | - DOMAIN-SUFFIX,siam.org,DIRECT
1385 | - DOMAIN-SUFFIX,spiedigitallibrary.org,DIRECT
1386 | - DOMAIN-SUFFIX,springer.com,DIRECT
1387 | - DOMAIN-SUFFIX,springerlink.com,DIRECT
1388 | - DOMAIN-SUFFIX,tandfonline.com,DIRECT
1389 | - DOMAIN-SUFFIX,un.org,DIRECT
1390 | - DOMAIN-SUFFIX,uni-bielefeld.de,DIRECT
1391 | - DOMAIN-SUFFIX,webofknowledge.com,DIRECT
1392 | - DOMAIN-SUFFIX,westlaw.com,DIRECT
1393 | - DOMAIN-SUFFIX,wiley.com,DIRECT
1394 | - DOMAIN-SUFFIX,worldbank.org,DIRECT
1395 | - DOMAIN-SUFFIX,worldscientific.com,DIRECT
1396 | # > Other
1397 | - DOMAIN-SUFFIX,cn,DIRECT
1398 | - DOMAIN-SUFFIX,360in.com,DIRECT
1399 | - DOMAIN-SUFFIX,51ym.me,DIRECT
1400 | - DOMAIN-SUFFIX,8686c.com,DIRECT
1401 | - DOMAIN-SUFFIX,abchina.com,DIRECT
1402 | - DOMAIN-SUFFIX,accuweather.com,DIRECT
1403 | - DOMAIN-SUFFIX,aicoinstorge.com,DIRECT
1404 | - DOMAIN-SUFFIX,air-matters.com,DIRECT
1405 | - DOMAIN-SUFFIX,air-matters.io,DIRECT
1406 | - DOMAIN-SUFFIX,aixifan.com,DIRECT
1407 | - DOMAIN-SUFFIX,amd.com,DIRECT
1408 | - DOMAIN-SUFFIX,b612.net,DIRECT
1409 | - DOMAIN-SUFFIX,bdatu.com,DIRECT
1410 | - DOMAIN-SUFFIX,beitaichufang.com,DIRECT
1411 | - DOMAIN-SUFFIX,bjango.com,DIRECT
1412 | - DOMAIN-SUFFIX,booking.com,DIRECT
1413 | - DOMAIN-SUFFIX,bstatic.com,DIRECT
1414 | - DOMAIN-SUFFIX,cailianpress.com,DIRECT
1415 | - DOMAIN-SUFFIX,camera360.com,DIRECT
1416 | - DOMAIN-SUFFIX,chinaso.com,DIRECT
1417 | - DOMAIN-SUFFIX,chua.pro,DIRECT
1418 | - DOMAIN-SUFFIX,chuimg.com,DIRECT
1419 | - DOMAIN-SUFFIX,chunyu.mobi,DIRECT
1420 | - DOMAIN-SUFFIX,chushou.tv,DIRECT
1421 | - DOMAIN-SUFFIX,cmbchina.com,DIRECT
1422 | - DOMAIN-SUFFIX,cmbimg.com,DIRECT
1423 | - DOMAIN-SUFFIX,ctrip.com,DIRECT
1424 | - DOMAIN-SUFFIX,dfcfw.com,DIRECT
1425 | - DOMAIN-SUFFIX,docschina.org,DIRECT
1426 | - DOMAIN-SUFFIX,douban.com,DIRECT
1427 | - DOMAIN-SUFFIX,doubanio.com,DIRECT
1428 | - DOMAIN-SUFFIX,douyu.com,DIRECT
1429 | - DOMAIN-SUFFIX,dxycdn.com,DIRECT
1430 | - DOMAIN-SUFFIX,dytt8.net,DIRECT
1431 | - DOMAIN-SUFFIX,eastmoney.com,DIRECT
1432 | - DOMAIN-SUFFIX,eudic.net,DIRECT
1433 | - DOMAIN-SUFFIX,feng.com,DIRECT
1434 | - DOMAIN-SUFFIX,fengkongcloud.com,DIRECT
1435 | - DOMAIN-SUFFIX,frdic.com,DIRECT
1436 | - DOMAIN-SUFFIX,futu5.com,DIRECT
1437 | - DOMAIN-SUFFIX,futunn.com,DIRECT
1438 | - DOMAIN-SUFFIX,gandi.net,DIRECT
1439 | - DOMAIN-SUFFIX,geilicdn.com,DIRECT
1440 | - DOMAIN-SUFFIX,getpricetag.com,DIRECT
1441 | - DOMAIN-SUFFIX,gifshow.com,DIRECT
1442 | - DOMAIN-SUFFIX,godic.net,DIRECT
1443 | - DOMAIN-SUFFIX,hicloud.com,DIRECT
1444 | - DOMAIN-SUFFIX,hongxiu.com,DIRECT
1445 | - DOMAIN-SUFFIX,hostbuf.com,DIRECT
1446 | - DOMAIN-SUFFIX,huxiucdn.com,DIRECT
1447 | - DOMAIN-SUFFIX,huya.com,DIRECT
1448 | - DOMAIN-SUFFIX,infinitynewtab.com,DIRECT
1449 | - DOMAIN-SUFFIX,ithome.com,DIRECT
1450 | - DOMAIN-SUFFIX,java.com,DIRECT
1451 | - DOMAIN-SUFFIX,jidian.im,DIRECT
1452 | - DOMAIN-SUFFIX,kaiyanapp.com,DIRECT
1453 | - DOMAIN-SUFFIX,kaspersky-labs.com,DIRECT
1454 | - DOMAIN-SUFFIX,keepcdn.com,DIRECT
1455 | - DOMAIN-SUFFIX,kkmh.com,DIRECT
1456 | - DOMAIN-SUFFIX,licdn.com,DIRECT
1457 | - DOMAIN-SUFFIX,linkedin.com,DIRECT
1458 | - DOMAIN-SUFFIX,loli.net,DIRECT
1459 | - DOMAIN-SUFFIX,luojilab.com,DIRECT
1460 | - DOMAIN-SUFFIX,maoyan.com,DIRECT
1461 | - DOMAIN-SUFFIX,maoyun.tv,DIRECT
1462 | - DOMAIN-SUFFIX,meituan.com,DIRECT
1463 | - DOMAIN-SUFFIX,meituan.net,DIRECT
1464 | - DOMAIN-SUFFIX,mobike.com,DIRECT
1465 | - DOMAIN-SUFFIX,moke.com,DIRECT
1466 | - DOMAIN-SUFFIX,mubu.com,DIRECT
1467 | - DOMAIN-SUFFIX,myzaker.com,DIRECT
1468 | - DOMAIN-SUFFIX,nim-lang-cn.org,DIRECT
1469 | - DOMAIN-SUFFIX,nvidia.com,DIRECT
1470 | - DOMAIN-SUFFIX,oracle.com,DIRECT
1471 | - DOMAIN-SUFFIX,paypal.com,DIRECT
1472 | - DOMAIN-SUFFIX,paypalobjects.com,DIRECT
1473 | - DOMAIN-SUFFIX,qdaily.com,DIRECT
1474 | - DOMAIN-SUFFIX,qidian.com,DIRECT
1475 | - DOMAIN-SUFFIX,qyer.com,DIRECT
1476 | - DOMAIN-SUFFIX,qyerstatic.com,DIRECT
1477 | - DOMAIN-SUFFIX,raychase.net,DIRECT
1478 | - DOMAIN-SUFFIX,ronghub.com,DIRECT
1479 | - DOMAIN-SUFFIX,ruguoapp.com,DIRECT
1480 | - DOMAIN-SUFFIX,s-reader.com,DIRECT
1481 | - DOMAIN-SUFFIX,sankuai.com,DIRECT
1482 | - DOMAIN-SUFFIX,scomper.me,DIRECT
1483 | - DOMAIN-SUFFIX,seafile.com,DIRECT
1484 | - DOMAIN-SUFFIX,sm.ms,DIRECT
1485 | - DOMAIN-SUFFIX,smzdm.com,DIRECT
1486 | - DOMAIN-SUFFIX,snapdrop.net,DIRECT
1487 | - DOMAIN-SUFFIX,snwx.com,DIRECT
1488 | - DOMAIN-SUFFIX,sspai.com,DIRECT
1489 | - DOMAIN-SUFFIX,takungpao.com,DIRECT
1490 | - DOMAIN-SUFFIX,teamviewer.com,DIRECT
1491 | - DOMAIN-SUFFIX,tianyancha.com,DIRECT
1492 | - DOMAIN-SUFFIX,udacity.com,DIRECT
1493 | - DOMAIN-SUFFIX,uning.com,DIRECT
1494 | - DOMAIN-SUFFIX,vmware.com,DIRECT
1495 | - DOMAIN-SUFFIX,weather.com,DIRECT
1496 | - DOMAIN-SUFFIX,weico.cc,DIRECT
1497 | - DOMAIN-SUFFIX,weidian.com,DIRECT
1498 | - DOMAIN-SUFFIX,xiachufang.com,DIRECT
1499 | - DOMAIN-SUFFIX,ximalaya.com,DIRECT
1500 | - DOMAIN-SUFFIX,xinhuanet.com,DIRECT
1501 | - DOMAIN-SUFFIX,xmcdn.com,DIRECT
1502 | - DOMAIN-SUFFIX,yangkeduo.com,DIRECT
1503 | - DOMAIN-SUFFIX,zhangzishi.cc,DIRECT
1504 | - DOMAIN-SUFFIX,zhihu.com,DIRECT
1505 | - DOMAIN-SUFFIX,zhimg.com,DIRECT
1506 | - DOMAIN-SUFFIX,zhuihd.com,DIRECT
1507 | - DOMAIN,download.jetbrains.com,DIRECT
1508 | - DOMAIN,images-cn.ssl-images-amazon.com,DIRECT
1509 |
1510 | # > Apple
1511 | - DOMAIN-SUFFIX,aaplimg.com,Apple
1512 | - DOMAIN-SUFFIX,apple.co,Apple
1513 | - DOMAIN-SUFFIX,apple.com,Apple
1514 | - DOMAIN-SUFFIX,apple-cloudkit.com,Apple
1515 | - DOMAIN-SUFFIX,appstore.com,Apple
1516 | - DOMAIN-SUFFIX,cdn-apple.com,Apple
1517 | - DOMAIN-SUFFIX,crashlytics.com,Apple
1518 | - DOMAIN-SUFFIX,icloud.com,Apple
1519 | - DOMAIN-SUFFIX,icloud-content.com,Apple
1520 | - DOMAIN-SUFFIX,me.com,Apple
1521 | - DOMAIN-SUFFIX,mzstatic.com,Apple
1522 | - DOMAIN,www-cdn.icloud.com.akadns.net,Apple
1523 | - IP-CIDR,17.0.0.0/8,Apple,no-resolve
1524 |
1525 | # Local Area Network
1526 | - IP-CIDR,192.168.0.0/16,DIRECT
1527 | - IP-CIDR,10.0.0.0/8,DIRECT
1528 | - IP-CIDR,172.16.0.0/12,DIRECT
1529 | - IP-CIDR,127.0.0.0/8,DIRECT
1530 | - IP-CIDR,100.64.0.0/10,DIRECT
1531 |
1532 | # DNSPod Public DNS+
1533 | - IP-CIDR,119.28.28.28/32,DIRECT,no-resolve
1534 | # GeoIP China
1535 | - GEOIP,CN,DIRECT
1536 | - MATCH,PROXY
1537 |
--------------------------------------------------------------------------------
/bin/version:
--------------------------------------------------------------------------------
1 | clash_v=1.2.0
2 | clashpre_v=2020.10.09
3 | GeoIP_v=20201010
4 | versionsh=1.0.0beta15
5 |
--------------------------------------------------------------------------------
/install.sh:
--------------------------------------------------------------------------------
1 | #! /bin/bash
2 | # Copyright (C) Juewuy
3 |
4 | echo='echo -e' && [ -n "$(ls -l /bin/sh|grep -o dash)" ] && echo=echo
5 | [ -z "$1" ] && test=0 || test=$1
6 |
7 | echo "***********************************************"
8 | echo "** 欢迎使用 **"
9 | echo "** ShellClash **"
10 | echo "** by Juewuy **"
11 | echo "***********************************************"
12 |
13 | #检查root权限
14 | [ "$USER" != "root" ] && [ "$USER" != "admin" ] && echo 请使用root用户执行安装!&& exit 1
15 |
16 | #检查更新
17 | url="https://cdn.jsdelivr.net/gh/juewuy/ShellClash"
18 | if [ "$test" -gt 0 ];then
19 | url="--resolve raw.githubusercontent.com:443:199.232.68.133 https://raw.githubusercontent.com/juewuy/ShellClash/master"
20 | [ "$test" -eq 2 ] && url="http://192.168.31.30:8080/clash-for-Miwifi" && echo $url
21 | [ "$test" -eq 3 ] && url="http://192.168.123.90:8080/clash-for-Miwifi"
22 | else
23 | release_new=$(curl -kfsSL --resolve api.github.com:443:140.82.113.5 "https://api.github.com/repos/juewuy/ShellClash/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g') #检查版本
24 | fi
25 | [ -z "$release_new" ] && release_new=$(curl -kfsSL $url/bin/version | grep "versionsh" | awk -F "=" '{print $2}')
26 | [ -z "$release_new" ] && echo "无法连接服务器!" && exit
27 | tarurl=$url@$release_new/bin/clashfm.tar.gz
28 | [ "$test" -gt 0 ] && tarurl=$url/bin/clashfm.tar.gz
29 | gettar(){
30 | result=$(curl -w %{http_code} -kLo /tmp/clashfm.tar.gz $tarurl)
31 | [ "$result" != "200" ] && echo "文件下载失败!" && exit 1
32 | #解压
33 | echo -----------------------------------------------
34 | echo 开始解压文件!
35 | mkdir -p $clashdir > /dev/null
36 | tar -zxvf '/tmp/clashfm.tar.gz' -C $clashdir/
37 | [ $? -ne 0 ] && echo "文件解压失败!" && exit 1
38 | #初始化文件目录
39 | [ -f "$clashdir/mark" ] || echo '#标识clash运行状态的文件,不明勿动!' > $clashdir/mark
40 | #判断系统类型写入不同的启动文件
41 | if [ -f /etc/rc.common ];then
42 | #设为init.d方式启动
43 | mv $clashdir/clashservice /etc/init.d/clash
44 | chmod 777 /etc/init.d/clash
45 | else
46 | [ -d /etc/systemd/system/ ] && sysdir=/etc/systemd/system/
47 | [ -d /usr/lib/systemd/system/ ] && sysdir=/usr/lib/systemd/system/
48 | if [ -n "$sysdir" ];then
49 | #设为systemd方式启动
50 | mv $clashdir/clash.service $sysdir/clash.service
51 | sed -i "s%/etc/clash%$clashdir%g" $sysdir/clash.service
52 | systemctl daemon-reload
53 | rm -rf /etc/init.d/clash
54 | else
55 | #设为保守模式启动
56 | sed -i '/start_old=*/'d $clashdir/mark
57 | sed -i "1i\start_old=已开启" $clashdir/mark
58 | fi
59 | fi
60 | #修饰文件及版本号
61 | shtype=sh && [ -n "$(ls -l /bin/sh|grep -o dash)" ] && shtype=bash
62 | sed -i "s%#!/bin/sh%#!/bin/$shtype%g" $clashdir/start.sh
63 | chmod 777 $clashdir/start.sh
64 | sed -i '/versionsh_l=*/'d $clashdir/mark
65 | sed -i "1i\versionsh_l=$release_new" $clashdir/mark
66 | #设置环境变量
67 | sed -i '/alias clash=*/'d /etc/profile
68 | echo "alias clash=\"$shtype $clashdir/clash.sh\"" >> /etc/profile #设置快捷命令环境变量
69 | sed -i '/export clashdir=*/'d /etc/profile
70 | echo "export clashdir=\"$clashdir\"" >> /etc/profile #设置clash路径环境变量
71 | #删除临时文件
72 | rm -rf /tmp/clashfm.tar.gz
73 | rm -rf $clashdir/clashservice
74 | rm -rf $clashdir/clash.service
75 | }
76 | #下载及安装
77 | install(){
78 | echo -----------------------------------------------
79 | echo 开始从服务器获取安装文件!
80 | echo -----------------------------------------------
81 | gettar
82 | echo -----------------------------------------------
83 | echo ShellClash 已经安装成功!
84 | echo -----------------------------------------------
85 | $echo "\033[33m输入\033[30;47m clash \033[0;33m命令即可管理!!!\033[0m"
86 | echo -----------------------------------------------
87 | }
88 | setdir(){
89 | echo -----------------------------------------------
90 | $echo "\033[32m 1 在默认目录(/etc)安装"
91 | $echo "\033[33m 2 手动设置安装目录"
92 | $echo "\033[0m 0 退出安装"
93 | echo -----------------------------------------------
94 | read -p "请输入相应数字 > " num
95 | #设置目录
96 | if [ -z $num ];then
97 | echo 安装已取消
98 | exit;
99 | elif [ "$num" = "1" ];then
100 | dir=/etc
101 | elif [ "$num" = "2" ];then
102 | echo -----------------------------------------------
103 | echo '可用路径 剩余空间:'
104 | df -h | awk '{print $6,$2}'| sed 1d
105 | echo '路径是必须带 / 的格式,写入虚拟内存(/tmp,/sys,..)的文件会在重启后消失!!!'
106 | read -p "请输入自定义路径 > " dir
107 | if [ -z "$dir" ];then
108 | $echo "\033[31m路径错误!已取消安装!\033[0m"
109 | exit;
110 | fi
111 | else
112 | echo 安装已取消!!!
113 | exit;
114 | fi
115 | clashdir=$dir/clash
116 | install
117 | }
118 |
119 | #输出
120 | $echo "最新版本:\033[32m$release_new\033[0m"
121 | echo -----------------------------------------------
122 | $echo "\033[44m如遇问题请加TG群反馈:\033[42;30m t.me/clashfm \033[0m"
123 | $echo "\033[37m支持各种基于openwrt的路由器设备"
124 | $echo "\033[33m支持Debian、Centos等标准Linux系统\033[0m"
125 |
126 | if [ -n "$clashdir" ];then
127 | echo -----------------------------------------------
128 | $echo "检测到旧的安装目录\033[36m$clashdir\033[0m,是否覆盖安装?"
129 | $echo "\033[32m覆盖安装时不会移除配置文件!\033[0m"
130 | read -p "覆盖安装/卸载旧版本?(1/0) > " res
131 | if [ "$res" = "1" ];then
132 | install
133 | elif [ "$res" = "0" ];then
134 | rm -rf $clashdir
135 | echo -----------------------------------------------
136 | $echo "\033[31m 旧版本文件已卸载!\033[0m"
137 | setdir
138 | else
139 | $echo "\033[31m输入错误!已取消安装!\033[0m"
140 | exit;
141 | fi
142 | else
143 | setdir
144 | fi
145 |
--------------------------------------------------------------------------------
/install_cdn.sh:
--------------------------------------------------------------------------------
1 | #! /bin/bash
2 | # Copyright (C) Juewuy
3 |
4 | echo='echo -e' && [ -n "$(ls -l /bin/sh|grep -o dash)" ] && echo=echo
5 | [ -z "$1" ] && test=0 || test=$1
6 |
7 | echo "***********************************************"
8 | echo "** 欢迎使用 **"
9 | echo "** ShellClash **"
10 | echo "** by Juewuy **"
11 | echo "***********************************************"
12 |
13 | #检查root权限
14 | [ "$USER" != "root" ] && [ "$USER" != "admin" ] && echo 请使用root用户执行安装!&& exit 1
15 |
16 | #检查更新
17 | url="https://cdn.jsdelivr.net/gh/juewuy/ShellClash"
18 | if [ "$test" -gt 0 ];then
19 | url="--resolve raw.githubusercontent.com:443:199.232.68.133 https://raw.githubusercontent.com/juewuy/ShellClash/master"
20 | [ "$test" -eq 2 ] && url="http://192.168.31.30:8080/clash-for-Miwifi" && echo $url
21 | [ "$test" -eq 3 ] && url="http://192.168.123.90:8080/clash-for-Miwifi"
22 | else
23 | release_new=$(curl -kfsSL --resolve api.github.com:443:140.82.113.5 "https://api.github.com/repos/juewuy/ShellClash/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g') #检查版本
24 | fi
25 | [ -z "$release_new" ] && release_new=$(curl -kfsSL $url/bin/version | grep "versionsh" | awk -F "=" '{print $2}')
26 | [ -z "$release_new" ] && echo "无法连接服务器!" && exit
27 | tarurl=$url@$release_new/bin/clashfm.tar.gz
28 | [ "$test" -gt 0 ] && tarurl=$url/bin/clashfm.tar.gz
29 | gettar(){
30 | result=$(curl -w %{http_code} -kLo /tmp/clashfm.tar.gz $tarurl)
31 | [ "$result" != "200" ] && echo "文件下载失败!" && exit 1
32 | #解压
33 | echo -----------------------------------------------
34 | echo 开始解压文件!
35 | mkdir -p $clashdir > /dev/null
36 | tar -zxvf '/tmp/clashfm.tar.gz' -C $clashdir/
37 | [ $? -ne 0 ] && echo "文件解压失败!" && exit 1
38 | #初始化文件目录
39 | [ -f "$clashdir/mark" ] || echo '#标识clash运行状态的文件,不明勿动!' > $clashdir/mark
40 | #判断系统类型写入不同的启动文件
41 | if [ -f /etc/rc.common ];then
42 | #设为init.d方式启动
43 | mv $clashdir/clashservice /etc/init.d/clash
44 | chmod 777 /etc/init.d/clash
45 | else
46 | [ -d /etc/systemd/system/ ] && sysdir=/etc/systemd/system/
47 | [ -d /usr/lib/systemd/system/ ] && sysdir=/usr/lib/systemd/system/
48 | if [ -n "$sysdir" ];then
49 | #设为systemd方式启动
50 | mv $clashdir/clash.service $sysdir/clash.service
51 | sed -i "s%/etc/clash%$clashdir%g" $sysdir/clash.service
52 | systemctl daemon-reload
53 | rm -rf /etc/init.d/clash
54 | else
55 | #设为保守模式启动
56 | sed -i '/start_old=*/'d $clashdir/mark
57 | sed -i "1i\start_old=已开启" $clashdir/mark
58 | fi
59 | fi
60 | #修饰文件及版本号
61 | shtype=sh && [ -n "$(ls -l /bin/sh|grep -o dash)" ] && shtype=bash
62 | sed -i "s%#!/bin/sh%#!/bin/$shtype%g" $clashdir/start.sh
63 | chmod 777 $clashdir/start.sh
64 | sed -i '/versionsh_l=*/'d $clashdir/mark
65 | sed -i "1i\versionsh_l=$release_new" $clashdir/mark
66 | #设置环境变量
67 | sed -i '/alias clash=*/'d /etc/profile
68 | echo "alias clash=\"$shtype $clashdir/clash.sh\"" >> /etc/profile #设置快捷命令环境变量
69 | sed -i '/export clashdir=*/'d /etc/profile
70 | echo "export clashdir=\"$clashdir\"" >> /etc/profile #设置clash路径环境变量
71 | #删除临时文件
72 | rm -rf /tmp/clashfm.tar.gz
73 | rm -rf $clashdir/clashservice
74 | rm -rf $clashdir/clash.service
75 | }
76 | #下载及安装
77 | install(){
78 | echo -----------------------------------------------
79 | echo 开始从服务器获取安装文件!
80 | echo -----------------------------------------------
81 | gettar
82 | echo -----------------------------------------------
83 | echo ShellClash 已经安装成功!
84 | echo -----------------------------------------------
85 | $echo "\033[33m输入\033[30;47m clash \033[0;33m命令即可管理!!!\033[0m"
86 | echo -----------------------------------------------
87 | }
88 | setdir(){
89 | echo -----------------------------------------------
90 | $echo "\033[32m 1 在默认目录(/etc)安装"
91 | $echo "\033[33m 2 手动设置安装目录"
92 | $echo "\033[0m 0 退出安装"
93 | echo -----------------------------------------------
94 | read -p "请输入相应数字 > " num
95 | #设置目录
96 | if [ -z $num ];then
97 | echo 安装已取消
98 | exit;
99 | elif [ "$num" = "1" ];then
100 | dir=/etc
101 | elif [ "$num" = "2" ];then
102 | echo -----------------------------------------------
103 | echo '可用路径 剩余空间:'
104 | df -h | awk '{print $6,$2}'| sed 1d
105 | echo '路径是必须带 / 的格式,写入虚拟内存(/tmp,/sys,..)的文件会在重启后消失!!!'
106 | read -p "请输入自定义路径 > " dir
107 | if [ -z "$dir" ];then
108 | $echo "\033[31m路径错误!已取消安装!\033[0m"
109 | exit;
110 | fi
111 | else
112 | echo 安装已取消!!!
113 | exit;
114 | fi
115 | clashdir=$dir/clash
116 | install
117 | }
118 |
119 | #输出
120 | $echo "最新版本:\033[32m$release_new\033[0m"
121 | echo -----------------------------------------------
122 | $echo "\033[44m如遇问题请加TG群反馈:\033[42;30m t.me/clashfm \033[0m"
123 | $echo "\033[37m支持各种基于openwrt的路由器设备"
124 | $echo "\033[33m支持Debian、Centos等标准Linux系统\033[0m"
125 |
126 | if [ -n "$clashdir" ];then
127 | echo -----------------------------------------------
128 | $echo "检测到旧的安装目录\033[36m$clashdir\033[0m,是否覆盖安装?"
129 | $echo "\033[32m覆盖安装时不会移除配置文件!\033[0m"
130 | read -p "覆盖安装/卸载旧版本?(1/0) > " res
131 | if [ "$res" = "1" ];then
132 | install
133 | elif [ "$res" = "0" ];then
134 | rm -rf $clashdir
135 | echo -----------------------------------------------
136 | $echo "\033[31m 旧版本文件已卸载!\033[0m"
137 | setdir
138 | else
139 | $echo "\033[31m输入错误!已取消安装!\033[0m"
140 | exit;
141 | fi
142 | else
143 | setdir
144 | fi
145 |
--------------------------------------------------------------------------------
/scripts/clash.service:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=clash
3 | After=network.target
4 |
5 | [Service]
6 | Type=simple
7 | User=root
8 | ExecStart=/etc/clash/clash -d /etc/clash
9 | ExecStartPost=/etc/clash/start.sh afstart
10 | Restart=on-failure
11 | RestartSec=3s
12 |
13 |
14 | [Install]
15 | WantedBy=multi-user.target
--------------------------------------------------------------------------------
/scripts/clash.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # Copyright (C) Juewuy
3 |
4 | getconfig(){
5 | #系统类型
6 | if [ -f /bin/opkg ];then
7 | host=$(ubus call network.interface.lan status | grep \"address\" | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}';)
8 | else
9 | host=$(ip a|grep -w 'inet'|grep 'global'|grep -E '192.|10.'|sed 's/.*inet.//g'|sed 's/\/[0-9][0-9].*$//g'|head -n 1)
10 | [ -z "$host" ] && host=127.0.0.1
11 | fi
12 | #服务器地址
13 | [ -z "$update_url" ] && update_url=https://cdn.jsdelivr.net/gh/juewuy/ShellClash
14 | #文件路径
15 | [ -z "$clashdir" ] && clashdir=$(dirname $(readlink -f "$0")) && echo "export clashdir=\"$clashdir\"" >> /etc/profile
16 | ccfg=$clashdir/mark
17 | yaml=$clashdir/config.yaml
18 | #检查/读取标识文件
19 | [ ! -f $ccfg ]&& echo '#标识clash运行状态的文件,不明勿动!' >> $ccfg
20 | source $ccfg
21 | #检查mac地址记录
22 | [ ! -f $clashdir/mac ] && touch $clashdir/mac
23 | #开机自启相关
24 | if [ -f /etc/rc.common ];then
25 | if [ -n "$(find /etc/rc.d -name '*clash')" ];then
26 | autostart=enable_rc
27 | else
28 | autostart=disable_rc
29 | fi
30 | else
31 | if [ -n "$(systemctl list-unit-files clash.service 2>&1 | grep -o enable)" ];then
32 | autostart=enable_sys
33 | else
34 | autostart=disable_sys
35 | fi
36 | fi
37 | if [ "$start_old" = "已开启" ];then
38 | auto="\033[33m已设置保守模式!\033[0m"
39 | auto1="\033[36m设为\033[0m常规模式启动"
40 | elif [ "$autostart" = "enable_rc" -o "$autostart" = "enable_sys" ]; then
41 | auto="\033[32m已设置开机启动!\033[0m"
42 | auto1="\033[36m禁用\033[0mclash开机启动"
43 | else
44 | auto="\033[31m未设置开机启动!\033[0m"
45 | auto1="\033[36m允许\033[0mclash开机启动"
46 | fi
47 | #获取默认端口
48 | [ -z "$mix_port" ] && mix_port=7890
49 | [ -z "$redir_port" ] && redir_port=7892
50 | [ -z "$db_port" ] && db_port=9999
51 | [ -z "$dns_port" ] && dns_port=1053
52 | [ -z "$secret" ] && secret=未设置
53 | #获取运行模式
54 | if [ -z "$redir_mod" ];then
55 | sed -i "2i\redir_mod=Redir模式" $ccfg
56 | redir_mod=Redir模式
57 | fi
58 | #获取运行状态
59 | PID=$(pidof clash)
60 | if [ -n "$PID" ];then
61 | run="\033[32m正在运行($redir_mod)\033[0m"
62 | VmRSS=`cat /proc/$PID/status|grep -w VmRSS|awk '{print $2,$3}'`
63 | #获取运行时长
64 | if [ -n "$start_time" ]; then
65 | time=$((`date +%s`-start_time))
66 | day=$((time/86400))
67 | #day=$(expr $time / 86400)
68 | if [ "$day" = "0" ]; then
69 | day=""
70 | else
71 | day="$day""天"
72 | fi
73 | time=`date -u -d @${time} +%H小时%M分%S秒`
74 | fi
75 | else
76 | run="\033[31m没有运行($redir_mod)\033[0m"
77 | #检测系统端口占用
78 | checkport
79 | fi
80 | #输出状态
81 |
82 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
83 | echo -e "\033[30;46m欢迎使用ShellClash!\033[0m 版本:$versionsh_l"
84 | echo -e "Clash服务"$run","$auto""
85 | if [ -n "$PID" ];then
86 | echo -e "当前内存占用:\033[44m"$VmRSS"\033[0m,已运行:\033[46;30m"$day"\033[44;37m"$time"\033[0m"
87 | fi
88 | echo -e "TG群:\033[36;4mhttps://t.me/clashfm\033[0m"
89 | echo -----------------------------------------------
90 | #检查clash核心
91 | if [ ! -f $clashdir/clash ];then
92 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
93 | echo -e "\033[31m没有找到核心文件,请先下载clash核心!\033[0m"
94 | checkupdate
95 | source $clashdir/getdate.sh
96 | getcore
97 | fi
98 | #检查GeoIP数据库
99 | if [ ! -f $clashdir/Country.mmdb ];then
100 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
101 | echo -e "\033[31m没有找到GeoIP数据库文件,请下载数据库文件!\033[0m"
102 | checkupdate
103 | source $clashdir/getdate.sh
104 | getgeo
105 | fi
106 | #检查定时任务配置文件
107 | if [ -z "$cronpath" ];then
108 | [ -d /etc/crontabs/ ] && cronpath="/etc/crontabs/root"
109 | [ -d /var/spool/cron/ ] && cronpath="/var/spool/cron/root"
110 | [ -d /var/spool/cron/crontabs/ ] && cronpath="/var/spool/cron/crontabs/root"
111 | [ -d /etc/storage/cron/crontabs ] && cronpath="/etc/storage/cron/crontabs/admin"
112 | [ -n "$cronpath" ] && sed -i "1i\cronpath=\'$cronpath\'" $ccfg
113 | fi
114 | }
115 | start_over(){
116 | [ $? -eq 1 ] && exit
117 | echo -e "\033[32mclash服务已启动!\033[0m"
118 | if [ -d /www/clash ];then
119 | echo -e "请使用\033[30;47m http://$host/clash \033[0m管理内置规则"
120 | elif [ -d $clashdir/ui ];then
121 | echo -e "请使用\033[30;47m http://$host:$db_port/ui \033[0m管理内置规则"
122 | else
123 | echo -e "可使用\033[30;47m http://clash.razord.top \033[0m管理内置规则"
124 | echo -e "Host地址:\033[36m $host \033[0m 端口:\033[36m $db_port \033[0m"
125 | echo -e "也可前往更新菜单安装本地Dashboard面板,连接更稳定!\033[0m"
126 | fi
127 | echo -----------------------------------------------
128 | }
129 | setport(){
130 | inputport(){
131 | read -p "请输入端口号(1000-65535) > " portx
132 | if [ -z "$portx" ]; then
133 | setport
134 | elif [ $portx -gt 65535 -o $portx -le 999 ]; then
135 | echo -e "\033[31m输入错误!请输入正确的数值(1000-65535)!\033[0m"
136 | inputport
137 | elif [ -n "$(echo $mix_port$redir_port$dns_port$db_port|grep $portx)" ]; then
138 | echo -e "\033[31m输入错误!请不要输入重复的端口!\033[0m"
139 | inputport
140 | elif [ -n "$(netstat -ntul |grep :$portx)" ];then
141 | echo -e "\033[31m当前端口已被其他进程占用,请重新输入!\033[0m"
142 | inputport
143 | else
144 | sed -i "/$xport*/"d $ccfg
145 | sed -i "1i$xport=$portx" $ccfg
146 | echo -e "\033[32m设置成功!!!\033[0m"
147 | setport
148 | fi
149 | }
150 | source $ccfg
151 | if [ -n "$(pidof clash)" ];then
152 | echo -----------------------------------------------
153 | echo -e "\033[33m检测到clash服务正在运行,需要先停止clash服务!\033[0m"
154 | read -p "是否停止clash服务?(1/0) > " res
155 | if [ "$res" = "1" ];then
156 | $clashdir/start.sh stop
157 | else
158 | clashsh
159 | fi
160 | fi
161 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
162 | echo -e " 1 修改Http/Sock5端口:\033[36m$mix_port\033[0m"
163 | echo -e " 2 修改静态路由端口:\033[36m$redir_port\033[0m"
164 | echo -e " 3 修改DNS监听端口:\033[36m$dns_port\033[0m"
165 | echo -e " 4 修改面板访问端口:\033[36m$db_port\033[0m"
166 | echo -e " 5 修改面板访问密码:\033[36m$secret\033[0m"
167 | echo -e " 0 返回上级菜单"
168 | read -p "请输入对应数字 > " num
169 | if [ -z "$num" ]; then
170 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
171 | echo -e "\033[31m请输入正确的数字!\033[0m"
172 | elif [[ $num == 1 ]]; then
173 | xport=mix_port
174 | inputport
175 | elif [[ $num == 2 ]]; then
176 | xport=redir_port
177 | inputport
178 | elif [[ $num == 3 ]]; then
179 | xport=dns_port
180 | inputport
181 | elif [[ $num == 4 ]]; then
182 | xport=db_port
183 | inputport
184 | elif [[ $num == 5 ]]; then
185 | read -p "请输入面板访问密码 > " secret
186 | if [ -n "$secret" ]; then
187 | sed -i "/secret*/"d $ccfg
188 | sed -i "1i\secret=$secret" $ccfg
189 | echo -e "\033[32m设置成功!!!\033[0m"
190 | fi
191 | setport
192 | fi
193 | }
194 | checkport(){
195 | for portx in $dns_port $mix_port $redir_port $db_port ;do
196 | if [ -n "$(netstat -ntul 2>&1 |grep :$portx)" ];then
197 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
198 | echo -e "检测到端口【$portx】被以下进程占用!clash可能无法正常启动!\033[33m"
199 | echo $(netstat -ntulp | grep :$portx | head -n 1)
200 | echo -e "\033[0m~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
201 | echo -e "\033[36m请修改默认端口配置!\033[0m"
202 | setport
203 | source $ccfg
204 | checkport
205 | fi
206 | done
207 | }
208 | clashstart(){
209 | if [ ! -f "$yaml" ];then
210 | echo -----------------------------------------------
211 | echo -e "\033[31m没有找到配置文件,请先导入配置文件!\033[0m"
212 | clashlink
213 | fi
214 | if [ -n "$PID" ];then
215 | echo -----------------------------------------------
216 | $clashdir/start.sh stop
217 | echo -e "\033[31mClash服务已停止!\033[0m"
218 | fi
219 | echo -----------------------------------------------
220 | $clashdir/start.sh start
221 | sleep 1
222 | PID=$(pidof clash)
223 | if [ -z "$PID" ];then
224 | $clashdir/start.sh stop
225 | echo -e "\033[31mclash启动失败!\033[0m"
226 | exit
227 | fi
228 | start_over
229 | }
230 | clashlink(){
231 | #获取订阅规则
232 | if [ -z "$rule_link" ]; then
233 | sed -i "4i\rule_link=1" $ccfg
234 | rule_link=1
235 | fi
236 | #获取后端服务器地址
237 | if [ -z "$server_link" ]; then
238 | sed -i "5i\server_link=1" $ccfg
239 | server_link=1
240 | fi
241 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
242 | echo -e "\033[30;47m 欢迎使用导入配置文件功能!\033[0m"
243 | echo -----------------------------------------------
244 | echo -e " 1 在线导入\033[36m订阅\033[0m并生成Clash配置文件"
245 | echo -e " 2 在线导入\033[33mClash\033[0m配置文件"
246 | echo -e " 3 设置\033[31m节点过滤\033[0m关键字 \033[47;30m$exclude\033[0m"
247 | echo -e " 4 设置\033[32m节点筛选\033[0m关键字 \033[47;30m$include\033[0m"
248 | echo -e " 5 选取\033[33mClash配置规则\033[0m在线模版"
249 | echo -e " 6 选择在线生成服务器-subconverter"
250 | echo -e " 7 \033[36m还原\033[0m之前的配置文件"
251 | echo -e " 8 \033[33m手动更新\033[0m配置文件"
252 | echo -e " 9 设置\033[36m自动更新\033[0m配置文件"
253 | echo -----------------------------------------------
254 | echo -e " 0 返回上级菜单"
255 | read -p "请输入对应数字 > " num
256 | if [ -z "$num" ];then
257 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
258 | echo -e "\033[31m请输入正确的数字!\033[0m"
259 | clashsh
260 | elif [[ $num == 1 ]];then
261 | if [ -n "$Url" ];then
262 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
263 | echo -e "\033[33m检测到已记录的订阅链接:\033[0m"
264 | echo -e "\033[4;32m$Url\033[0m"
265 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
266 | read -p "清空链接/追加导入?[1/0] > " res
267 | if [ "$res" = '1' ]; then
268 | Url=""
269 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
270 | echo -e "\033[31m链接已清空!\033[0m"
271 | fi
272 | fi
273 | source $clashdir/getdate.sh
274 | getlink
275 |
276 | elif [[ $num == 2 ]];then
277 | if [ -n "$Url" ];then
278 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
279 | echo -e "\033[33m检测到已记录的订阅链接:\033[0m"
280 | echo -e "\033[4;32m$Url\033[0m"
281 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
282 | read -p "清空链接/追加导入?[1/0] > " res
283 | if [ "$res" = '1' ]; then
284 | Url=""
285 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
286 | echo -e "\033[31m链接已清空!\033[0m"
287 | fi
288 | fi
289 | source $clashdir/getdate.sh
290 | getlink2
291 |
292 | elif [[ $num == 3 ]];then
293 | source $clashdir/getdate.sh
294 | linkfilter
295 | clashlink
296 |
297 | elif [[ $num == 4 ]];then
298 | source $clashdir/getdate.sh
299 | linkfilter2
300 | clashlink
301 |
302 | elif [[ $num == 5 ]];then
303 | source $clashdir/getdate.sh
304 | linkconfig
305 | clashlink
306 |
307 | elif [[ $num == 6 ]];then
308 | source $clashdir/getdate.sh
309 | linkserver
310 | clashlink
311 |
312 | elif [[ $num == 7 ]];then
313 | yamlbak=$yaml.bak
314 | if [ ! -f "$yaml".bak ];then
315 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
316 | echo -e "\033[31m没有找到配置文件的备份!\033[0m"
317 | else
318 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
319 | echo -e 备份文件共有"\033[32m`wc -l < $yamlbak`\033[0m"行内容,当前文件共有"\033[32m`wc -l < $yaml`\033[0m"行内容
320 | read -p "确认还原配置文件?此操作不可逆![1/0] > " res
321 | if [ "$res" = '1' ]; then
322 | mv $yamlbak $yaml
323 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
324 | echo -e "\033[32m配置文件已还原!请手动重启clash服务!\033[0m"
325 | else
326 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
327 | echo -e "\033[31m操作已取消!返回上级菜单!\033[0m"
328 | fi
329 | fi
330 | clashsh
331 |
332 | elif [[ $num == 8 ]];then
333 | if [ -z "$Url" -a -z "$Https" ];then
334 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
335 | echo -e "\033[31m没有找到你的订阅链接!请先输入链接!\033[0m"
336 | sleep 2
337 | clashlink
338 | else
339 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
340 | echo -e "\033[33m当前系统记录的订阅链接为:\033[0m"
341 | echo -e "\033[4;32m$Url\033[0m"
342 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
343 | read -p "确认更新配置文件?[1/0] > " res
344 | if [ "$res" = '1' ]; then
345 | $clashdir/start.sh getyaml
346 | start_over
347 | exit;
348 | fi
349 | clashlink
350 | fi
351 |
352 | elif [[ $num == 9 ]];then
353 | clashcron
354 |
355 | elif [[ $num == 0 ]];then
356 | clashsh
357 | else
358 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
359 | echo -e "\033[31m请输入正确的数字!\033[0m"
360 | exit;
361 | fi
362 | }
363 | macfilter(){
364 | add_mac(){
365 | echo -----------------------------------------------
366 | echo -e "\033[33m序号 设备IP 设备mac地址 设备名称\033[32m"
367 | cat /tmp/dhcp.leases | awk '{print " "NR" "$3,$2,$4}'
368 | echo -e "\033[0m 0-----------------------------------------------"
369 | echo -e " 0 或回车 结束添加"
370 | read -p "请输入需要添加的设备的对应序号 > " num
371 | if [ -z "$num" ]||[ "$num" -le 0 ]; then
372 | macfilter
373 | elif [ $num -le $(cat /tmp/dhcp.leases | awk 'END{print NR}') ]; then
374 | macadd=$(cat /tmp/dhcp.leases | awk '{print $2}' | sed -n "$num"p)
375 | if [ -z "$(cat $clashdir/mac | grep -E "$macadd")" ];then
376 | echo $macadd >> $clashdir/mac
377 | echo -----------------------------------------------
378 | echo 已添加的mac地址:
379 | cat $clashdir/mac
380 | else
381 | echo -----------------------------------------------
382 | echo -e "\033[31m已添加的设备,请勿重复添加!\033[0m"
383 | fi
384 | else
385 | echo -----------------------------------------------
386 | echo -e "\033[31m输入有误,请重新输入!\033[0m"
387 | fi
388 | add_mac
389 | }
390 | del_mac(){
391 | echo -----------------------------------------------
392 | if [ -z "$(cat $clashdir/mac)" ];then
393 | echo -e "\033[31m列表中没有需要移除的设备!\033[0m"
394 | macfilter
395 | fi
396 | echo -e "\033[33m序号 设备IP 设备mac地址 设备名称\033[0m"
397 | i=1
398 | for mac in $(cat $clashdir/mac); do
399 | echo -e " $i \033[32m$(cat /tmp/dhcp.leases | awk '{print $3,$2,$4}' | grep $mac)\033[0m"
400 | i=$((i+1))
401 | done
402 | echo -----------------------------------------------
403 | echo -e "\033[0m 0 或回车 结束删除"
404 | read -p "请输入需要移除的设备的对应序号 > " num
405 | if [ -z "$num" ]||[ "$num" -le 0 ]; then
406 | macfilter
407 | elif [ $num -le $(cat $clashdir/mac | wc -l) ];then
408 | sed -i "${num}d" $clashdir/mac
409 | echo -----------------------------------------------
410 | echo -e "\033[32m对应设备已移除!\033[0m"
411 | else
412 | echo -----------------------------------------------
413 | echo -e "\033[31m输入有误,请重新输入!\033[0m"
414 | fi
415 | del_mac
416 | }
417 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
418 | echo -e "\033[30;47m请在此添加或移除设备\033[0m"
419 | if [ -n "$(cat $clashdir/mac)" ]; then
420 | echo -----------------------------------------------
421 | echo -e "当前已过滤设备为:\033[36m"
422 | echo -e "\033[33m 设备IP 设备mac地址 设备名称\033[0m"
423 | for mac in $(cat $clashdir/mac); do
424 | cat /tmp/dhcp.leases | awk '{print $3,$2,$4}' | grep $mac
425 | done
426 | echo -----------------------------------------------
427 | fi
428 | echo -e " 1 \033[31m清空整个列表\033[0m"
429 | echo -e " 2 \033[32m添加指定设备\033[0m"
430 | echo -e " 3 \033[33m移除指定设备\033[0m"
431 | echo -e " 4 \033[32m添加全部设备\033[0m(请搭配移除指定设备使用)"
432 | echo -e " 0 返回上级菜单"
433 | read -p "请输入对应数字 > " num
434 | if [ -z "$num" ]; then
435 | echo -----------------------------------------------
436 | echo -e "\033[31m请输入正确的数字!\033[0m"
437 | clashcfg
438 | elif [[ $num == 0 ]]; then
439 | clashcfg
440 | elif [[ $num == 1 ]]; then
441 | :>$clashdir/mac
442 | echo -----------------------------------------------
443 | echo -e "\033[31m设备列表已清空!\033[0m"
444 | macfilter
445 | elif [[ $num == 2 ]]; then
446 | add_mac
447 | elif [[ $num == 3 ]]; then
448 | del_mac
449 | elif [[ $num == 4 ]]; then
450 | echo -----------------------------------------------
451 | cat /tmp/dhcp.leases | awk '{print $2}' > $clashdir/mac
452 | echo -e "\033[32m已经将所有设备全部添加进过滤列表!\033[0m"
453 | echo -e "\033[33m请搭配【移除指定设备】功能使用!\033[0m"
454 | sleep 1
455 | macfilter
456 | else
457 | echo -----------------------------------------------
458 | echo -e "\033[31m请输入正确的数字!\033[0m"
459 | macfilter
460 | fi
461 | }
462 | clashcfg(){
463 | #获取设置默认显示
464 | [ -z "$skip_cert" ] && skip_cert=已开启
465 | [ -z "$common_ports" ] && common_ports=已开启
466 | [ -z "$dns_mod" ] && dns_mod=redir_host
467 | [ -z "$dns_over" ] && dns_over=已开启
468 | if [ -z "$(cat $clashdir/mac)" ]; then
469 | mac_return=未开启
470 | else
471 | mac_return=已启用
472 | fi
473 | #
474 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
475 | echo -e "\033[30;47m欢迎使用功能设置菜单:\033[0m"
476 | echo -e "\033[32m修改配置后请手动重启clash服务!\033[0m"
477 | echo -----------------------------------------------
478 | echo -e " 1 切换Clash运行模式: \033[36m$redir_mod\033[0m"
479 | echo -e " 2 切换DNS运行模式: \033[36m$dns_mod\033[0m"
480 | echo -e " 3 跳过本地证书验证: \033[36m$skip_cert\033[0m ————解决节点证书验证错误"
481 | echo -e " 4 只代理常用端口: \033[36m$common_ports\033[0m ————用于屏蔽P2P流量"
482 | echo -e " 5 过滤局域网mac地址: \033[36m$mac_return\033[0m ————列表内设备不走代理"
483 | echo -e " 6 不使用本地DNS服务: \033[36m$dns_over\033[0m ————防止redir-host模式的dns污染"
484 | echo -----------------------------------------------
485 | echo -e " 9 \033[32m重启\033[0mclash服务"
486 | echo -e " 0 返回上级菜单 \033[0m"
487 | echo -----------------------------------------------
488 | read -p "请输入对应数字 > " num
489 | if [[ $num -le 9 ]] > /dev/null 2>&1; then
490 | if [[ $num == 0 ]]; then
491 | clashsh
492 | elif [[ $num == 1 ]]; then
493 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
494 | echo -e "当前代理模式为:\033[47;30m $redir_mod \033[0m;Clash核心为:\033[47;30m $clashcore \033[0m"
495 | echo -e "\033[33m切换模式后需要手动重启clash服务以生效!\033[0m"
496 | echo -e "\033[36mTun及混合模式必须使用clashpre核心!\033[0m"
497 | echo -----------------------------------------------
498 | echo " 1 Redir模式:CPU以及内存占用较低"
499 | echo " 但不支持UDP流量转发"
500 | echo " 适合非游戏用户使用"
501 | echo " 2 Tun模式: 支持UDP转发且延迟最低"
502 | echo " CPU占用极高,只支持fake-ip模式"
503 | echo " 适合游戏用户、非大流量用户"
504 | echo " 3 混合模式: 使用redir转发TCP,Tun转发UPD"
505 | echo " 速度较快,内存占用略高"
506 | echo " 适合游戏用户、综合用户"
507 | echo " 4 纯净模式: 不设置iptables静态路由"
508 | echo " 必须手动配置http/sock5代理"
509 | echo " 0 返回上级菜单"
510 | read -p "请输入对应数字 > " num
511 | if [ -z "$num" ]; then
512 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
513 | echo -e "\033[31m请输入正确的数字!\033[0m"
514 | clashcfg
515 | elif [[ $num == 0 ]]; then
516 | clashcfg
517 | elif [[ $num == 1 ]]; then
518 | redir_mod=Redir模式
519 | elif [[ $num == 2 ]]; then
520 | if [ "$clashcore" = "clash" ] || [ "$clashcore" = "clashr" ];then
521 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
522 | echo -e "\033[31m当前核心不支持开启Tun模式!请先切换clash核心!!!\033[0m"
523 | clashcfg
524 | fi
525 | redir_mod=Tun模式
526 | dns_mod=fake-ip
527 | elif [[ $num == 3 ]]; then
528 | if [ "$clashcore" = "clash" ] || [ "$clashcore" = "clashr" ];then
529 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
530 | echo -e "\033[31m当前核心不支持开启Tun模式!请先切换clash核心!!!\033[0m"
531 | clashcfg
532 | fi
533 | redir_mod=混合模式
534 | elif [[ $num == 4 ]]; then
535 | redir_mod=纯净模式
536 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
537 | echo -e "\033[32m已经设置为纯净模式!\033[0m"
538 | echo -e "\033[33m当前模式必须手动在设备WiFi或应用中配置HTTP或sock5代理\033[0m"
539 | echo -e "HTTP/SOCK5代理服务器地址:\033[30;47m$host\033[0m;端口均为:\033[30;47m$mix_port\033[0m"
540 | echo -e "\033[31m也可以使用PAC自动代理文件,具体使用方法请自行搜索\033[0m"
541 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
542 | read -p "是否配置自动代理PAC文件(1/0) > " res
543 | if [ "$res" = 1 ]; then
544 | source $clashdir/getdate.sh && catpac
545 | fi
546 | else
547 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
548 | echo -e "\033[31m请输入正确的数字!\033[0m"
549 | clashcfg
550 | fi
551 | sed -i '/redir_mod*/'d $ccfg
552 | sed -i "1i\redir_mod=$redir_mod" $ccfg
553 | sed -i '/dns_mod*/'d $ccfg
554 | sed -i "1i\dns_mod=$dns_mod" $ccfg
555 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
556 | echo -e "\033[36m已设为 $redir_mod !!\033[0m"
557 | clashcfg
558 |
559 | elif [[ $num == 2 ]]; then
560 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
561 | echo -e "当前DNS运行模式为:\033[47;30m $dns_mod \033[0m"
562 | echo -e "\033[33m切换模式后需要手动重启clash服务以生效!\033[0m"
563 | echo -----------------------------------------------
564 | echo " 1 fake-ip模式: 响应速度更快"
565 | echo " 可能与某些局域网设备有冲突"
566 | echo " 2 redir_host模式:兼容性更好"
567 | echo " 不支持Tun模式,可能存在DNS污染"
568 | echo " 0 返回上级菜单"
569 | read -p "请输入对应数字 > " num
570 | if [ -z "$num" ]; then
571 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
572 | echo -e "\033[31m请输入正确的数字!\033[0m"
573 | clashcfg
574 | elif [[ $num == 0 ]]; then
575 | clashcfg
576 | elif [[ $num == 1 ]]; then
577 | dns_mod=fake-ip
578 | elif [[ $num == 2 ]]; then
579 | dns_mod=redir_host
580 | redir_mod=Redir模式
581 | else
582 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
583 | echo -e "\033[31m请输入正确的数字!\033[0m"
584 | clashcfg
585 | fi
586 | sed -i '/dns_mod*/'d $ccfg
587 | sed -i "1i\dns_mod=$dns_mod" $ccfg
588 | sed -i '/redir_mod*/'d $ccfg
589 | sed -i "1i\redir_mod=$redir_mod" $ccfg
590 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
591 | echo -e "\033[36m已设为 $dns_mod 模式!!\033[0m"
592 | clashcfg
593 |
594 | elif [[ $num == 3 ]]; then
595 | sed -i '/skip_cert*/'d $ccfg
596 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
597 | if [ "$skip_cert" = "未开启" ] > /dev/null 2>&1; then
598 | sed -i "1i\skip_cert=已开启" $ccfg
599 | echo -e "\033[33m已设为开启跳过本地证书验证!!\033[0m"
600 | skip_cert=已开启
601 | else
602 | sed -i "1i\skip_cert=未开启" $ccfg
603 | echo -e "\033[33m已设为禁止跳过本地证书验证!!\033[0m"
604 | skip_cert=未开启
605 | fi
606 | clashcfg
607 |
608 | elif [[ $num == 4 ]]; then
609 | sed -i '/common_ports*/'d $ccfg
610 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
611 | if [ "$common_ports" = "未开启" ] > /dev/null 2>&1; then
612 | sed -i "1i\common_ports=已开启" $ccfg
613 | echo -e "\033[33m已设为仅代理(22,53,587,465,995,993,143,80,443)等常用端口!!\033[0m"
614 | common_ports=已开启
615 | else
616 | sed -i "1i\common_ports=未开启" $ccfg
617 | echo -e "\033[33m已设为代理全部端口!!\033[0m"
618 | common_ports=未开启
619 | fi
620 | clashcfg
621 |
622 | elif [[ $num == 5 ]]; then
623 | macfilter
624 |
625 | elif [[ $num == 6 ]]; then
626 | sed -i '/dns_over*/'d $ccfg
627 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
628 | if [ "$dns_over" = "未开启" ] > /dev/null 2>&1; then
629 | sed -i "1i\dns_over=已开启" $ccfg
630 | echo -e "\033[33m已设置DNS为不走本地dnsmasq服务器!\033[0m"
631 | echo -e "可能会对浏览速度产生一定影响,介意勿用!"
632 | dns_over=已开启
633 | else
634 | /etc/init.d/clash enable
635 | sed -i "1i\dns_over=未开启" $ccfg
636 | echo -e "\033[32m已设置DNS通过本地dnsmasq服务器!\033[0m"
637 | echo -e "redir-host模式下部分网站可能会被运营商dns污染导致无法打开"
638 | dns_over=未开启
639 | fi
640 | clashcfg
641 |
642 | elif [[ $num == 9 ]]; then
643 | clashstart
644 | clashsh
645 | else
646 | echo -e "\033[31m暂未支持的选项!\033[0m"
647 | clashcfg
648 | fi
649 | else
650 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
651 | echo -e "\033[31m请输入正确的数字!\033[0m"
652 | clashsh
653 | fi
654 | exit;
655 | }
656 | clashadv(){
657 | #获取设置默认显示
658 | [ -z "$modify_yaml" ] && modify_yaml=未开启
659 | [ -z "$ipv6_support" ] && ipv6_support=未开启
660 | [ -z "$start_old" ] && start_old=未开启
661 | [ -z "$local_proxy" ] && local_proxy=未开启
662 | #
663 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
664 | echo -e "\033[30;47m欢迎使用进阶模式菜单:\033[0m"
665 | echo -e "\033[33m如您不是很了解clash的运行机制,请勿更改!\033[0m"
666 | echo -e "\033[32m修改配置后请手动重启clash服务!\033[0m"
667 | echo -----------------------------------------------
668 | echo -e " 1 不修饰config.yaml: \033[36m$modify_yaml\033[0m ————用于使用自定义配置"
669 | echo -e " 2 启用ipv6支持: \033[36m$ipv6_support\033[0m ————实验性功能,可能不可用"
670 | echo -e " 3 使用保守方式启动: \033[36m$start_old\033[0m ————切换时会停止clash服务"
671 | echo -e " 4 代理本机流量: \033[36m$local_proxy\033[0m ————配置本机代理环境变量"
672 | echo -e " 5 手动指定clash运行端口"
673 | echo -----------------------------------------------
674 | echo -e " 8 \033[31m重置\033[0m配置文件"
675 | echo -e " 9 \033[32m重启\033[0mclash服务"
676 | echo -e " 0 返回上级菜单 \033[0m"
677 | echo -----------------------------------------------
678 | read -p "请输入对应数字 > " num
679 | if [[ $num -le 9 ]] > /dev/null 2>&1; then
680 | if [[ $num == 0 ]]; then
681 | clashsh
682 |
683 | elif [[ $num == 1 ]]; then
684 | sed -i '/modify_yaml*/'d $ccfg
685 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
686 | if [ "$modify_yaml" = "未开启" ] > /dev/null 2>&1; then
687 | sed -i "1i\modify_yaml=已开启" $ccfg
688 | echo -e "\033[33m已设为使用用户完全自定义的配置文件!!"
689 | echo -e "\033[36m不明白原理的用户切勿随意开启此选项"
690 | echo -e "\033[31m!!!必然会导致上不了网!!!\033[0m"
691 | modify_yaml=已开启
692 | sleep 3
693 | else
694 | sed -i "1i\modify_yaml=未开启" $ccfg
695 | echo -e "\033[32m已设为使用脚本内置规则管理config.yaml配置文件!!\033[0m"
696 | modify_yaml=未开启
697 | fi
698 | clashadv
699 |
700 | elif [[ $num == 2 ]]; then
701 | sed -i '/ipv6_support*/'d $ccfg
702 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
703 | if [ "$ipv6_support" = "未开启" ] > /dev/null 2>&1; then
704 | sed -i "1i\ipv6_support=已开启" $ccfg
705 | echo -e "\033[33m已开启对ipv6协议的支持!!\033[0m"
706 | echo -e "Clash对ipv6的支持并不友好,如不能使用请静等修复!"
707 | ipv6_support=已开启
708 | sleep 2
709 | else
710 | sed -i "1i\ipv6_support=未开启" $ccfg
711 | echo -e "\033[32m已禁用对ipv6协议的支持!!\033[0m"
712 | ipv6_support=未开启
713 | fi
714 | clashadv
715 |
716 | elif [[ $num == 3 ]]; then
717 | sed -i '/start_old*/'d $ccfg
718 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
719 | if [ "$start_old" = "未开启" ] > /dev/null 2>&1; then
720 | sed -i "1i\start_old=已开启" $ccfg
721 | echo -e "\033[33m改为使用保守方式启动clash服务!!\033[0m"
722 | echo -e "\033[36m此模式兼容性更好但无法禁用开机启动!!\033[0m"
723 | start_old=已开启
724 | $clashdir/start.sh stop
725 | sleep 2
726 | else
727 | sed -i "1i\start_old=未开启" $ccfg
728 | echo -e "\033[32m改为使用默认方式启动clash服务!!\033[0m"
729 | start_old=未开启
730 | $clashdir/start.sh stop
731 | fi
732 | clashadv
733 |
734 | elif [[ $num == 4 ]]; then
735 | sed -i '/local_proxy*/'d $ccfg
736 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
737 | if [ "$local_proxy" = "未开启" ] > /dev/null 2>&1; then
738 | sed -i "1i\local_proxy=已开启" $ccfg
739 | local_proxy=已开启
740 | $clashdir/start.sh set_proxy $mix_port
741 | echo -e "\033[32m已经将代理参数写入环境变量~\033[0m"
742 | echo -e "\033[36m如未生效,请重新启动终端或重新连接SSH!\033[0m"
743 | else
744 | sed -i "1i\local_proxy=未开启" $ccfg
745 | local_proxy=未开启
746 | $clashdir/start.sh unset_proxy
747 | echo -e "\033[33m已经将代理参数从环境变量移除!!\033[0m"
748 | fi
749 | sleep 1
750 | clashadv
751 | elif [[ $num == 5 ]]; then
752 | setport
753 | clashadv
754 |
755 | elif [[ $num == 8 ]]; then
756 | read -p "确认重置配置文件?(1/0) > " res
757 | if [ "$res" = "1" ];then
758 | echo "versionsh_l=$versionsh_l" > $ccfg
759 | echo "start_time=$start_time" >> $ccfg
760 | echo "#标识clash运行状态的文件,不明勿动!" >> $ccfg
761 | echo -e "\033[33m配置文件已重置,请重新运行脚本!\033[0m"
762 | exit
763 | fi
764 | clashadv
765 |
766 | elif [[ $num == 9 ]]; then
767 | clashstart
768 | clashsh
769 | else
770 | echo -e "\033[31m暂未支持的选项!\033[0m"
771 | clashsh
772 | fi
773 | else
774 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
775 | echo -e "\033[31m请输入正确的数字!\033[0m"
776 | clashsh
777 | fi
778 | exit;
779 | }
780 | checkupdate(){
781 | if [ -z "$release_new" ];then
782 | if [ "$update_url" = "https://cdn.jsdelivr.net/gh/juewuy/ShellClash" ];then
783 | release_new=$(curl -kfsSL --resolve api.github.com:443:140.82.113.5 --connect-timeout 5 -m 5 "https://api.github.com/repos/juewuy/ShellClash/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g')
784 | update_url=$update_url@$release_new
785 | fi
786 | curl -skL --connect-timeout 5 -m 5 $update_url/bin/version > /tmp/clashversion
787 | source /tmp/clashversion
788 | [ -z "$release_new" ] && release_new=$versionsh
789 | fi
790 | }
791 | update(){
792 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
793 | echo -e "\033[33m正在检查更新!\033[0m"
794 | checkupdate
795 | [ "$clashcore" = "clash" ] && clash_n=$clash_v || clash_n=$clashpre_v
796 | echo -e "\033[30;47m欢迎使用更新功能:\033[0m"
797 | echo -----------------------------------------------
798 | echo -e " 1 更新\033[36m管理脚本 \033[33m$versionsh_l\033[0m > \033[32m$versionsh\033[0m"
799 | echo -e " 2 切换\033[33mclash核心 \033[33m$clashv\033[0m > \033[32m$clash_n\033[0m"
800 | echo -e " 3 更新\033[32mGeoIP数据库 \033[33m$Geo_v\033[0m > \033[32m$GeoIP_v\033[0m"
801 | echo -e " 4 安装本地\033[35mDashboard\033[0m面板"
802 | echo -e " 5 生成本地PAC文件(需先安装本地面板)"
803 | echo -----------------------------------------------
804 | echo -e " 7 切换\033[36m安装源\033[0m地址"
805 | echo -e " 8 鸣谢"
806 | echo -e " 9 \033[31m卸载\033[34mShellClash\033[0m"
807 | echo -e " 0 返回上级菜单"
808 | echo -----------------------------------------------
809 | read -p "请输入对应数字 > " num
810 | if [[ $num -le 9 ]] > /dev/null 2>&1; then
811 | if [[ $num == 0 ]]; then
812 | clashsh
813 |
814 | elif [[ $num == 1 ]]; then
815 | source $clashdir/getdate.sh
816 | getsh
817 |
818 | elif [[ $num == 2 ]]; then
819 | source $clashdir/getdate.sh
820 | getcore
821 |
822 | elif [[ $num == 3 ]]; then
823 | source $clashdir/getdate.sh
824 | getgeo
825 | update
826 |
827 | elif [[ $num == 4 ]]; then
828 | source $clashdir/getdate.sh
829 | getdb
830 |
831 | elif [[ $num == 5 ]]; then
832 | source $clashdir/getdate.sh
833 | catpac
834 | update
835 |
836 | elif [[ $num == 7 ]]; then
837 | source $clashdir/getdate.sh
838 | setserver
839 |
840 | elif [[ $num == 8 ]]; then
841 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
842 | echo -e "感谢:\033[32mClash \033[0m作者\033[36m Dreamacro\033[0m 项目地址:\033[32mhttps://github.com/Dreamacro/clash\033[0m"
843 | echo -e "感谢:\033[32msubconverter \033[0m作者\033[36m tindy2013\033[0m 项目地址:\033[32mhttps://github.com/tindy2013/subconverter\033[0m"
844 | echo -e "感谢:\033[32malecthw提供的GeoIP数据库\033[0m 项目地址:\033[32mhttps://github.com/alecthw/mmdb_china_ip_list\033[0m"
845 | echo -e "感谢:\033[32m更多的帮助过我的人!\033[0m"
846 | update
847 |
848 | elif [[ $num == 9 ]]; then
849 | read -p "确认卸载ShellClash?(警告:该操作不可逆!)[1/0] " res
850 | if [ "$res" = '1' ]; then
851 | $clashdir/start.sh stop
852 | rm -rf $clashdir
853 | rm -rf /etc/init.d/clash
854 | rm -rf /etc/systemd/system/clash.service
855 | rm -rf /usr/lib/systemd/system/clash.service
856 | rm -rf /www/clash
857 | sed -i '/alias clash=*/'d /etc/profile
858 | sed -i '/export clashdir=*/'d /etc/profile
859 | sed -i '/http*_proxy/'d /etc/profile
860 | sed -i '/HTTP*_PROXY/'d /etc/profile
861 | source /etc/profile > /dev/null 2>&1
862 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
863 | echo 已卸载ShellClash相关文件!有缘再会!
864 | exit
865 | fi
866 | echo -e "\033[31m操作已取消!\033[0m"
867 | exit;
868 | else
869 | echo -e "\033[31m暂未支持的选项!\033[0m"
870 | update
871 | fi
872 | else
873 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
874 | echo -e "\033[31m请输入正确的数字!\033[0m"
875 | clashsh
876 | fi
877 | exit;
878 | }
879 | clashcron(){
880 |
881 | setcron(){
882 | echo -----------------------------------------------
883 | echo -e " 正在设置:\033[32m$cronname\033[0m定时任务"
884 | echo -e " 输入 1-7 对应\033[33m每周相应天\033[0m运行"
885 | echo -e " 输入 8 设为\033[33m每天定时\033[0m运行"
886 | echo -e " 输入 1,3,6 代表\033[36m每周1,3,6\033[0m运行(注意用小写逗号分隔)"
887 | echo -----------------------------------------------
888 | echo -e " 输入 9 \033[31m删除定时任务\033[0m"
889 | echo -e " 输入 0 返回上级菜单"
890 | echo -----------------------------------------------
891 | read -p "请输入对应数字 > " num
892 | if [ -z "$num" ]; then
893 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
894 | echo -e "\033[31m请输入正确的数字!\033[0m"
895 | clashcron
896 | elif [[ $num == 0 ]]; then
897 | clashcron
898 | elif [[ $num == 9 ]]; then
899 | sed -i /$cronname/d $cronpath
900 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
901 | echo -e "\033[31m定时任务:$cronname已删除!\033[0m"
902 | clashcron
903 | elif [[ $num == 8 ]]; then
904 | week='*'
905 | week1=每天
906 | echo 已设为每天定时运行!
907 | else
908 | week=$num
909 | week1=每周$week
910 | echo 已设为每周 $num 运行!
911 | fi
912 | #设置具体时间
913 | echo -----------------------------------------------
914 | read -p "请输入小时(0-23) > " num
915 | if [ -z "$num" ]; then
916 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
917 | echo -e "\033[31m请输入正确的数字!\033[0m"
918 | setcron
919 | elif [ $num -gt 23 ] || [ $num -lt 0 ]; then
920 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
921 | echo -e "\033[31m请输入正确的数字!\033[0m"
922 | setcron
923 | else
924 | hour=$num
925 | fi
926 | echo -----------------------------------------------
927 | read -p "请输入分钟(0-60) > " num
928 | if [ -z "$num" ]; then
929 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
930 | echo -e "\033[31m请输入正确的数字!\033[0m"
931 | setcron
932 | elif [ $num -gt 60 ] || [ $num -lt 0 ]; then
933 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
934 | echo -e "\033[31m请输入正确的数字!\033[0m"
935 | setcron
936 | else
937 | min=$num
938 | fi
939 | echo -----------------------------------------------
940 | echo 将在$week1的$hour点$min分$cronname(旧的任务会被覆盖)
941 | read -p "是否确认添加定时任务?(1/0) > " res
942 | if [ "$res" = '1' ]; then
943 | sed -i /$cronname/d $cronpath
944 | echo "$min $hour * * $week $cronset >/dev/null 2>&1 #$week1的$hour点$min分$cronname" >> $cronpath
945 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
946 | echo -e "\033[31m定时任务已添加!!!\033[0m"
947 | chmod 600 $cronpath #修改权限
948 | fi
949 | clashcron
950 | }
951 | checkcron(){
952 | if [ -z "$cronpath" ];then
953 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
954 | echo -e "\033[33m找不到定时任务配置文件,无法添加添加定时任务!"
955 | echo -e "\033[0m请手动指定定时任务配置文件,文件位置可以通过【crontab -e】命令查看\033[0m"
956 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
957 | read -p "请输入crontab文件路径(输入回车返回主菜单) > " path
958 | if [ -z "$path" ];then
959 | clashsh
960 | elif [ -f $path ];then
961 | cronpath=$path
962 | sed -i '/cronpath*/'d $ccfg
963 | sed -i "1i\cronpath=\'$cronpath\'" $ccfg
964 | else
965 | echo -e "\033[33m输入的路径不正确,请重新输入!\033[0m"
966 | checkcron
967 | fi
968 | fi
969 | }
970 | #定时任务菜单
971 | checkcron #检测定时任务文件
972 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
973 | echo -e "\033[30;47m欢迎使用定时任务功能:\033[0m"
974 | echo -e "\033[44m 实验性功能,遇问题请加TG群反馈:\033[42;30m t.me/clashfm \033[0m"
975 | echo -----------------------------------------------
976 | echo -e "\033[33m已添加的定时任务:\033[36m"
977 | cat $cronpath | grep -oE ' #.*'
978 | echo -e "\033[0m"-----------------------------------------------
979 | echo -e " 1 设置\033[33m定时重启\033[0mclash服务"
980 | echo -e " 2 设置\033[31m定时停止\033[0mclash服务"
981 | echo -e " 3 设置\033[32m定时开启\033[0mclash服务"
982 | echo -e " 4 设置\033[33m定时更新\033[0m订阅并重启服务"
983 | echo -----------------------------------------------
984 | echo -e " 0 返回上级菜单"
985 | read -p "请输入对应数字 > " num
986 | if [ -z "$num" ]; then
987 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
988 | echo -e "\033[31m请输入正确的数字!\033[0m"
989 | clashsh
990 |
991 | elif [[ $num == 0 ]]; then
992 | clashsh
993 |
994 | elif [[ $num == 1 ]]; then
995 | cronname=重启clash服务
996 | cronset="$clashdir/start.sh restart"
997 | setcron
998 | elif [[ $num == 2 ]]; then
999 | cronname=停止clash服务
1000 | cronset="$clashdir/start.sh stop"
1001 | setcron
1002 | elif [[ $num == 3 ]]; then
1003 | cronname=开启clash服务
1004 | cronset="$clashdir/start.sh start"
1005 | setcron
1006 | elif [[ $num == 4 ]]; then
1007 | cronname=更新订阅链接
1008 | cronset="$clashdir/start.sh getyaml"
1009 | setcron
1010 |
1011 | else
1012 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1013 | echo -e "\033[31m请输入正确的数字!\033[0m"
1014 | clashsh
1015 | fi
1016 | }
1017 | clashsh(){
1018 | #############################
1019 | getconfig
1020 | #############################
1021 | echo -e " 1 \033[32m启动/重启\033[0mclash服务"
1022 | echo -e " 2 clash\033[33m功能设置\033[0m"
1023 | echo -e " 3 \033[31m停止\033[0mclash服务"
1024 | echo -e " 4 $auto1"
1025 | echo -e " 5 设置\033[33m定时任务\033[0m$cronoff"
1026 | echo -e " 6 导入\033[32m配置文件\033[0m"
1027 | echo -e " 7 clash\033[31m进阶设置\033[0m"
1028 | echo -e " 8 \033[35m测试菜单\033[0m"
1029 | echo -e " 9 \033[36m更新/卸载\033[0m"
1030 | echo -----------------------------------------------
1031 | echo -e " 0 \033[0m退出脚本\033[0m"
1032 | read -p "请输入对应数字 > " num
1033 | if [[ $num -le 9 ]] > /dev/null 2>&1; then
1034 | if [[ $num == 0 ]]; then
1035 | exit;
1036 |
1037 | elif [[ $num == 1 ]]; then
1038 |
1039 | clashstart
1040 | exit;
1041 |
1042 | elif [[ $num == 2 ]]; then
1043 | clashcfg
1044 |
1045 | elif [[ $num == 3 ]]; then
1046 | $clashdir/start.sh stop
1047 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1048 | echo -e "\033[31mClash服务已停止!\033[0m"
1049 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1050 | exit;
1051 |
1052 | elif [[ $num == 4 ]]; then
1053 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1054 | if [ "$start_old" = "已开启" ];then
1055 | sed -i "/start_old*/d" $ccfg
1056 | sed -i "1i\start_old=未开启" $ccfg
1057 | echo -e "\033[32m已设为使用默认方式启动clash服务!!\033[0m"
1058 | start_old=未开启
1059 | elif [ "$autostart" = "enable_rc" ]; then
1060 | /etc/init.d/clash disable
1061 | echo -e "\033[33m已禁止Clash开机启动!\033[0m"
1062 | elif [ "$autostart" = "disable_rc" ]; then
1063 | /etc/init.d/clash enable
1064 | echo -e "\033[32m已设置Clash开机启动!\033[0m"
1065 | elif [ "$autostart" = "enable_sys" ]; then
1066 | systemctl disable clash.service > /dev/null 2>&1
1067 | echo -e "\033[33m已禁止Clash开机启动!\033[0m"
1068 | elif [ "$autostart" = "disable_sys" ]; then
1069 | systemctl enable clash.service > /dev/null 2>&1
1070 | echo -e "\033[32m已设置Clash开机启动!\033[0m"
1071 | else
1072 | echo -e "\033[32m当前系统不支持设置开启启动!\033[0m"
1073 | fi
1074 | clashsh
1075 |
1076 | elif [[ $num == 5 ]]; then
1077 | clashcron
1078 |
1079 | elif [[ $num == 6 ]]; then
1080 | clashlink
1081 |
1082 | elif [[ $num == 7 ]]; then
1083 | clashadv
1084 |
1085 | elif [[ $num == 8 ]]; then
1086 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1087 | echo -e "\033[30;47m这里是测试命令菜单\033[0m"
1088 | echo -e "\033[33m如遇问题尽量运行相应命令后截图发群\033[0m"
1089 | echo -e "磁盘占用/所在目录:"
1090 | du -h $clashdir
1091 | echo -----------------------------------------------
1092 | echo " 1 查看clash运行时的报错信息"
1093 | echo " 2 查看系统DNS端口(:53)占用 "
1094 | echo " 3 测试ssl加密(aes-128-gcm)跑分"
1095 | echo " 4 查看iptables端口转发详情"
1096 | echo " 5 查看config.yaml前40行"
1097 | echo " 6 测试代理服务器连通性(google.tw)"
1098 | echo -----------------------------------------------
1099 | echo " 0 返回上级目录!"
1100 | read -p "请输入对应数字 > " num
1101 | if [ -z "$num" ]; then
1102 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1103 | echo -e "\033[31m请输入正确的数字!\033[0m"
1104 | clashsh
1105 | elif [[ $num == 0 ]]; then
1106 | clashsh
1107 | elif [[ $num == 1 ]]; then
1108 | $clashdir/start.sh stop
1109 | echo -----------------------------------------------
1110 | $clashdir/clash -t -d $clashdir
1111 | echo -----------------------------------------------
1112 | echo -e "\033[31m如有报错请截图后到TG群询问!!!\033[0m"
1113 | exit;
1114 | elif [[ $num == 2 ]]; then
1115 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1116 | netstat -ntulp |grep 53
1117 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1118 | echo -e "可以使用\033[44m netstat -ntulp |grep xxx \033[0m来查询任意(xxx)端口"
1119 | exit;
1120 | elif [[ $num == 3 ]]; then
1121 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1122 | openssl speed -multi 4 -evp aes-128-gcm
1123 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1124 | exit;
1125 | elif [[ $num == 4 ]]; then
1126 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1127 | iptables -t nat -L PREROUTING --line-numbers
1128 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1129 | iptables -t nat -L clash --line-numbers
1130 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1131 | iptables -t nat -L clash_dns --line-numbers
1132 | exit;
1133 | elif [[ $num == 5 ]]; then
1134 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1135 | sed -n '1,40p' $yaml
1136 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1137 | exit;
1138 | elif [[ $num == 6 ]]; then
1139 | echo 注意:测试结果不保证一定准确!
1140 | delay=`curl -kx 127.0.0.1:$mix_port -o /dev/null -s -w '%{time_starttransfer}' 'https://google.tw' & { sleep 3 ; kill $! & }` > /dev/null 2>&1
1141 | delay=`echo |awk "{print $delay*1000}"` > /dev/null 2>&1
1142 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1143 | if [ `echo ${#delay}` -gt 1 ];then
1144 | echo -e "\033[32m连接成功!响应时间为:"$delay" ms\033[0m"
1145 | else
1146 | echo -e "\033[31m连接超时!请重试或检查节点配置!\033[0m"
1147 | fi
1148 | clashsh
1149 | else
1150 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1151 | echo -e "\033[31m请输入正确的数字!\033[0m"
1152 | clashsh
1153 | fi
1154 |
1155 | elif [[ $num == 9 ]]; then
1156 | update
1157 |
1158 | else
1159 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1160 | echo -e "\033[31m请输入正确的数字!\033[0m"
1161 | fi
1162 | exit 1
1163 | else
1164 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1165 | echo -e "\033[31m请输入正确的数字!\033[0m"
1166 | fi
1167 | exit 1
1168 | }
1169 |
1170 | [ -z "$1" ] && clashsh
1171 |
1172 | case "$1" in
1173 | -h)
1174 | echo -----------------------------------------
1175 | echo "欢迎使用ShellClash"
1176 | echo -----------------------------------------
1177 | echo " -t 测试模式"
1178 | echo " -h 帮助列表"
1179 | echo -----------------------------------------
1180 | echo "在线求助:t.me/clashfm"
1181 | echo "官方博客:juewuy.github.io"
1182 | echo "发布页面:github.com/juewuy/ShellClash"
1183 | echo -----------------------------------------
1184 | ;;
1185 | -t)
1186 | shtype=sh && [ -n "$(ls -l /bin/sh|grep -o dash)" ] && shtype=bash
1187 | $shtype -x $clashdir/clash.sh
1188 | ;;
1189 | esac
1190 |
--------------------------------------------------------------------------------
/scripts/clashservice:
--------------------------------------------------------------------------------
1 | #!/bin/sh /etc/rc.common
2 |
3 | START=92
4 |
5 | SERVICE_DAEMONIZE=1
6 | SERVICE_WRITE_PID=1
7 | USE_PROCD=1
8 | DIR=$(cat /etc/profile|grep clashdir|awk -F "\"" '{print $2}')
9 |
10 | start_service() {
11 | #使用procd创建clash后台进程
12 | procd_open_instance
13 | procd_set_param respawn
14 | procd_set_param stderr 1
15 | procd_set_param stdout 1
16 | procd_set_param command $DIR/clash -d $DIR
17 | procd_close_instance
18 | #其他设置
19 | $DIR/start.sh afstart
20 | }
21 |
22 | start() {
23 | if [ -z "$(pidof procd)" ];then
24 | #创建后台进程
25 | service_start $DIR/clash -d $DIR
26 | #设置守护进程
27 | $DIR/start.sh deamon
28 | #其他设置
29 | $DIR/start.sh afstart
30 | else
31 | start_service
32 | fi
33 | }
--------------------------------------------------------------------------------
/scripts/getdate.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (C) Juewuy
3 |
4 | linkconfig(){
5 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6 | echo -e "\033[44m 实验性功能,遇问题请加TG群反馈:\033[42;30m t.me/clashfm \033[0m"
7 | echo 当前使用规则为:$rule_link
8 | echo 1 ACL4SSR通用版无去广告(推荐)
9 | echo 2 ACL4SSR精简全能版(推荐)
10 | echo 3 ACL4SSR通用版+去广告加强
11 | echo 4 ACL4SSR精简版+去广告加强
12 | echo 5 ACL4SSR重度全分组+奈飞分流
13 | echo 6 ACL4SSR重度全分组+去广告加强
14 | echo 7 洞主规则精简版(推荐)
15 | echo 8 洞主规则重度完整版
16 | echo 9 神机规则高级版
17 | echo 10 神机规则-回国专用
18 | echo 11 李哥规则-墙洞专用
19 | echo 12 基础规则-仅Geoip CN+Final
20 | echo 13 网易云解锁-仅规则分组
21 | echo -----------------------------------------------
22 | echo 0 返回上级菜单
23 | read -p "请输入对应数字 > " num
24 | if [ -z "$num" ] || [[ $num -gt 13 ]];then
25 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26 | echo -e "\033[31m请输入正确的数字!\033[0m"
27 | elif [[ "$num" = "0" ]];then
28 | echo
29 | elif [[ $num -le 13 ]];then
30 | #将对应标记值写入mark
31 | sed -i '/rule_link*/'d $ccfg
32 | sed -i "4i\rule_link="$num"" $ccfg
33 | rule_link=$num
34 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
35 | echo -e "\033[32m设置成功!返回上级菜单\033[0m"
36 | fi
37 | }
38 | linkserver(){
39 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40 | echo -e "\033[44m 实验性功能,遇问题请加TG群反馈:\033[42;30m t.me/clashfm \033[0m"
41 | echo -e "\033[36m 感谢 https://github.com/tindy2013/subconverter \033[0m"
42 | echo 当前使用后端为:$server_link
43 | echo 1 subcon.dlj.tf
44 | echo 2 subconverter.herokuapp.com
45 | echo 3 subcon.py6.pw
46 | echo 4 api.dler.io
47 | echo 5 api.wcc.best
48 | echo -----------------------------------------------
49 | echo 0 返回上级菜单
50 | read -p "请输入对应数字 > " num
51 | if [ -z "$num" ] || [[ $num -gt 5 ]];then
52 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
53 | echo -e "\033[31m请输入正确的数字!\033[0m"
54 | elif [[ "$num" = 0 ]];then
55 | echo
56 | elif [[ $num -le 5 ]];then
57 | #将对应标记值写入mark
58 | sed -i '/server_link*/'d $ccfg
59 | sed -i "4i\server_link="$num"" $ccfg
60 | server_link=$num
61 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
62 | echo -e "\033[32m设置成功!返回上级菜单\033[0m"
63 | fi
64 | }
65 | linkfilter(){
66 | [ -z "$exclude" ] && exclude="未设置"
67 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | echo -e "\033[44m 实验性功能,遇问题请加TG群反馈:\033[42;30m t.me/clashfm \033[0m"
69 | echo -e "\033[33m当前过滤关键字:\033[47;30m$exclude\033[0m"
70 | echo -----------------------------------------------
71 | echo -e "\033[33m匹配关键字的节点会在导入时被【屏蔽】!!!\033[0m"
72 | echo -e "多个关键字可以用\033[30;47m | \033[0m号分隔"
73 | echo -e "\033[32m支持正则表达式\033[0m,空格请使用\033[30;47m + \033[0m号替代"
74 | echo -----------------------------------------------
75 | echo -e " 000 \033[31m删除\033[0m关键字"
76 | echo -e " 回车 取消输入并返回上级菜单"
77 | echo -----------------------------------------------
78 | read -p "请输入关键字 > " exclude
79 | if [ -z "$exclude" ]; then
80 | linkset
81 | elif [ "$exclude" = '000' ]; then
82 | echo -----------------------------------------------
83 | exclude=''
84 | echo -e "\033[31m 已删除节点过滤关键字!!!\033[0m"
85 | fi
86 | sed -i '/exclude=*/'d $ccfg
87 | sed -i "1i\exclude=\'$exclude\'" $ccfg
88 | linkset
89 | }
90 | linkfilter2(){
91 | [ -z "$include" ] && include="未设置"
92 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
93 | echo -e "\033[44m 实验性功能,遇问题请加TG群反馈:\033[42;30m t.me/clashfm \033[0m"
94 | echo -e "\033[33m当前筛选关键字:\033[47;30m$include\033[0m"
95 | echo -----------------------------------------------
96 | echo -e "\033[33m仅有匹配关键字的节点才会被【导入】!!!\033[0m"
97 | echo -e "多个关键字可以用\033[30;47m | \033[0m号分隔"
98 | echo -e "\033[32m支持正则表达式\033[0m,空格请使用\033[30;47m + \033[0m号替代"
99 | echo -----------------------------------------------
100 | echo -e " 000 \033[31m删除\033[0m关键字"
101 | echo -e " 回车 取消输入并返回上级菜单"
102 | echo -----------------------------------------------
103 | read -p "请输入关键字 > " include
104 | if [ -z "$include" ]; then
105 | linkset
106 | elif [ "$include" = '000' ]; then
107 | echo -----------------------------------------------
108 | include=''
109 | echo -e "\033[31m 已删除节点匹配关键字!!!\033[0m"
110 | fi
111 | sed -i '/include=*/'d $ccfg
112 | sed -i "1i\include=\'$include\'" $ccfg
113 | linkset
114 | }
115 | linkset(){
116 | if [ -n "$Url" ];then
117 | [ -z "$skip_cert" ] && skip_cert=已开启
118 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
119 | echo -e "\033[47;30m请检查输入的链接是否正确:\033[0m"
120 | echo -e "\033[32;4m$Url\033[0m"
121 | echo -----------------------------------------------
122 | echo -e " 1 \033[36m生成配置文件\033[0m(原文件将被备份)"
123 | echo -e " 2 设置\033[31m节点过滤\033[0m关键字 \033[47;30m$exclude\033[0m"
124 | echo -e " 3 设置\033[32m节点筛选\033[0m关键字 \033[47;30m$include\033[0m"
125 | echo -e " 4 选取在线\033[33m配置规则模版\033[0m"
126 | echo -e " 5 \033[0m选取在线生成服务器\033[0m"
127 | echo -e " 6 \033[0m跳过本地证书验证: \033[36m$skip_cert\033[0m ————自建tls节点务必开启"
128 | echo -----------------------------------------------
129 | echo -e " 0 \033[31m取消导入\033[0m并返回上级菜单"
130 | echo -----------------------------------------------
131 | read -p "请输入对应数字 > " num
132 | if [ -z "$num" ]; then
133 | clashlink
134 | elif [ "$num" = '0' ]; then
135 | clashlink
136 | elif [ "$num" = '1' ]; then
137 | #将用户链接写入mark
138 | sed -i '/Url=*/'d $ccfg
139 | sed -i '/Https=*/'d $ccfg
140 | sed -i "6i\Url=\'$Url\'" $ccfg
141 | Https=""
142 | #获取在线yaml文件
143 | $clashdir/start.sh getyaml
144 | start_over
145 | exit;
146 | elif [ "$num" = '2' ]; then
147 | linkfilter
148 | linkset
149 | elif [ "$num" = '3' ]; then
150 | linkfilter2
151 | linkset
152 | elif [ "$num" = '4' ]; then
153 | linkconfig
154 | linkset
155 | elif [ "$num" = '5' ]; then
156 | linkserver
157 | linkset
158 | elif [ "$num" = '6' ]; then
159 | sed -i '/skip_cert*/'d $ccfg
160 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
161 | if [ "$skip_cert" = "未开启" ] > /dev/null 2>&1; then
162 | sed -i "1i\skip_cert=已开启" $ccfg
163 | #echo -e "\033[33m已设为开启跳过本地证书验证!!\033[0m"
164 | skip_cert=已开启
165 | else
166 | sed -i "1i\skip_cert=未开启" $ccfg
167 | #echo -e "\033[33m已设为禁止跳过本地证书验证!!\033[0m"
168 | skip_cert=未开启
169 | fi
170 | linkset
171 | else
172 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
173 | echo -e "\033[31m请输入正确的数字!\033[0m"
174 | linkset
175 | fi
176 | clashlink
177 | fi
178 | }
179 | getlink(){
180 | #设置输入循环
181 | i=1
182 | while [ $i -le 99 ]
183 | do
184 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
185 | echo -e "\033[44m 遇问题请加TG群反馈:\033[42;30m t.me/clashfm \033[0m"
186 | echo -e "\033[31m本功能依赖第三方网站在线服务实现,脚本本身不提供任何代理服务!\033[0m"
187 | echo -----------------------------------------------
188 | echo -e "支持批量导入订阅文件的在线链接"
189 | echo -----------------------------------------------
190 | echo -e " 0 \033[31m撤销输入\033[0m"
191 | echo -e "回车 \033[32m完成输入\033[0m并\033[33m开始导入\033[0m配置文件!"
192 | echo -----------------------------------------------
193 | read -p "请输入第${i}个链接 > " url
194 | test=$(echo $url | grep "://")
195 | url=`echo ${url/\ \(*\)/''}` #删除恶心的超链接内容
196 | url=`echo ${url/*\&url\=/""}` #将clash完整链接还原成单一链接
197 | url=`echo ${url/\&config\=*/""}` #将clash完整链接还原成单一链接
198 | url=`echo ${url//\&/\%26}` #将分隔符 & 替换成urlcode:%26
199 | if [[ "$test" != "" ]];then
200 | if [ -z "$Url" ];then
201 | Url="$url"
202 | else
203 | Url="$Url"\|"$url"
204 | fi
205 | i=$((i+1))
206 | elif [ -z "$url" ];then
207 | [ -n "$Url" ] && linkset
208 | elif [[ $url == 0 ]];then
209 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
210 | echo -e "\033[31m已撤销并删除所有已输入的链接!!!\033[0m"
211 | Url=""
212 | sleep 1
213 | clashlink
214 | else
215 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
216 | echo -e "\033[31m请输入正确的订阅链接!!!\033[0m"
217 | fi
218 | done
219 | ####
220 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
221 | echo 输入太多啦,可能会导致订阅失败!
222 | echo "多个较短的链接请尽量用“|”分隔以一次性输入!"
223 | clashlink
224 | }
225 | getlink2(){
226 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
227 | echo -e "\033[33m仅限导入完整clash配置文件链接!!!\033[0m"
228 | echo -e "可以使用\033[32m https://acl4ssr.netlify.app \033[0m在线生成配置文件"
229 | echo -e "\033[36m导入后如无法运行,请使用【导入订阅】功能"
230 | echo -----------------------------------------------
231 | echo -e "\033[33m0 返回上级菜单\033[0m"
232 | echo -----------------------------------------------
233 | read -p "请输入完整链接 > " Https
234 | test=$(echo $Https | grep -iE "http.*://" )
235 | Https=`echo ${Https/\ \(*\)/''}` #删除恶心的超链接内容
236 | if [ -n "$Https" -a -n "$test" ];then
237 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
238 | echo -e 请检查输入的链接是否正确:
239 | echo -e "\033[4m$Https\033[0m"
240 | read -p "确认导入配置文件?原配置文件将被更名为config.yaml.bak![1/0] > " res
241 | if [ "$res" = '1' ]; then
242 | #将用户链接写入mark
243 | sed -i '/Url=*/'d $ccfg
244 | sed -i '/Https=*/'d $ccfg
245 | sed -i "6i\Https=\'$Https\'" $ccfg
246 | #获取在线yaml文件
247 | $clashdir/start.sh getyaml
248 | start_over
249 | exit;
250 | fi
251 | elif [[ $Https == 0 ]];then
252 | clashlink
253 | else
254 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
255 | echo -e "\033[31m请输入正确的配置文件链接地址!!!\033[0m"
256 | echo -e "\033[33m链接地址必须是http或者https开头的形式\033[0m"
257 | clashlink
258 | fi
259 | }
260 | gettar(){
261 | result=$(curl -w %{http_code} -kLo /tmp/clashfm.tar.gz $tarurl)
262 | [ "$result" != "200" ] && echo "文件下载失败!" && exit 1
263 | #解压
264 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
265 | echo 开始解压文件!
266 | mkdir -p $clashdir > /dev/null
267 | tar -zxvf '/tmp/clashfm.tar.gz' -C $clashdir/
268 | [ $? -ne 0 ] && echo "文件解压失败!" && exit 1
269 | #初始化文件目录
270 | [ -f "$clashdir/mark" ] || echo '#标识clash运行状态的文件,不明勿动!' > $clashdir/mark
271 | #判断系统类型写入不同的启动文件
272 | if [ -f /etc/rc.common ];then
273 | #设为init.d方式启动
274 | mv $clashdir/clashservice /etc/init.d/clash
275 | chmod 777 /etc/init.d/clash
276 | else
277 | [ -d /etc/systemd/system ] && sysdir=/etc/systemd/system
278 | [ -d /usr/lib/systemd/system/ ] && sysdir=/usr/lib/systemd/system/
279 | if [ -n "$sysdir" ];then
280 | #设为systemd方式启动
281 | mv $clashdir/clash.service $sysdir/clash.service
282 | sed -i "s%/etc/clash%$clashdir%g" $sysdir/clash.service
283 | systemctl daemon-reload
284 | rm -rf /etc/init.d/clash
285 | else
286 | #设为保守模式启动
287 | sed -i '/start_old=*/'d $clashdir/mark
288 | sed -i "1i\start_old=已开启" $clashdir/mark
289 | fi
290 | fi
291 | #修饰文件及版本号
292 | shtype=sh && [ -n "$(ls -l /bin/sh|grep -o dash)" ] && shtype=bash
293 | sed -i "s%#!/bin/sh%#!/bin/$shtype%g" $clashdir/start.sh
294 | chmod 777 $clashdir/start.sh
295 | sed -i '/versionsh_l=*/'d $clashdir/mark
296 | sed -i "1i\versionsh_l=$release_new" $clashdir/mark
297 | #设置环境变量
298 | sed -i '/alias clash=*/'d /etc/profile
299 | echo "alias clash=\"$shtype $clashdir/clash.sh\"" >> /etc/profile #设置快捷命令环境变量
300 | sed -i '/export clashdir=*/'d /etc/profile
301 | echo "export clashdir=\"$clashdir\"" >> /etc/profile #设置clash路径环境变量
302 | #删除临时文件
303 | rm -rf /tmp/clashfm.tar.gz
304 | rm -rf $clashdir/clashservice
305 | rm -rf $clashdir/clash.service
306 | }
307 | getsh(){
308 | echo -----------------------------------------------
309 | echo -e "当前脚本版本为:\033[33m $versionsh_l \033[0m"
310 | echo -e "最新脚本版本为:\033[32m $release_new \033[0m"
311 | echo -----------------------------------------------
312 | read -p "是否更新脚本?[1/0] > " res
313 | if [ "$res" = '1' ]; then
314 | tarurl=$update_url/bin/clashfm.tar.gz
315 | #下载更新
316 | gettar
317 | #提示
318 | echo -----------------------------------------------
319 | echo -e "\033[32m管理脚本更新成功!\033[0m"
320 | echo -----------------------------------------------
321 | exit;
322 | else
323 | update
324 | fi
325 | }
326 | getcore(){
327 | #获取核心及版本信息
328 | [ ! -f $clashdir/clash ] && clashcore="未安装核心"
329 | #获取设备处理器架构
330 | getcputype(){
331 | cputype=$(uname -ms | tr ' ' '_' | tr '[A-Z]' '[a-z]')
332 | [ -n "$(echo $cputype | grep -E "linux.*armv.*")" ] && cpucore="armv5"
333 | [ -n "$(echo $cputype | grep -E "linux.*armv7.*")" ] && [ -n "$(cat /proc/cpuinfo | grep vfp)" ] && cpucore="armv7"
334 | [ -n "$(echo $cputype | grep -E "linux.*aarch64.*|linux.*armv8.*")" ] && cpucore="armv8"
335 | [ -n "$(echo $cputype | grep -E "linux.*86.*")" ] && cpucore="386"
336 | [ -n "$(echo $cputype | grep -E "linux.*86_64.*")" ] && cpucore="amd64"
337 | if [ -n "$(echo $cputype | grep -E "linux.*mips.*")" ];then
338 | mipstype=$(echo -n I | hexdump -o | awk '{ print substr($2,6,1); exit}') #通过判断大小端判断mips或mipsle
339 | if [ "$mipstype" = "1" ];then
340 | cpucore="mipsle-softfloat"
341 | #[ -n "$(uname -a | grep -E "M2100")" ] && cpucore="mipsle-hardfloat"
342 | else
343 | cpucore="mips-softfloat"
344 | fi
345 | fi
346 | }
347 | ###
348 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
349 | [ -z "$cpucore" ] && getcputype
350 | echo -e "当前clash核心:\033[47;30m $clashcore \033[46;30m$clashv\033[0m"
351 | echo -e "当前系统处理器架构:\033[32m $cpucore \033[0m"
352 | echo -e "\033[33m请选择需要下载的核心版本!\033[0m"
353 | echo -----------------------------------------------
354 | echo "1 clash: 稳定,内存占用小,推荐!"
355 | echo "(官方正式版) 不支持Tun模式、混合模式"
356 | echo
357 | echo "2 clashpre: 支持Tun模式、混合模式"
358 | echo "(高级预览版) 内存占用更高"
359 | echo
360 | echo "3 手动指定处理器架构"
361 | echo -----------------------------------------------
362 | echo 0 返回上级菜单
363 | read -p "请输入对应数字 > " num
364 | if [ -z "$num" ]; then
365 | echo -----------------------------------------------
366 | echo -e "\033[31m请输入正确的数字!\033[0m"
367 | update
368 | elif [[ $num == 0 ]]; then
369 | update
370 | elif [[ $num == 1 ]]; then
371 | clashcore=clash
372 | version=$clash_v
373 | elif [[ $num == 2 ]]; then
374 | clashcore=clashpre
375 | version=$clashpre_v
376 | elif [[ $num == 3 ]]; then
377 | cpucore_list="armv5 armv7 armv8 386 amd64 mipsle-softfloat mipsle-hardfloat mips-softfloat"
378 | echo -----------------------------------------------
379 | echo -e "\033[31m仅适合脚本无法正确识别核心或核心无法正常运行时使用!\033[0m"
380 | echo -e "当前可供在线下载的处理器架构为:"
381 | echo -e "\033[32m$cpucore_list\033[0m"
382 | echo -e "如果您的CPU架构未在以上列表中,请运行【uname -a】命令,并复制好返回信息"
383 | echo -e "之后前往 t.me/clashfm 群提交或 github.com/juewuy/ShellClash 提交issue"
384 | echo -----------------------------------------------
385 | read -p "请手动输入处理器架构 > " cpucore
386 | if [ -z "$(echo $cpucore_list |grep "$cpucore")" ];then
387 | echo -e "\033[31m请输入正确的处理器架构!\033[0m"
388 | sleep 1
389 | cpucore=""
390 | fi
391 | getcore
392 | else
393 | echo -----------------------------------------------
394 | echo -e "\033[31m请输入正确的数字!\033[0m"
395 | update
396 | fi
397 | #生成链接
398 | corelink="$update_url/bin/$clashcore/clash-linux-$cpucore"
399 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
400 | echo 正在连接服务器获取clash核心文件…………链接地址为:
401 | echo -e "\033[4;32m$corelink\033[0m"
402 | echo 如无法正常下载可以手动复制到浏览器下载核心文件!
403 | echo -e "\033[36m~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
404 | echo -e "| |"
405 | echo -e "| 需要一点时间,请耐心等待! |"
406 | echo -e "| \033[0m如长时间没有数据请用ctrl+c退出 |"
407 | echo -e "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\033[0m"
408 | #获取在线clash核心文件
409 | result=$(curl -w %{http_code} -kLo /tmp/clash.new $corelink)
410 | if [ "$result" != "200" ];then
411 | echo -----------------------------------------------
412 | echo -e "\033[31m核心文件下载失败!\033[0m"
413 | echo -----------------------------------------------
414 | getcore
415 | else
416 | echo -e "\033[32m$clashcore核心下载成功,正在替换!\033[0m"
417 | mv /tmp/clash.new $clashdir/clash
418 | chmod 777 $clashdir/clash #授予权限
419 | sed -i '/clashcore=*/'d $ccfg
420 | sed -i "1i\clashcore=$clashcore" $ccfg
421 | sed -i '/clashv=*/'d $ccfg
422 | sed -i "1i\clashv=$version" $ccfg
423 | rm -rf /tmp/clashversion
424 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
425 | echo -e "\033[32m$clashcore核心替换成功,请手动启动clash服务!\033[0m"
426 | clashsh
427 | fi
428 | }
429 | getgeo(){
430 | echo -----------------------------------------------
431 | echo -e "当前GeoIP版本为:\033[33m $Geo_v \033[0m"
432 | echo -e "最新GeoIP版本为:\033[32m $GeoIP_v \033[0m"
433 | echo -----------------------------------------------
434 | read -p "是否更新数据库文件?[1/0] > " res
435 | if [ "$res" = '1' ]; then
436 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
437 | echo 正在从服务器获取数据库文件…………
438 | result=$(curl -w %{http_code} -kLo /tmp/Country.mmdb $update_url/bin/Country.mmdb)
439 | if [ "$result" != "200" ];then
440 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
441 | echo -e "\033[31m文件下载失败!\033[0m"
442 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
443 | getgeo
444 | else
445 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
446 | echo -e "\033[32mGeoIP数据库文件下载成功!\033[0m"
447 | mv /tmp/Country.mmdb $clashdir/Country.mmdb
448 | sed -i '/Geo_v=*/'d $ccfg
449 | sed -i "1i\Geo_v=$GeoIP_v" $ccfg
450 | rm -rf /tmp/clashversion
451 | clashsh
452 | fi
453 | else
454 | clashsh
455 | fi
456 | }
457 | getdb(){
458 | #host=$(ubus call network.interface.lan status | grep \"address\" | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}';)
459 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
460 | echo -e "\033[36m安装本地版dashboard管理面板\033[0m"
461 | echo -----------------------------------------------
462 | echo -e "\033[32m打开管理面板的速度更快且更稳定"
463 | echo -e "\033[33m需要占用约500kb的本地空间\033[0m"
464 | echo -----------------------------------------------
465 | echo -e " 1 在$clashdir/ui目录安装(推荐!)\033[33m安装后需重启clash服务!!!\033[0m"
466 | echo " 2 在/www/clash目录安装(依赖路由器自带的Nginx服务,可能安装失败!)"
467 | echo -----------------------------------------------
468 | echo " 0 返回上级菜单"
469 | read -p "请输入对应数字 > " num
470 |
471 | if [ -z "$num" ];then
472 | update
473 | elif [ "$num" = '1' ]; then
474 | dbdir=$clashdir/ui
475 | hostdir=":$db_port/ui\033[0;36m访问面板(需重启clash服务!)"
476 | elif [ "$num" = '2' ]; then
477 | dbdir=/www/clash
478 | hostdir='/clash\033[0;36m访问面板'
479 | else
480 | update
481 | fi
482 | #下载及安装
483 | if [ -d /www/clash -o -d $clashdir/ui ];then
484 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
485 | echo -e "\033[31m检测到您已经安装过本地面板了!\033[0m"
486 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
487 | read -p "是否覆盖安装?[1/0] > " res
488 | if [ -z "$res" ]; then
489 | update
490 | elif [ "$res" = 1 ]; then
491 | rm -rf /www/clash
492 | rm -rf $clashdir/ui
493 | else
494 | update
495 | fi
496 | fi
497 | dblink="$update_url/bin/clashdb.tar.gz"
498 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
499 | echo 正在连接服务器获取安装文件…………
500 | result=$(curl -w %{http_code} -kLo /tmp/clashdb.tar.gz $dblink)
501 | if [ "$result" != "200" ];then
502 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
503 | echo -e "\033[31m文件下载失败!\033[0m"
504 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
505 | getdb
506 | else
507 | echo -e "\033[33m下载成功,正在解压文件!\033[0m"
508 | mkdir -p $dbdir > /dev/null
509 | tar -zxvf '/tmp/clashdb.tar.gz' -C $dbdir > /dev/null
510 | [ $? -ne 0 ] && echo "文件解压失败!" && exit 1
511 | #修改默认host和端口
512 | sed -i "s/127.0.0.1/${host}/g" $dbdir/js/*.js
513 | sed -i "s/9090/${db_port}/g" $dbdir/js/*.js
514 | #
515 | echo -e "\033[32m面板安装成功!\033[0m"
516 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
517 | echo -e "\033[36m请使用\033[32;4mhttp://$host$hostdir\033[0m"
518 | rm -rf /tmp/clashdb.tar.gz
519 | update
520 | fi
521 |
522 | update
523 | }
524 | catpac(){
525 | #检测目录
526 | [ ! -d /www/clash -a ! -d $clashdir/ui ]&&echo 未检测到本地Dashboard面板,请先安装面板!&&sleep 1&&getdb
527 | #host=$(ubus call network.interface.lan status | grep \"address\" | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}';)
528 | [ -d /www/clash ]&&dir="/www/clash"&&pac=http://$host/clash/pac
529 | [ -d $clashdir/ui ]&&dir="$clashdir/ui"&&pac=http://$host:$db_port/ui/pac
530 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
531 | echo -e "\033[30;47m生成用于设备WIFI或浏览器的自动PAC代理文件\033[0m"
532 | echo -e "\033[33m非纯净模式不推荐使用此功能\033[0m"
533 | [ -f $dir/pac ]&&echo -e "PAC地址:\033[32m$pac\033[0m"
534 | echo -----------------------------------------------
535 | echo -e " 1 生成PAC文件"
536 | echo -e " 2 清除PAC文件"
537 | echo -----------------------------------------------
538 | echo -e " 0 返回上级菜单"
539 | read -p "请输入对应数字 > " num
540 | if [ "$num" = '1' ]; then
541 | echo 'function FindProxyForURL(url, host) {' > $dir/pac
542 | echo " return \"SOCKS $host:$mix_port; PROXY $host:$mix_port; DIRECT;\"" >> $dir/pac
543 | echo '}' >> $dir/pac
544 | echo -e "\033[33mPAC文件已生成!\033[0m"
545 | echo -e "PAC地址:\033[32m$pac\033[0m"
546 | echo "使用教程:https://baike.baidu.com/item/PAC/16292100"
547 | sleep 2
548 | elif [[ $num == 2 ]]; then
549 | rm -rf $dir/pac
550 | echo -----------------------------------------------
551 | echo -e "\033[33mPAC文件已清除!\033[0m"
552 | sleep 1
553 | fi
554 | }
555 | setserver(){
556 |
557 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
558 | echo -e "\033[30;47m您可以在此处切换在线更新时使用的资源地址\033[0m"
559 | echo -e "当前源:\033[4;32m$update_url\033[0m"
560 | echo -----------------------------------------------
561 | echo -e " 1 Github源(直连美国服务器)"
562 | echo -e " 2 Jsdelivr-CDN源(仅同步最新release版本)"
563 | echo -e " 3 Github源+clash代理(需开启clash服务)"
564 | echo -e " 4 自定义输入(请务必确保路径正确)"
565 | echo -e " 0 返回上级菜单"
566 | read -p "请输入对应数字 > " num
567 | if [ -z "$num" ]; then
568 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
569 | echo -e "\033[31m请输入正确的数字!\033[0m"
570 | update
571 | elif [[ $num == 1 ]]; then
572 | update_url='--resolve raw.githubusercontent.com:443:199.232.68.133 https://raw.githubusercontent.com/juewuy/ShellClash/master'
573 | elif [[ $num == 2 ]]; then
574 | update_url='https://cdn.jsdelivr.net/gh/juewuy/ShellClash'
575 | elif [[ $num == 3 ]]; then
576 | update_url='-x 127.0.0.1:'$mix_port' https://raw.githubusercontent.com/juewuy/ShellClash/master'
577 | elif [[ $num == 4 ]]; then
578 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
579 | read -p "请输入个人源路径 > " update_url
580 | if [ -z "$update_url" ];then
581 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
582 | echo -e "\033[31m取消输入,返回上级菜单\033[0m"
583 | update
584 | fi
585 | elif [[ $num == 9 ]]; then
586 | update_url='http://127.0.0.1:8080/clash-for-Miwifi'
587 | else
588 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
589 | echo -e "\033[31m请输入正确的数字!\033[0m"
590 | update
591 | fi
592 | #写入mark文件
593 | sed -i '/update_url*/'d $ccfg
594 | sed -i "1i\update_url=\'$update_url\'" $ccfg
595 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
596 | echo -e "\033[32m源地址更新成功!\033[0m"
597 | release_new=""
598 | update
599 | }
--------------------------------------------------------------------------------
/scripts/start.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # Copyright (C) Juewuy
3 |
4 | getconfig(){
5 | #加载环境变量
6 | [ -z "$clashdir" ] && source /etc/profile > /dev/null 2>&1
7 | ccfg=$clashdir/mark
8 | #检查/读取标识文件
9 | [ ! -f $ccfg ]&& echo '#标识clash运行状态的文件,不明勿动!' >> $ccfg
10 | source $ccfg
11 | #默认设置
12 | [ -z "$skip_cert" ] && skip_cert=已开启
13 | [ -z "$common_ports" ] && common_ports=已开启
14 | [ -z "$dns_mod" ] && dns_mod=redir_host
15 | [ -z "$dns_over" ] && dns_over=已开启
16 | [ -z "$modify_yaml" ] && modify_yaml=未开启
17 | [ -z "$ipv6_support" ] && ipv6_support=未开启
18 | [ -z "$start_old" ] && start_old=未开启
19 | [ -z "$local_proxy" ] && local_proxy=未开启
20 | [ -z "$mix_port" ] && mix_port=7890
21 | [ -z "$redir_port" ] && redir_port=7892
22 | [ -z "$db_port" ] && db_port=9999
23 | [ -z "$dns_port" ] && dns_port=1053
24 | #是否代理常用端口
25 | [ "$common_ports" = "已开启" ] && ports='-m multiport --dports 22,53,587,465,995,993,143,80,443 '
26 | }
27 | getyaml(){
28 | #前后端订阅服务器地址索引,可在此处添加!
29 | Server=`sed -n ""$server_link"p"< /dev/null 2>&1
71 | result=$(curl -w %{http_code} -kLo $yamlnew $Https)
72 | if [ "$result" != "200" ];then
73 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
74 | echo -e "\033[31m配置文件获取失败!\033[0m"
75 | if [ -z "$markhttp" ];then
76 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
77 | echo -e "\033[31m请尝试使用【导入节点/链接】功能!\033[0m"
78 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
79 | exit 1
80 | else
81 | if [ "$retry" -ge 5 ];then
82 | echo -e "\033[32m无法获取配置文件,请检查链接格式以及网络连接状态!\033[0m"
83 | exit 1
84 | else
85 | retry=$((retry+1))
86 | echo -e "\033[32m尝试使用其他服务器获取配置!\033[0m"
87 | echo -e "\033[33m正在尝试第$retry次/共5次!\033[0m"
88 | sed -i '/server_link=*/'d $ccfg
89 | if [ "$server_link" -ge 5 ]; then
90 | server_link=0
91 | fi
92 | server_link=$((server_link+1))
93 | sed -i "1i\server_link=$server_link" $ccfg
94 | Https=""
95 | getyaml
96 | fi
97 | fi
98 | else
99 | Https=""
100 | #检测节点
101 | if [ -z "$(cat $yamlnew | grep 'server:' | grep -v 'nameserver')" ];then
102 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
103 | echo -e "\033[33m获取到了配置文件,但似乎并不包含正确的节点信息!\033[0m"
104 | echo -----------------------------------------------
105 | sed -n '1,30p' $yamlnew
106 | echo -----------------------------------------------
107 | echo -e "\033[33m请检查如上配置文件信息:\033[0m"
108 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
109 | exit 1
110 | fi
111 | #检测旧格式
112 | if cat $yamlnew | grep 'Proxy Group:' >/dev/null;then
113 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
114 | echo -e "\033[31m已经停止对旧格式配置文件的支持!!!\033[0m"
115 | echo -e "请使用新格式或者使用【导入节点/链接】功能!"
116 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
117 | exit 1
118 | fi
119 | #检测不支持的加密协议
120 | if cat $yamlnew | grep 'cipher: chacha20,' >/dev/null;then
121 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
122 | echo -e "\033[31m不支持chacha20加密,请更换节点加密协议!!!\033[0m"
123 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
124 | exit 1
125 | fi
126 | #替换文件
127 | [ -f $yaml ] && mv $yaml $yaml.bak
128 | mv $yamlnew $yaml
129 | echo 配置文件已生成!正在启动clash使其生效!
130 | #重启clash服务
131 | $0 stop
132 | $0 start
133 | sleep 1
134 | if [ -z "$(pidof clash)" ];then
135 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
136 | if [ -f $yaml.bak ];then
137 | $clashdir/start.sh stop
138 | mv $yaml.bak $yaml
139 | $0 start
140 | echo -e "\033[31mclash服务启动失败!已还原配置文件并重启clash!\033[0m"
141 | sleep 1
142 | [ -n "$(pidof clash)" ] && exit 0
143 | fi
144 | echo -e "\033[31mclash服务启动失败!请查看报错信息!\033[0m"
145 | $0 stop
146 | $clashdir/clash -t -d $clashdir
147 | echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
148 | exit 1
149 | fi
150 | fi
151 | }
152 | modify_yaml(){
153 | ##########需要变更的配置###########
154 | lan='allow-lan: true'
155 | mode='mode: Rule'
156 | log='log-level: info'
157 | [ "$ipv6_support" = "已开启" ] && ipv6='ipv6: true' || ipv6='ipv6: false'
158 | external="external-controller: 0.0.0.0:$db_port"
159 | [ -d $clashdir/ui ] && db_ui=ui
160 | [ "$redir_mod" != "Redir模式" ] && tun='tun: {enable: true, stack: system}' || tun='tun: {enable: false}'
161 | exper='experimental: {ignore-resolve-fail: true, interface-name: en0}'
162 | #dns配置
163 | if [ "$dns_mod" = "fake-ip" ];then
164 | dns='dns: {enable: true, listen: 0.0.0.0:'$dns_port', use-hosts: true, fake-ip-range: 198.18.0.1/16, enhanced-mode: fake-ip, fake-ip-filter: ["*.lan", "time.windows.com", "time.nist.gov", "time.apple.com", "time.asia.apple.com", "*.ntp.org.cn", "*.openwrt.pool.ntp.org", "time1.cloud.tencent.com", "time.ustc.edu.cn", "pool.ntp.org", "ntp.ubuntu.com", "ntp.aliyun.com", "ntp1.aliyun.com", "ntp2.aliyun.com", "ntp3.aliyun.com", "ntp4.aliyun.com", "ntp5.aliyun.com", "ntp6.aliyun.com", "ntp7.aliyun.com", "time1.aliyun.com", "time2.aliyun.com", "time3.aliyun.com", "time4.aliyun.com", "time5.aliyun.com", "time6.aliyun.com", "time7.aliyun.com", "*.time.edu.cn", "time1.apple.com", "time2.apple.com", "time3.apple.com", "time4.apple.com", "time5.apple.com", "time6.apple.com", "time7.apple.com", "time1.google.com", "time2.google.com", "time3.google.com", "time4.google.com", "music.163.com", "*.music.163.com", "*.126.net", "musicapi.taihe.com", "music.taihe.com", "songsearch.kugou.com", "trackercdn.kugou.com", "*.kuwo.cn", "api-jooxtt.sanook.com", "api.joox.com", "joox.com", "y.qq.com", "*.y.qq.com", "streamoc.music.tc.qq.com", "mobileoc.music.tc.qq.com", "isure.stream.qqmusic.qq.com", "dl.stream.qqmusic.qq.com", "aqqmusic.tc.qq.com", "amobile.music.tc.qq.com", "*.xiami.com", "*.music.migu.cn", "music.migu.cn", "*.msftconnecttest.com", "*.msftncsi.com", "localhost.ptlogin2.qq.com", "*.*.*.srv.nintendo.net", "*.*.stun.playstation.net", "xbox.*.*.microsoft.com", "*.*.xboxlive.com", "proxy.golang.org"], nameserver: [114.114.114.114, 223.5.5.5, 127.0.0.1:53], fallback: [tcp://1.0.0.1, 8.8.4.4], fallback-filter: {geoip: true}}'
165 | elif [ "$dns_over" = "已开启" ];then
166 | dns='dns: {enable: true, ipv6: true, listen: 0.0.0.0:'$dns_port', use-hosts: true, enhanced-mode: redir-host, nameserver: [114.114.114.114, 223.5.5.5], fallback: [1.0.0.1, 8.8.4.4], fallback-filter: {geoip: true}}'
167 | else
168 | dns='dns: {enable: true, ipv6: true, listen: 0.0.0.0:'$dns_port', use-hosts: true, enhanced-mode: redir-host, nameserver: [114.114.114.114, 223.5.5.5, 127.0.0.1:53], fallback: [1.0.0.1, 8.8.4.4], fallback-filter: {geoip: true}}'
169 | fi
170 |
171 | ###################################
172 | yaml=$clashdir/config.yaml
173 | #预删除需要添加的项目
174 | i=$(grep -n "^proxies:" $clashdir/config.yaml | head -1 | cut -d ":" -f 1)
175 | i=$((i-1))
176 | sed -i "1,${i}d" $yaml
177 | #添加配置
178 | sed -i "1imixed-port:\ $mix_port" $yaml
179 | sed -i "1aredir-port:\ $redir_port" $yaml
180 | sed -i "2a$lan" $yaml
181 | sed -i "3a$mode" $yaml
182 | sed -i "4a$log" $yaml
183 | sed -i "5a$ipv6" $yaml
184 | sed -i "6aexternal-controller:\ :$db_port" $yaml
185 | sed -i "7aexternal-ui:\ $db_ui" $yaml
186 | sed -i "8asecret:\ $secret" $yaml
187 | sed -i "9a$dns" $yaml
188 | sed -i "10a$tun" $yaml
189 | sed -i "11a$exper" $yaml
190 | #跳过本地tls证书验证
191 | if [ "$skip_cert" = "已开启" ];then
192 | sed -i '10,99s/skip-cert-verify: false/skip-cert-verify: true/' $yaml
193 | else
194 | sed -i '10,99s/skip-cert-verify: true/skip-cert-verify: false/' $yaml
195 | fi
196 | }
197 | mark_time(){
198 | start_time=`date +%s`
199 | sed -i '/start_time*/'d $clashdir/mark
200 | sed -i "1i\start_time=$start_time" $clashdir/mark
201 | }
202 | start_redir(){
203 | #流量过滤规则
204 | iptables -t nat -N clash
205 | iptables -t nat -A clash -d 0.0.0.0/8 -j RETURN
206 | iptables -t nat -A clash -d 10.0.0.0/8 -j RETURN
207 | iptables -t nat -A clash -d 127.0.0.0/8 -j RETURN
208 | iptables -t nat -A clash -d 169.254.0.0/16 -j RETURN
209 | iptables -t nat -A clash -d 172.16.0.0/12 -j RETURN
210 | iptables -t nat -A clash -d 192.168.0.0/16 -j RETURN
211 | iptables -t nat -A clash -d 224.0.0.0/4 -j RETURN
212 | iptables -t nat -A clash -d 240.0.0.0/4 -j RETURN
213 | for mac in $(cat $clashdir/mac); do
214 | iptables -t nat -A clash -m mac --mac-source $mac -j RETURN
215 | done
216 | #设置防火墙流量转发
217 | iptables -t nat -A clash -p tcp $ports-j REDIRECT --to-ports $redir_port
218 | iptables -t nat -A PREROUTING -p tcp -j clash
219 | #设置ipv6转发
220 | if [ -n "ip6_nat" -a "$ipv6_support" = "已开启" ];then
221 | ip6tables -t nat -N clashv6
222 | for mac in $(cat $clashdir/mac); do
223 | ip6tables -t nat -A clashv6 -m mac --mac-source $mac -j RETURN
224 | done
225 | ip6tables -t nat -A clashv6 -p tcp $ports-j REDIRECT --to-ports $redir_port
226 | ip6tables -t nat -A PREROUTING -p tcp -j clashv6
227 | fi
228 | }
229 | stop_iptables(){
230 | #重置iptables规则
231 | iptables -t nat -D PREROUTING -p tcp -j clash > /dev/null 2>&1
232 | iptables -t nat -D PREROUTING -p udp -j clash_dns > /dev/null 2>&1
233 | iptables -t nat -D PREROUTING -p tcp -d 8.8.8.8 -j clash_dns > /dev/null 2>&1
234 | iptables -t nat -D PREROUTING -p tcp -d 8.8.4.4 -j clash_dns > /dev/null 2>&1
235 | iptables -t nat -F clash > /dev/null 2>&1
236 | iptables -t nat -X clash > /dev/null 2>&1
237 | iptables -t nat -F clash_dns > /dev/null 2>&1
238 | iptables -t nat -X clash_dns > /dev/null 2>&1
239 | iptables -D FORWARD -o utun -j ACCEPT > /dev/null 2>&1
240 | #重置ipv6规则
241 | ip6tables -t nat -D PREROUTING -p tcp -j clashv6 > /dev/null 2>&1
242 | ip6tables -t nat -D PREROUTING -p udp -j clashv6_dns > /dev/null 2>&1
243 | ip6tables -t nat -F clashv6 > /dev/null 2>&1
244 | ip6tables -t nat -X clashv6 > /dev/null 2>&1
245 | ip6tables -t nat -F clashv6_dns > /dev/null 2>&1
246 | ip6tables -t nat -X clashv6_dns > /dev/null 2>&1
247 | ip6tables -D FORWARD -o utun -j ACCEPT > /dev/null 2>&1
248 | }
249 | start_dns(){
250 | #允许tun网卡接受流量
251 | if [ "$redir_mod" = "Tun模式" -o "$redir_mod" = "混合模式" ];then
252 | iptables -I FORWARD -o utun -j ACCEPT
253 | [ "$ipv6_support" = "已开启" ] && ip6tables -I FORWARD -o utun -j ACCEPT > /dev/null 2>&1
254 | fi
255 | #设置dns转发
256 | iptables -t nat -N clash_dns
257 | for mac in $(cat $clashdir/mac); do
258 | iptables -t nat -A clash_dns -m mac --mac-source $mac -j RETURN
259 | done
260 | iptables -t nat -A clash_dns -p udp --dport 53 -j REDIRECT --to $dns_port
261 | iptables -t nat -A clash_dns -p tcp --dport 53 -j REDIRECT --to $dns_port
262 | iptables -t nat -A PREROUTING -p udp -j clash_dns
263 | #Google home DNS特殊处理
264 | iptables -t nat -I PREROUTING -p tcp -d 8.8.8.8 -j clash_dns
265 | iptables -t nat -I PREROUTING -p tcp -d 8.8.4.4 -j clash_dns
266 | #ipv6DNS
267 | ip6_nat=$(ip6tables -t nat -L 2>&1|grep -o 'Chain')
268 | if [ -n "ip6_nat" ];then
269 | ip6tables -t nat -N clashv6_dns > /dev/null 2>&1
270 | for mac in $(cat $clashdir/mac); do
271 | ip6tables -t nat -A clashv6_dns -m mac --mac-source $mac -j RETURN > /dev/null 2>&1
272 | done
273 | ip6tables -t nat -A clashv6_dns -p udp --dport 53 -j REDIRECT --to $dns_port > /dev/null 2>&1
274 | ip6tables -t nat -A PREROUTING -p udp -j clashv6_dns > /dev/null 2>&1
275 | else
276 | ip6tables -I INPUT -p tcp --dport 53 -j REJECT
277 | ip6tables -I INPUT -p udp --dport 53 -j REJECT
278 | fi
279 | }
280 | daemon(){
281 | if [ -n "$cronpath" ];then
282 | echo '*/1 * * * * test -z "$(pidof clash)" && /etc/init.d/clash restart #clash保守模式守护进程' >> $cronpath
283 | chmod 600 $cronpath
284 | else
285 | echo 找不到定时任务配置文件,无法添加守护进程!
286 | echo 请进入定时任务菜单手动指定系统定时任务文件路径!!!
287 | fi
288 | }
289 | web_save(){
290 | #使用curl获取面板节点设置
291 | curl -s -H "Authorization: Bearer ${secret}" -H "Content-Type:application/json" http://localhost:${db_port}/proxies | awk -F "{" '{for(i=1;i<=NF;i++) print $i}' | grep -E '^"all".*"Selector"' | grep -oE '"name".*"now".*",' | sed 's/"name"://g' | sed 's/"now"://g'| sed 's/"//g' > /tmp/clash_web_save
292 | #对比文件,如果有变动则写入磁盘,否则清除缓存
293 | if [ "$(cat /tmp/clash_web_save)" = "$(cat $clashdir/web_save 2>/dev/null)" ];then
294 | rm -rf /tmp/clash_web_save
295 | else
296 | mv -f /tmp/clash_web_save $clashdir/web_save
297 | fi
298 | }
299 | web_restore(){
300 | #设置循环检测clash面板端口
301 | i=1
302 | while [ $i -lt 10 ]
303 | do
304 | sleep 1
305 | [ -n "$(curl -s http://localhost:${db_port})" ] && i=10
306 | done
307 | #发送数据
308 | num=$(cat $clashdir/web_save | wc -l)
309 | for i in `seq $num`;
310 | do
311 | group_name=$(awk -F ',' 'NR=="'${i}'" {print $1}' $clashdir/web_save | sed 's/ /%20/g')
312 | now_name=$(awk -F ',' 'NR=="'${i}'" {print $2}' $clashdir/web_save)
313 | curl -sS -X PUT -H "Authorization: Bearer ${secret}" -H "Content-Type:application/json" http://localhost:${db_port}/proxies/"${group_name}" -d "{\"name\":\"${now_name}\"}" >/dev/null
314 | done
315 | exit 0
316 | }
317 | web_save_auto(){
318 | if [ -n "$cronpath" ];then
319 | if [ -z "$(cat $cronpath | grep '保存节点配置')" ];then
320 | echo '*/10 * * * * test -n "$(pidof clash)" && /etc/init.d/clash web_save #每10分钟保存节点配置' >> $cronpath
321 | chmod 600 $cronpath
322 | fi
323 | else
324 | echo 找不到定时任务配置文件,无法添加守护进程!
325 | echo 请进入定时任务菜单手动指定系统定时任务文件路径!!!
326 | fi
327 | }
328 | afstart(){
329 | #读取配置文件
330 | getconfig
331 | #修改iptables规则使流量进入clash
332 | stop_iptables
333 | [ "$redir_mod" != "纯净模式" ] && start_dns
334 | [ "$redir_mod" != "纯净模式" ] && [ "$redir_mod" != "Tun模式" ] && start_redir
335 | #标记启动时间
336 | mark_time
337 | #设置本机代理
338 | [ "$local_proxy" = "已开启" ] && $0 set_proxy $mix_port
339 | #启用面板配置自动保存
340 | web_save_auto
341 | #后台还原面板配置
342 | [ -f $clashdir/web_save ] && web_restore &
343 | }
344 |
345 | case "$1" in
346 |
347 | afstart)
348 | afstart
349 | ;;
350 | start)
351 | #读取配置文件
352 | getconfig
353 | #使用内置规则强行覆盖config配置文件
354 | [ "$modify_yaml" != "已开启" ] && modify_yaml
355 | #使用不同方式启动clash服务
356 | if [ "$start_old" = "已开启" ];then
357 | $clashdir/clash -d $clashdir >/dev/null 2>&1 &
358 | sleep 1
359 | daemon
360 | afstart
361 | elif [ -f /etc/rc.common ];then
362 | /etc/init.d/clash start
363 | else
364 | systemctl start clash.service
365 | fi
366 | ;;
367 | stop)
368 | #读取配置文件
369 | getconfig
370 | #保存面板配置
371 | web_save
372 | #删除守护进程&面板配置自动保存
373 | sed -i /clash保守模式守护进程/d $cronpath >/dev/null 2>&1
374 | sed -i /面板配置自动保存/d $cronpath >/dev/null 2>&1
375 | #多种方式结束进程
376 | if [ -f /etc/rc.common ];then
377 | /etc/init.d/clash stop >/dev/null 2>&1
378 | else
379 | systemctl stop clash.service >/dev/null 2>&1
380 | fi
381 | killall -9 clash >/dev/null 2>&1
382 | #清理iptables
383 | stop_iptables
384 | #禁用本机代理
385 | [ "$local_proxy" = "已开启" ] && $0 unset_proxy
386 | ;;
387 | restart)
388 | $0 stop
389 | $0 start
390 | ;;
391 | getyaml)
392 | getconfig
393 | getyaml
394 | ;;
395 | daemon)
396 | daemon
397 | ;;
398 | web_save)
399 | getconfig
400 | web_save
401 | ;;
402 | set_proxy)
403 | echo 'export all_proxy=http://127.0.0.1:'"$2" >> /etc/profile
404 | echo 'export ALL_PROXY=$all_proxy' >> /etc/profile
405 | ;;
406 | unset_proxy)
407 | sed -i '/all_proxy/'d /etc/profile
408 | sed -i '/ALL_PROXY/'d /etc/profile
409 | ;;
410 | esac
411 |
412 | exit 0
413 |
--------------------------------------------------------------------------------