├── 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 | --------------------------------------------------------------------------------