226 Commits

Author SHA1 Message Date
juewuy
4819ad3d70 1.9.1release 2024-12-01 10:25:03 +08:00
github-actions[bot]
b1ca8ff331 自动更新最新Dashboard、地址库、根证书 2024-11-30 18:02:34 +00:00
github-actions[bot]
603fba86c6 自动更新最新Dashboard、地址库、根证书 2024-11-23 18:02:40 +00:00
juewuy
95369f6c98 v1.9.1rc11
~修复fakeip过滤列表无法删除超过10行以上内容的问题
~修复导入部分包含json格式节点的yaml配置文件时无法识别节点的bug
2024-11-21 12:33:14 +08:00
github-actions[bot]
5abadbbf3d 自动更新最新Dashboard、地址库、根证书 2024-11-16 18:02:36 +00:00
github-actions[bot]
bfd608b3f8 自动更新最新Dashboard、地址库、根证书 2024-11-09 18:02:20 +00:00
github-actions[bot]
2b8864d463 自动更新最新Dashboard、地址库、根证书 2024-11-02 18:02:43 +00:00
juewuy
469d279066 v1.9.1rc10打包 2024-11-02 19:03:02 +08:00
juewuy
f481248a18 ~修复仅设置ip地址过滤时局域网过滤功能依然显示未启用的bug
~修复使用自定义ip规则时,singbox内核启动报错的问题
~修复删除自定义ip规则时的报错问题
2024-11-02 19:02:38 +08:00
github-actions[bot]
4d84fdaaff 自动更新最新Dashboard、地址库、根证书 2024-10-26 18:02:31 +00:00
juewuy
59d36e8c65 格式化代码 2024-10-20 11:02:19 +08:00
juewuy
b2a457908d v1.9.1rc9打包 2024-10-20 10:53:12 +08:00
juewuy
d8a9ce9ec3 ~增加对自定义保留地址段的输入校验机制
~尝试修复部分情况下安装时未正确初始化的bug
~修复nftables-redir模式下会错误运行tproxy模式的bug
2024-10-20 10:52:27 +08:00
github-actions[bot]
530c0c4ce6 自动更新最新Dashboard、地址库、根证书 2024-10-19 18:02:24 +00:00
juewuy
d73e95c5c5 v1.9.1rc8打包 2024-10-19 14:45:08 +08:00
juewuy
c98e50bf01 ~修复ipv6-fakeip地址被错误屏蔽的bug
~将final-dns改为proxydns以解决部分dns泄露问题
~修复nftables模式在白名单为空时会错误路由外部流量的bug
~修复ipv6-tporxy模式下部分iptables内容无法正确注销的bug
2024-10-19 14:43:54 +08:00
juewuy
8939ef4241 v1.9.1rc7打包 2024-10-13 14:42:56 +08:00
juewuy
de554bb283 ~修复在找不到容器虚拟机ip地址依然会启动本机容器代理的bug
~修复部分情况下无法正确切换防火墙模式的bug
~修复grep命令相关警告
~修复在部分没有ip6tables命令设备上会出现报错的bug
~修复条件任务“防火墙启动后执行”在插入fw4版本防火墙时会导致防火墙启动文件错乱的bug
2024-10-13 14:42:14 +08:00
github-actions[bot]
fcba4d21fc 自动更新最新Dashboard、地址库、根证书 2024-10-12 18:02:30 +00:00
github-actions[bot]
2401c2737c 自动更新最新Dashboard、地址库、根证书 2024-10-05 18:02:32 +00:00
juewuy
3c4b64d291 v1.9.1rc6打包 2024-10-01 09:58:39 +08:00
juewuy
273a2359d2 ~修复自启延迟会在手动启动时生效的bug 2024-10-01 09:54:41 +08:00
juewuy
fa49934a71 ~重写在线生成配置校验逻辑,修复相关报错 2024-10-01 09:49:10 +08:00
juewuy
9f4bfdb1b1 v1.9.1rc5打包 2024-09-29 13:17:47 +08:00
juewuy
78808bee20 ~增加自定义保留地址段功能
~优化支持华硕设备本机代理
~优化在线获取配置文件校验,正确处理未获取节点时的报错信息
~修复自动获取配置文件失败超过4次后会无限重复的bug
~修复nftables模式下会错误拦截设备正常ipv6流量的bug
2024-09-29 13:17:12 +08:00
juewuy
c6f9859e9a ~将华硕自启命令改为使用&后台执行 2024-09-29 13:14:00 +08:00
github-actions[bot]
773de08341 自动更新最新Dashboard、地址库、根证书 2024-09-28 18:02:32 +00:00
juewuy
aa759d3b8d v1.9.1rc4fix2打包 2024-09-26 07:53:57 +08:00
juewuy
995bc451ec ~回退cda68af040 提交,以修复大量设备访问谷歌服务出现问题 2024-09-26 07:52:24 +08:00
juewuy
0b8c0e646d v1.9.1rc4fix
~修复iptables报错
2024-09-22 17:27:04 +08:00
juewuy
c85bfc53a0 v1.9.1rc4打包 2024-09-22 16:27:42 +08:00
juewuy
047297ba2a ~为华硕设备添加基于下载大师的自启选项
~增加对mix、redir、tproxy端口为目标流量的拦截机制以防止回环
~增加对华硕设备切换使用meta内核的警告信息
2024-09-22 16:26:59 +08:00
juewuy
e203938ca6 Merge branch 'dev' of https://github.com/juewuy/ShellCrash into dev 2024-09-22 16:11:14 +08:00
juewuy
cda68af040 https://github.com/juewuy/ShellCrash/issues/777 2024-09-22 16:11:01 +08:00
github-actions[bot]
98fc357402 自动更新最新Dashboard、地址库、根证书 2024-09-21 18:02:29 +00:00
juewuy
27539f1cc3 Merge pull request #773 from kingsey/dev
修复 missing ] 报错
2024-09-21 12:52:35 +08:00
juewuy
f2c88356c2 Merge pull request #775 from abcfy2/patch-1
fix DoH/DoT always fallback check /etc/ssl/
2024-09-19 16:34:23 +08:00
Feng Yu
903b6385b0 Merge pull request #1 from abcfy2/patch-2
Update webget.sh
2024-09-19 16:32:58 +08:00
Feng Yu
6015bc4425 Update webget.sh 2024-09-19 16:21:09 +08:00
Feng Yu
95c507f61e Update menu.sh 2024-09-19 15:44:38 +08:00
Feng Yu
52d3fa08d9 fix DoH/DoT always fallback check /etc/ssl/ 2024-09-19 15:37:15 +08:00
kingsey
88a334012f 修复 missing ] 2024-09-17 15:22:37 +08:00
juewuy
999e42c9b1 Merge pull request #771 from DustinWin/dev
修改 ruleset 过时链接;微调格式
2024-09-17 06:52:16 +08:00
DustinWin
e2af3ba63e 修改 ruleset 过时链接;微调格式 2024-09-16 20:46:20 +08:00
juewuy
fd2c60e1f2 v1.9.1rc4-test打包 2024-09-16 16:35:53 +08:00
juewuy
023787a712 ~为华硕设备添加基于下载大师的自启选项(未测试)
~修复部分设备因未开机加载tproxy相关模块而导致tproxy代理不可用的问题
~修复未安装iptables的用户启动时的大量无意义报错
~其他优化及修复
2024-09-16 16:35:12 +08:00
juewuy
1bcd7b69d5 Merge branch 'master' of https://github.com/juewuy/ShellCrash into dev 2024-09-15 15:34:57 +08:00
juewuy
c553475e8a v1.9.1rc3打包 2024-09-15 15:34:15 +08:00
juewuy
5ec0b9c238 ~修复tun或混合模式下,屏蔽quic功能未能实际生效的bug
~优化了一下初始化脚本中对nftables和iptables的使用判断
~默认的常用端口过滤列表中,移除了对53和123端口的支持
~修复部分情况下因ipv6dns未能正确劫持或拦截导致的dns劫持失败的问题
2024-09-15 15:33:10 +08:00
github-actions[bot]
a698c923c2 自动更新最新Dashboard、地址库、根证书 2024-09-14 18:02:20 +00:00
juewuy
11ea4ce4aa Merge pull request #765 from KeplerSSSSS/patch-1
Update ShellClash_Full.ini
2024-09-13 07:54:34 +08:00
KeplerSSSSS
c4d4ad86b9 Update ShellClash_Full.ini 2024-09-13 03:53:56 +08:00
github-actions[bot]
8721743020 自动更新最新Dashboard、地址库、根证书 2024-09-07 18:02:36 +00:00
juewuy
d41a5fde67 v1.9.1rc2打包 2024-09-07 21:05:36 +08:00
juewuy
55916882b1 ~修复因自启延迟与守护进程冲突导致的开机启动失败的问题 2024-09-07 21:05:13 +08:00
juewuy
4949e9ce1c v1.9.1rc1打包 2024-09-06 09:00:34 +08:00
juewuy
f790aee120 ~修复部分设备因iptables版本过低导致-w参数无法使用的问题 2024-09-03 08:15:50 +08:00
juewuy
ca72df9584 v1.9.1beta16打包 2024-09-01 15:01:07 +08:00
juewuy
0247645770 ~增加基于IP和IP地址段的局域网过滤功能 2024-09-01 14:53:35 +08:00
juewuy
58e644f9f4 ~为iptables添加-w参数
~修复replace_default_host_ipv4功能未实际生效的bug
2024-09-01 12:40:01 +08:00
juewuy
a29d66ec1c ~将update.sh更名为webget.sh,以修复部分华硕设备会误删文件的问题 2024-09-01 12:06:18 +08:00
github-actions[bot]
cf64cd48b8 自动更新最新Dashboard、地址库、根证书 2024-08-31 18:02:33 +00:00
juewuy
f449bea0c7 v1.9.1beta15打包 2024-08-25 21:25:58 +08:00
juewuy
f359cb866e ~修复容器环境下无法使用tproxy的问题
~为meta内核增加对quic流量的域名嗅探参数
2024-08-25 21:25:20 +08:00
juewuy
cdb4b94471 Merge branch 'dev' of https://github.com/juewuy/ShellCrash into dev 2024-08-25 21:12:10 +08:00
juewuy
90606590a4 ~为iptables添加-w参数以解决部分情况下无法注销的问题 2024-08-25 21:12:03 +08:00
juewuy
6a813f1ca6 Merge pull request #743 from eyebrowkang/dev
fix: 修复nftables规则重复插入的问题
2024-08-25 20:50:44 +08:00
juewuy
1918d41bb4 Merge pull request #738 from DustinWin/dev
修改 sing-boxp 说明文档链接
2024-08-25 20:49:32 +08:00
juewuy
e64bafeb04 ~新增独立的容器/虚拟机代理开关,以解决代理失败的问题
~回退对singbox入站添加"domain_strategy":"prefer_ipv4"参数的改动
2024-08-25 20:48:41 +08:00
eyebrow
31a1f8ef4a fix: 修复nftables规则重复插入的问题 2024-08-25 10:01:40 +08:00
DustinWin
4c105733fa 修改移动根证书文件时的错误路径 2024-08-25 02:01:20 +08:00
DustinWin
52741c719c 修改 sing-boxp 说明文档链接
地址位于 ShellCrash -9 - 2。说明文档生成项目 https://github.com/DustinWin/sing-boxp-docs ,每日同步更新。
2024-08-21 02:44:12 +08:00
juewuy
b8af49fcbe v1.9.1beta14打包 2024-08-17 19:59:19 +08:00
juewuy
b524c6e32a v1.9.1beta14
~同步最新版本meta内核及singboxp内核
~延迟启动功能改回在afstart函数执行,以防止systemd启动超时
~透明代理规则增加过滤53端口机制,防止dns被tun或者tproxy劫持导致的一系列问题
~为singbox内核入站添加"domain_strategy":"prefer_ipv4"字段以适应geoip相关规则
~修复singbox内核fakeip列表中关于正则表达式匹配有误的bug
2024-08-17 19:08:41 +08:00
github-actions[bot]
7384f69856 更新meta内核至v1.18.7 2024-08-17 10:56:15 +00:00
github-actions[bot]
cc1f9391f9 更新singboxp内核至1.10.0-alpha.29-067c81a7 2024-08-17 10:51:07 +00:00
juewuy
ec1ccf21dc Merge pull request #733 from qzydustin/dev
Fix typo in set_core_config()
2024-08-17 08:52:27 +08:00
juewuy
1ec46a2367 Merge pull request #709 from yijiangchengming/patch-1
Update start.sh  增加容器自启方式
2024-08-17 08:50:56 +08:00
juewuy
bb325d23ae Merge pull request #707 from DustinWin/dev
修改小米相关域名走 realip
2024-08-17 08:48:57 +08:00
Zhenyu Qi
0e0504cefa Fix typo in set_core_config() 2024-08-14 21:16:36 -07:00
github-actions[bot]
f9fcd715c9 自动更新最新Dashboard、地址库、根证书 2024-08-10 18:02:19 +00:00
github-actions[bot]
9f00e7ec23 自动更新最新Dashboard、地址库、根证书 2024-08-03 18:02:19 +00:00
DustinWin
160b07cdca 更改证书更新方式,原项目已停更 2024-07-29 18:33:03 +08:00
github-actions[bot]
8c558765ef 自动更新最新Dashboard、地址库、根证书 2024-07-27 18:02:21 +00:00
juewuy
dea65009d2 Merge pull request #715 from RikudouPatrickstar/pr
内存占用以 MB 显示
2024-07-27 19:49:47 +08:00
RikudouPatrickstar
8fc502d3e7 内存占用以 MB 显示 2024-07-27 16:27:02 +08:00
github-actions[bot]
4f25207aba 自动更新最新Dashboard、地址库、根证书 2024-07-20 18:02:42 +00:00
yijiangchengming
29c00c5937 Update start.sh 增加容器自启方式
请将CMD设置为"$CRASHDIR"/start.sh start infinity
例如 /etc/ShellCrash/start.sh start infinity
2024-07-14 20:15:02 +08:00
github-actions[bot]
b8fe2666a1 自动更新最新Dashboard、地址库、根证书 2024-07-13 18:02:19 +00:00
DustinWin
aaa9503c14 修改小米相关域名走 realip
小米天气又新增了一个域名 `wtradv.market.xiaomi.com` 必须走 realip 才能正常显示“降水预报”,所以改成 `+.market.xiaomi.com` 后缀格式
2024-07-11 16:37:56 +08:00
juewuy
16a7f3e249 Merge pull request #705 from DustinWin/dev
添加“向日葵远程控制”域名,解决无法登录的问题
2024-07-11 03:03:29 +08:00
DustinWin
2835d9d532 添加“向日葵远程控制”域名,解决无法登录的问题 2024-07-10 23:07:58 +08:00
github-actions[bot]
729ab71e49 自动更新最新Dashboard、地址库、根证书 2024-07-06 18:02:14 +00:00
juewuy
d2c468cb38 v1.9.1beta13打包 2024-07-06 15:42:16 +08:00
juewuy
91a0866b9e ~合并https://github.com/juewuy/ShellCrash/pull/700并优化文本提示
~优化定时任务中周日的输入提示并增加容错机制
~修复iptables-tproxy模式禁用quic失败的问题
~修复会将tun所用网段加入局域网代理的bug
2024-07-06 15:41:53 +08:00
juewuy
390f47148a ~优化人工智能节点选择 2024-07-06 15:38:48 +08:00
juewuy
dd730ea9cd Merge pull request #700 from delichik/dev
feat(firewall/set_cust_host_ipv4): 允许使用自定义网段覆盖默认透明路由网段
2024-07-06 14:59:58 +08:00
delichik
f1f8fa4395 feat(firewall/set_cust_host_ipv4): 允许使用自定义网段覆盖默认透明路由网段 2024-07-05 15:45:41 +08:00
juewuy
58bc356628 Merge pull request #697 from mphin/dev
修复部分返回上级菜单错误的提示
2024-07-03 08:10:21 +08:00
mphin
4fe3dfa173 修复部分返回上级菜单错误的提示 2024-07-03 05:55:01 +08:00
juewuy
ce86942ac7 v1.9.1beta12打包 2024-06-30 15:50:02 +08:00
juewuy
1be0a35d20 Merge branch 'dev' of https://github.com/juewuy/ShellCrash into dev 2024-06-30 15:49:20 +08:00
juewuy
792edb67a4 ~优化本机出口IP获取机制,修复部分设备无法正常代理本机流量的问题
~meta的tun参数改为auto-detect-interface: false,用于解决部分用户无法访问内网设备的问题(实验性)
2024-06-30 15:49:10 +08:00
juewuy
e131179be1 ~增加部分ai规则 2024-06-30 15:47:44 +08:00
github-actions[bot]
d49d3a97b4 自动更新最新Dashboard、地址库、根证书 2024-06-29 18:02:17 +00:00
juewuy
286f95c290 Merge branch 'dev' of https://github.com/juewuy/ShellCrash into dev 2024-06-29 14:33:51 +08:00
juewuy
1acb1464bd Merge pull request #687 from jelly21fish/patch-1
支持ipv6本机代理 Support ipv6 local proxy
2024-06-27 20:06:35 +08:00
jelly21fish
58d3cda5b6 fix typo 2024-06-26 13:04:04 +08:00
juewuy
f3f51d93f0 Merge branch 'dev' of https://github.com/juewuy/ShellCrash into dev 2024-06-25 09:27:46 +08:00
juewuy
561354434a ~修复部分特殊情况下2-1菜单无法进入的bug 2024-06-25 09:27:36 +08:00
jelly21fish
759c367837 fix 2024-06-24 00:49:03 +08:00
jelly21fish
47b66859b0 fix typo 2024-06-24 00:45:12 +08:00
jelly21fish
d8f1cf245b fix typo 2024-06-24 00:37:47 +08:00
jelly21fish
9124d0fade fix typo 2024-06-24 00:31:39 +08:00
jelly21fish
23d10a8be6 ipv6 local proxy 2024-06-23 18:58:03 +08:00
github-actions[bot]
d7647580f8 自动更新最新Dashboard、地址库、根证书 2024-06-22 18:02:34 +00:00
juewuy
bd9249c6a4 Merge pull request #674 from RedContritio/patch-1
Update README_CN.md
2024-06-20 21:55:55 +08:00
RedContritio
94815d1ce7 Update README_CN.md
update `Clash` to `crash`
2024-06-19 22:46:23 +08:00
juewuy
f5292006f4 已修改 rules/922proxy.ini 2024-06-16 15:17:28 +08:00
github-actions[bot]
0992b1c208 自动更新最新Dashboard、地址库、根证书 2024-06-15 18:03:27 +00:00
juewuy
f799fbed4f v1.9.1beta11
~优化ipv6代理,修复部分情况下无法代理局域网设备及dns的问题
~移除singboxp内核always_resolve_udp功能
~修复局域网过滤时因找不到mac地址列表文件而出现的报错
2024-06-13 11:53:10 +08:00
juewuy
86b9d34812 Merge pull request #658 from DustinWin/dev
添加“向日葵远程控制”域名,解决无法连接的问题
2024-06-09 08:14:03 +08:00
github-actions[bot]
7156178949 自动更新最新Dashboard、地址库、根证书 2024-06-08 18:02:40 +00:00
DustinWin
08e24e206e 添加“向日葵远程控制”域名,解决无法连接的问题 2024-06-09 01:01:02 +08:00
juewuy
d873678ac6 v1.9.1beta10打包 2024-06-08 09:47:09 +08:00
juewuy
44efdb99ea ~providers功能适配1.9.0+版本singboxp内核
~修复启动时提示ip命令相关报错
2024-06-08 09:46:40 +08:00
juewuy
1dee6eaaed Merge pull request #655 from DustinWin/dev
fake_ip_filter 适配 sing-box v1.9.0 关于 `domain_suffix` 的新特性
2024-06-06 21:23:01 +08:00
DustinWin
b904405d0c fake_ip_filter 适配 sing-box v1.9.0 关于 domain_suffix 的新特性 2024-06-06 21:02:04 +08:00
juewuy
d2b094718a v1.9.1beta9打包 2024-06-06 14:42:00 +08:00
juewuy
5ff25682c1 ~优化了根证书更新功能,支持镜像化设备重启后自动覆盖原文件
~修复华硕设备禁用quic功能报错的问题
~修复mac黑名单会错误识别为白名单的bug
~修复新手引导选择本机代理时的报错等问题
~修复ax6s/ax6000等设备tun修复工具修复失败的问题
2024-06-06 14:40:22 +08:00
github-actions[bot]
32f48046fa 更新singbox内核至1.9.0 2024-06-06 05:59:17 +00:00
github-actions[bot]
fbb8bbf25e 更新singboxp内核至1.9.0-5dd2e2da 2024-06-06 05:53:58 +00:00
github-actions[bot]
36c9601749 更新meta内核至v1.18.5 2024-06-06 05:50:46 +00:00
juewuy
284b89f705 Update README_CN.md 2024-06-06 13:47:30 +08:00
juewuy
0afd40443b Merge pull request #653 from DustinWin/dev
添加 `Xiaomi` 相关域名,解决小米天气“降水预报”异常的问题
2024-06-02 19:36:24 +08:00
DustinWin
ac505e1a9a 添加 Xiaomi 相关域名,解决小米天气“降水预报”异常的问题 2024-06-02 17:42:28 +08:00
github-actions[bot]
a330ad8b5b 自动更新最新Dashboard、地址库、根证书 2024-06-01 18:02:29 +00:00
github-actions[bot]
cc9cf7ddbf 自动更新最新Dashboard、地址库、根证书 2024-05-25 18:02:20 +00:00
juewuy
5ed7ab3269 Merge pull request #641 from SharerMax/fix/tmp_find
修复`/tmp` 内核文件不能正确查找
2024-05-25 16:39:17 +08:00
Max Zhao
a8c2fb1a6f 修复/tmp 内核文件不能正确查找
`.*[(gz)(zip)(7z)(tar)]$` 只能匹配以字符  `g`,`z`,`i`,`p`,`t`,`a`,`r`  结尾的字符串,并不能完全匹配以`gz`,`zip`,`7z`,'tar' 结尾的字符串
2024-05-25 16:24:24 +08:00
github-actions[bot]
5baf50f16b 自动更新最新Dashboard、地址库、根证书 2024-05-18 18:02:06 +00:00
juewuy
63161a24c0 v1.9.1beta8打包 2024-05-18 17:22:32 +08:00
juewuy
4fdc3fffec ~修复nftables—tun模式无法劫持流量的bug
~回退singbox内核dns中对independent_cache和reverse_mapping的改动
~修复部分情况下启动提示缺少dns-out的问题
~修复屏蔽QUIC功能ip6tables误写为iptables的bug
2024-05-18 17:22:01 +08:00
juewuy
cdad31d90b 已修改 rules/922proxy.ini 2024-05-17 08:56:13 +08:00
github-actions[bot]
edf175a8b8 自动更新最新Dashboard、地址库、根证书 2024-05-11 18:02:12 +00:00
juewuy
747670f996 Merge pull request #635 from DustinWin/dev
添加 Steam 下载需要走 realip 的域名
2024-05-07 07:21:38 +08:00
DustinWin
830cb0288a 添加 Steam 下载需要走 realip 的域名 2024-05-07 04:13:56 +08:00
github-actions[bot]
2922173f8a 自动更新最新Dashboard、地址库、根证书 2024-05-04 18:02:16 +00:00
juewuy
3089db422e fix:为修复部分设备ip6tables报错,将ipv6dns的兜底行为由reject改为了return 2024-04-28 21:33:57 +08:00
juewuy
de4ddea6d3 Merge branch 'dev' of https://github.com/juewuy/ShellCrash into dev
# Conflicts:
#	bin/version
2024-04-28 20:55:37 +08:00
juewuy
83b619e104 v1.9.1beta7打包 2024-04-28 20:54:57 +08:00
juewuy
384cd7c339 ~修复nftables—tproxy模式无法劫持流量的bug 2024-04-28 20:54:18 +08:00
github-actions[bot]
9400fc702d 自动更新最新Dashboard、地址库、根证书 2024-04-27 18:02:22 +00:00
juewuy
00f10b81f9 ~修复部分情况下向systemd输出大量无用日志的bug
~修复首次使用6-2时倒入失败的bug
~尝试修复部分设备因ipv6导致的dns劫持失败的问题
2024-04-21 14:04:59 +08:00
github-actions[bot]
7a6b7a7e5a 自动更新最新Dashboard、地址库、根证书 2024-04-20 18:02:16 +00:00
juewuy
46a5c5eea8 Merge pull request #624 from wray-lee/dev
修改action中的bot邮箱和username,便于区分手动运行和action
2024-04-16 07:08:11 +08:00
Wray
0741ab8ab2 Update release_new_version.yaml 2024-04-16 01:43:09 +08:00
Wray
d60cd78336 Update update_singbox_core.yaml 2024-04-16 01:42:39 +08:00
Wray
93402e1dcb Update update_meta_core.yaml 2024-04-16 01:42:23 +08:00
Wray
23c1b43edd Update bin_update.yml 2024-04-16 01:41:22 +08:00
juewuy
fe37b4f7bf v1.9.1beta6
~修复首次启动时提示找不到内核的bug
2024-04-14 09:25:44 +08:00
juewuy
69e62994bd Merge pull request #621 from DustinWin/patch-4
修改 fake_ip_filter.list 中的 `domain_suffix` 的问题
2024-04-14 08:55:45 +08:00
Bot
d703ac6d83 自动更新最新Dashboard、地址库、根证书 2024-04-13 18:03:13 +00:00
DustinWin
baf4ca07e1 修改 fake_ip_filter.list 中的 domain_suffix 的问题 2024-04-13 22:02:37 +08:00
juewuy
95bc25831f v1.9.1beta5打包 2024-04-13 21:57:25 +08:00
juewuy
4098134329 https://github.com/juewuy/ShellCrash/pull/619 修复报错 2024-04-13 21:56:45 +08:00
juewuy
86a8ee9768 Merge branch 'dev' of https://github.com/juewuy/ShellCrash into dev 2024-04-13 21:32:11 +08:00
juewuy
a4cab8f66b ~修复mac过滤报错 2024-04-13 21:32:04 +08:00
juewuy
9a3b9e3acc Merge pull request #619 from DustinWin/patch-2
修改 fake_ip_filter.list 适配方式,尽量使用 `domain` 和 `domain_suffix`
2024-04-13 21:31:54 +08:00
DustinWin
119c0fab50 修改 fake_ip_filter.list 适配方式,尽量使用 domaindomain_suffix
fake_ip_filter.list 仅中间区域带有 `*` 的域名使用 `domain_regex` 规则类型
2024-04-13 21:30:28 +08:00
juewuy
986c54feda v1.9.1beta4打包 2024-04-13 21:03:13 +08:00
juewuy
09cb52f8e0 ~修复偶发的启动报错 2024-04-13 21:02:33 +08:00
juewuy
c5b577593f Merge branch 'dev' of https://github.com/juewuy/ShellCrash into dev
# Conflicts:
#	scripts/start.sh
2024-04-13 20:56:44 +08:00
juewuy
e19559905e Merge pull request #617 from DustinWin/patch-1
修改 fake_ip_filter.list 适配方式,尽量使用 `domain` 和 `domain_suffix`
2024-04-13 20:40:41 +08:00
juewuy
3b2c4f7a13 ~修复因格式化导致的bug
~适配v2bapi脚本
2024-04-13 20:36:48 +08:00
DustinWin
e50ac88ca0 修改 fake_ip_filter.list 适配方式,尽量使用 domaindomain_suffix
fake_ip_filter.list 仅中间区域带有 `*` 的域名使用 `domain_regex` 规则类型
2024-04-13 18:49:42 +08:00
juewuy
5daef27891 ~使用shell工具格式化脚本 2024-04-13 14:01:58 +08:00
juewuy
c5e28110cb ~增加开机启动时的联网检测机制,以修复部分设备开机自启失败的问题
~尝试增加启动等待时长至10s
~将singbox内核DNS的默认reverse_mapping及independent_cache功能设置为false
~移除了wget命令的重试次数,以兼容更多设备
~修复部分脚本语法错误
2024-04-13 11:19:01 +08:00
juewuy
20c7212047 Merge pull request #615 from DustinWin/patch-1
同步 OpenClash 中的 fake_filter
2024-04-11 16:31:49 +08:00
DustinWin
f83fb78e6a 同步 OpenClash 中的 fake_filter
同步地址:https://github.com/vernesong/OpenClash/blob/master/luci-app-openclash/root/etc/openclash/custom/openclash_custom_fake_filter.list
2024-04-11 16:10:32 +08:00
juewuy
43e57d91ec 已修改 rules/922proxy.ini 2024-04-09 11:18:27 +08:00
juewuy
0463d938a7 删除私密ip规则,因为可能导致分流异常 2024-04-09 11:09:38 +08:00
juewuy
d8d43f9625 更新 922proxy.ini 2024-04-09 10:35:51 +08:00
Bot
fcb7c90935 自动更新最新Dashboard、地址库、根证书 2024-04-06 18:02:07 +00:00
juewuy
82b51cd22c v1.9.1beta3打包 2024-04-05 18:22:59 +08:00
juewuy
f5618ef3d8 ~修复dns局域网过滤失效的bug
~修复初始化脚本报错的bug
~尝试修复部分华硕设备开机启动失效的问题
~尝试修复部分小米设备开机启动失效的问题
2024-04-05 18:22:33 +08:00
juewuy
6eff925b1d v1.9.1beta2打包 2024-04-04 20:30:18 +08:00
juewuy
ef4d6f51eb ~优化了推送机制,现在统一使用POST接口进行推送
~新增加在支持的设备上创建/usr/bin/crash启动文件以修复部分设备的环境变量写入失败问题
~将singbox的内置tun网卡网段改为172.19.0.1/30,以修复tun模式下会将域名重定向到127.0.0.1的bug
~优化了延迟启动,现在延迟会在内核启动前进行而不是设置防火墙之前
~优化了小米设备的自启机制,现在仅当检测到wan口ip时才会进行启动,以解决部分设备无法自启的问题
~修复初始化脚本的若干报错
~脚本在支持ash的环境会强制调用ash解析而不是sh
~修复新装脚本时,无法调用iptables的bug
~
2024-04-04 20:29:46 +08:00
juewuy
c20e8f3d15 Merge branch 'dev' of https://github.com/juewuy/ShellCrash into dev 2024-04-04 14:45:46 +08:00
juewuy
d796947688 ~singbox的tun入站默认启用sniff以解决目标地址错误的问题
~防火墙中,增加过滤外部dns请求的功能
2024-04-04 14:45:35 +08:00
juewuy
1c8c149fe8 Merge pull request #603 from wray-lee/dev
使配置模板中🆎 增强拦截生效
2024-04-02 19:20:08 +08:00
wray-lee
9ec018bf5f 使配置模板中🆎 增强拦截生效 2024-04-02 18:55:06 +08:00
juewuy
0d1383d132 Merge pull request #602 from DustinWin/patch-1
修改生成 sing-box `dns.rules` 里 `domain_regex` 的错误
2024-04-02 09:02:59 +08:00
DustinWin
1d84e34134 修改生成 sing-box dns.rulesdomain_regex 的错误
修改生成 sing-box `dns.rules` 里 `domain_regex` 的错误
2024-04-02 02:05:47 +08:00
Bot
d6d07abaef 自动更新最新Dashboard、地址库、根证书 2024-03-30 18:02:49 +00:00
juewuy
0033d86e65 Update core_auto_update.yml 2024-03-30 13:58:57 +08:00
juewuy
323b32ae0c Update core_auto_update.yml 2024-03-30 13:53:24 +08:00
juewuy
006d71b74b Update core_auto_update.yml 2024-03-30 13:51:36 +08:00
juewuy
afc81c884b Update core_auto_update.yml 2024-03-30 13:44:09 +08:00
juewuy
9a34a401c6 Update core_auto_update.yml 2024-03-30 13:38:48 +08:00
juewuy
65da11ec15 Update core_auto_update.yml 2024-03-30 13:12:05 +08:00
juewuy
b5fd6f0bef Update core_auto_update.yml 2024-03-30 13:09:07 +08:00
juewuy
745520d101 Update core_auto_update.yml 2024-03-30 13:08:07 +08:00
juewuy
2e05e80e2a 已修改 .github/workflows/core_auto_update.yml 2024-03-30 13:06:40 +08:00
juewuy
a1f4d48739 已修改 .github/workflows/core_auto_update.yml 2024-03-30 13:04:50 +08:00
juewuy
a8ebb6182e 已修改 .github/workflows/core_auto_update.yml 2024-03-30 13:03:07 +08:00
juewuy
63b02a830c 已修改 .github/workflows/core_auto_update.yml 2024-03-30 12:58:53 +08:00
juewuy
3956c955cf 优化 2024-03-30 12:42:24 +08:00
juewuy
cd67f55125 优化 2024-03-30 12:39:48 +08:00
juewuy
e7a5c48cce Merge pull request #597 from dotSpecs/dev
add aistudio.google.com
2024-03-26 16:35:31 +08:00
Specs
8b92402f00 add aistudio.google.com 2024-03-26 16:08:14 +08:00
Bot
d03dd1d4c6 自动更新最新Dashboard、地址库、根证书 2024-03-23 18:02:31 +00:00
juewuy
21f8035ef6 增加自动编译singboxp内核任务 2024-03-23 17:01:39 +08:00
juewuy
8f8a61191a 增加自动编译singboxp内核任务 2024-03-23 16:36:18 +08:00
juewuy
65c1678bc9 增加自动编译singboxp内核任务 2024-03-23 16:31:33 +08:00
juewuy
eb34a73270 增加自动编译singboxp内核任务 2024-03-23 16:04:43 +08:00
juewuy
164bcb9f26 已修改 .github/workflows/core_auto_update.yml 2024-03-23 15:44:14 +08:00
juewuy
381d905ed9 已修改 .github/workflows/core_auto_update.yml
已修改        .github/workflows/update_singbox_core.yaml
2024-03-23 15:39:35 +08:00
juewuy
575f1d5d4b Update core_auto_update.yml 2024-03-23 15:27:48 +08:00
juewuy
03e711a1ee Update core_auto_update.yml 2024-03-23 15:25:49 +08:00
juewuy
8f9a81057b Update core_auto_update.yml 2024-03-23 15:22:40 +08:00
juewuy
c057781314 已添加 .github/workflows/core_auto_update.yml 2024-03-23 15:20:53 +08:00
juewuy
1d43845a6e 已添加 .github/workflows/core_auto_update.yml 2024-03-23 14:59:23 +08:00
juewuy
fd1b592a7e v1.9.1beta1
~移除了所有不支持vless及hy的在线sub服务器并将重试次数降低到3次
~singbox内核不再默认启用ntp服务
~自动任务中重启命令优化
~修复providers中指定单独提供商生成配置失败的bug
~优化iptables/ip6tables检测机制,修复报错,修复旧设备ipv6运行出错导致的各种问题
~优化cn绕过检测机制,修复报错
~优化保持面板节点功能,增加了空文件校验,修复部分用户还原失败的bug
2024-03-19 13:58:02 +08:00
Bot
78d834bc7f 更新singboxp内核至1.9.0-beta.16-3140e7ac 2024-03-19 01:21:43 +00:00
juewuy
bebf39bf71 Update update_singbox_core.yaml 2024-03-19 09:19:09 +08:00
75 changed files with 65347 additions and 51107 deletions

View File

@@ -98,7 +98,14 @@ jobs:
rm -rf Yacd-meta-gh-pages
rm -rf metacubexd-gh-pages
echo 面板更新完成!
- name: Update certificate
run: |
wget https://raw.githubusercontent.com/curl/curl/master/scripts/mk-ca-bundle.pl
chmod +x ./mk-ca-bundle.pl
./mk-ca-bundle.pl
rm -f mk-ca-bundle.pl certdata.txt
- name: Update GeoIP
run: |
cd bin
@@ -112,13 +119,13 @@ jobs:
curl -kfSL -o geodata/geosite_cn.db https://github.com/SagerNet/sing-geosite/releases/latest/download/geosite-cn.db
curl -kfSL -o geodata/srs_geoip_cn.srs https://raw.githubusercontent.com/SagerNet/sing-geoip/rule-set/geoip-cn.srs
curl -kfSL -o geodata/srs_geosite_cn.srs https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-geolocation-cn.srs
curl -kfSL -o fix/ca-certificates.crt https://raw.githubusercontent.com/P3TERX/ca-certificates.crt/download/ca-certificates.crt
mv -f ../ca-bundle.crt ./fix/ca-certificates.crt
sed -i "s/GeoIP_v=.*/GeoIP_v=$(date '+%Y%m%d')/" version #修改版本号
echo 数据库及根证书文件更新完成!
- name: Commit and push
run: |
git config --global user.email "juewuy@gmail.com" && git config --global user.name "Bot"
git config --global user.email "github-actions[bot]@users.noreply.github.com" && git config --global user.name "github-actions[bot]"
git add . && git commit -m "自动更新最新Dashboard、地址库、根证书" || exit 0
git push

52
.github/workflows/core_auto_update.yml vendored Normal file
View File

@@ -0,0 +1,52 @@
name: core_auto_update
on:
schedule:
- cron: 0 18 * * *
workflow_dispatch:
jobs:
check_version:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
with:
repository: PuerNya/sing-box
ref: building
fetch-depth: 0
- name: Check version
run: |
git remote add sekai https://github.com/SagerNet/sing-box.git
git fetch --tags sekai
version_new=$(CGO_ENABLED=0 go run ./cmd/internal/read_tag)
version_old=$(curl -sSl https://github.com/juewuy/ShellCrash/releases/download/singbox_core_PuerNya/version)
if [ "$version_old" != "$version_new" ];then
echo a=$version_old >> $GITHUB_ENV
echo b=$version_new >> $GITHUB_ENV
else
echo "未检查到版本更新,已退出!"
exit 1
fi
auto_update_singboxp_with_wg:
needs: check_version
if: ${{ success() }}
permissions: write-all
uses: juewuy/ShellCrash/.github/workflows/update_singbox_core.yaml@dev
with:
tag1: PuerNya/sing-box
tag2: building
tag3: singbox_core_PuerNya
tag5: with_quic,with_dhcp,with_wireguard,with_shadowsocksr,with_ech,with_utls,with_clash_api,with_gvisor
secrets: inherit
cleanup:
needs: check_version
runs-on: ubuntu-latest
steps:
- name: cleanup
uses: Mattraks/delete-workflow-runs@main
with:
retain_days: 1
keep_minimum_runs: 2

View File

@@ -53,7 +53,7 @@ jobs:
- name: Commit and push
if: ${{ github.event.inputs.release_type != '内测版' }}
run: |
git config --global user.email "juewuy@gmail.com" && git config --global user.name "Bot"
git config --global user.email "github-actions[bot]@users.noreply.github.com" && git config --global user.name "github-actions[bot]"
git add . && git commit -m "${new_type} ${new_version} 打包" || exit 0
git push
if [[ "${new_type}" == "正式版" ]]; then

View File

@@ -178,7 +178,7 @@ jobs:
mv -f ./tmp/clash-linux-*.tar.gz ./bin/${crashcore}/
rm -fr ./tmp
sed -i "s/${crashcore}_v=.*/${crashcore}_v=${VERSION}/" ./bin/version
git config --global user.email "juewuy@gmail.com" && git config --global user.name "Bot"
git config --global user.email "github-actions[bot]@users.noreply.github.com" && git config --global user.name "github-actions[bot]"
git add . && git commit -m "更新${crashcore}内核至${VERSION}" || exit 0
git push

View File

@@ -23,6 +23,24 @@ on:
description: 'build tags'
required: false
type: string
workflow_call:
inputs:
tag1:
required: true
type: string
tag2:
required: true
type: string
tag3:
required: false
type: string
tag4:
required: false
type: string
tag5:
required: false
type: string
jobs:
go:
runs-on: ubuntu-latest
@@ -38,20 +56,20 @@ jobs:
runs-on: ubuntu-latest
needs: go
env:
REPO: ${{ github.event.inputs.tag1 }}
TAGS: ${{ github.event.inputs.tag5 }}
REPO: ${{ inputs.tag1 }}
TAGS: ${{ inputs.tag5 }}
outputs:
version: ${{steps.sing-box.outputs.version}}
tags: ${{steps.sing-box.outputs.tags}}
steps:
- uses: actions/checkout@v4.1.1
with:
repository: ${{ github.event.inputs.tag1 }}
ref: ${{ github.event.inputs.tag2 }}
repository: ${{ inputs.tag1 }}
ref: ${{ inputs.tag2 }}
fetch-depth: 0
- name: setup go
uses: actions/setup-go@v4.1.0
uses: actions/setup-go@v5.0.0
with:
go-version: ${{needs.go.outputs.version}}
@@ -61,7 +79,7 @@ jobs:
git remote add sekai https://github.com/SagerNet/sing-box.git
git fetch --tags sekai
version=$(CGO_ENABLED=0 go run ./cmd/internal/read_tag)
[ -z "$version" ] && version=${{ github.event.inputs.tag2 }}
[ -z "$version" ] && version=${{ inputs.tag2 }}
echo version=$version >> $GITHUB_OUTPUT
if [ -z "$TAGS" ];then
if [ "$REPO" = 'PuerNya/sing-box' ];then
@@ -120,15 +138,15 @@ jobs:
GOARM: ${{ matrix.goarm }}
GOMIPS: ${{ matrix.gomips }}
CGO_ENABLED: 0
REPO: ${{ github.event.inputs.tag1 }}
REPO: ${{ inputs.tag1 }}
TAGS: ${{needs.sing-box.outputs.tags}}
VERSION: ${{needs.sing-box.outputs.version}}
steps:
- name: Checkout sing-box
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
with:
repository: ${{ github.event.inputs.tag1 }}
ref: ${{ github.event.inputs.tag2 }}
repository: ${{ inputs.tag1 }}
ref: ${{ inputs.tag2 }}
fetch-depth: 1
- name: Setup Go
@@ -140,13 +158,9 @@ jobs:
if: ${{ env.REPO == 'PuerNya/sing-box' }}
uses: actions/checkout@v4.1.1
with:
ref: fix-interface
ref: building
path: sing
repository: PuerNya/sing
- name: replace sing
if: ${{ env.REPO == 'PuerNya/sing-box' }}
run: sed -i 's/^\/\/replace github.com.*$/replace github.com\/sagernet\/sing => .\/sing/' go.mod
- name: build core
id: build
@@ -164,8 +178,8 @@ jobs:
- sing-box
runs-on: ubuntu-latest
env:
RELEASE: ${{ github.event.inputs.tag3 }}
PUSHDIR: ${{ github.event.inputs.tag4 }}
RELEASE: ${{ inputs.tag3 }}
PUSHDIR: ${{ inputs.tag4 }}
VERSION: ${{needs.sing-box.outputs.version}}
steps:
- name: Checkout ShellCrash
@@ -188,18 +202,19 @@ jobs:
done
mv -f ./tmp/singbox-linux-mipsel-hardfloat.tar.gz ./tmp/singbox-linux-mipsle-hardfloat.tar.gz
mv -f ./tmp/singbox-linux-mipsel-softfloat.tar.gz ./tmp/singbox-linux-mipsle-softfloat.tar.gz
echo ${VERSION} > ./tmp/version
- name: Commit and push
if: ${{ env.PUSHDIR != '' }}
run: |
[ "${{ github.event.inputs.tag1 }}" = SagerNet/sing-box ] && crashcore='singbox'
[ "${{ github.event.inputs.tag1 }}" = PuerNya/sing-box ] && crashcore='singboxp'
[ "${{ inputs.tag1 }}" = SagerNet/sing-box ] && crashcore='singbox'
[ "${{ inputs.tag1 }}" = PuerNya/sing-box ] && crashcore='singboxp'
mkdir -p ./bin/${crashcore}
rm -fr ./bin/${crashcore}/*
mv -f ./tmp/singbox-linux-*.tar.gz ./bin/${crashcore}/
rm -fr ./tmp
sed -i "s/${crashcore}_v=.*/${crashcore}_v=${VERSION}/" ./bin/version
git config --global user.email "juewuy@gmail.com" && git config --global user.name "Bot"
git config --global user.email "github-actions[bot]@users.noreply.github.com" && git config --global user.name "github-actions[bot]"
git add . && git commit -m "更新${crashcore}内核至${VERSION}" || exit 0
git push
@@ -207,13 +222,14 @@ jobs:
if: ${{ env.RELEASE != '' && env.PUSHDIR == '' }}
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ github.event.inputs.tag3 }}
name: ${{ github.event.inputs.tag3 }}
body: "The ${{env.VERSION}} version of ${{ github.event.inputs.tag1 }} \n这是${{ github.event.inputs.tag1 }}的${{env.VERSION}}版本内核文件\nhttps://github.com/${{ github.event.inputs.tag1 }}/releases \nOnly support for ShellCrash\n仅适配ShellCrash项目"
tag_name: ${{ inputs.tag3 }}
name: ${{ inputs.tag3 }}
body: "The ${{env.VERSION}} version of ${{ inputs.tag1 }} \n这是${{ inputs.tag1 }}的${{env.VERSION}}版本内核文件\nhttps://github.com/${{ inputs.tag1 }}/releases \nOnly support for ShellCrash\n仅适配ShellCrash项目"
draft: false
prerelease: true
files: |
./tmp/singbox*.tar.gz
./tmp/version
- name: Cleanup Workflow
uses: Mattraks/delete-workflow-runs@main

View File

@@ -17,7 +17,7 @@
功能简介:
--
~通过管理脚本在Shell环境下便捷使用<br>
~通过管理脚本在Shell环境下便捷使用Mihomo/Singbox内核<br>
~支持在Shell环境下管理<br>
~支持在线导入订阅及配置链接<br>
~支持配置定时任务,支持配置文件定时更新<br>
@@ -131,8 +131,8 @@ export url='https://fastly.jsdelivr.net/gh/juewuy/ShellCrash@master' && sh -c "$
安装完成管理脚本后,执行如下命令使用~
```Shell
Clash #进入对话
Clash -h #帮助列表
crash #进入对话
crash -h #帮助列表
```
#### **运行时的额外依赖**<br>
@@ -160,5 +160,4 @@ ubus/iproute-doc 极低 缺少时无法正常获取本机host地址
机场推荐:
--
#### [大米-群友力荐,流媒体解锁,月付推荐](https://cloud.bigme.pro/user#/register?code=2PuWY9I7)<br>
#### [Dler-老牌稳定,流媒体解锁,年付推荐](https://dler.best/auth/register?affid=89698)<br>
#### [大米-群友力荐,流媒体解锁,月付推荐](https://1s.bigmeok.me/user#/register?code=2PuWY9I7)<br>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 KiB

After

Width:  |  Height:  |  Size: 495 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,3 +1,4 @@
1.9.1
1.9.0
1.8.0
1.7.0

View File

@@ -1,8 +1,8 @@
clashnet_v=v1.7.6
clashpre_v=2022.11.25
clash_v=v1.7.1
meta_v=v1.18.1
singboxp_v=1.8.5-73d97226
singbox_v=1.8.8
versionsh=1.9.1alpha9
GeoIP_v=20240316
meta_v=v1.18.7
singboxp_v=1.10.0-alpha.29-067c81a7
singbox_v=1.9.0
versionsh=1.9.1
GeoIP_v=20241130

View File

@@ -2,9 +2,9 @@
# Copyright (C) Juewuy
[ -z "$url" ] && url="https://fastly.jsdelivr.net/gh/juewuy/ShellCrash@master"
type bash &>/dev/null && shtype=bash || shtype=sh
echo='echo -e'
[ -n "$(echo -e|grep e)" ] && {
type bash &>/dev/null && shtype=bash || shtype=sh
echo='echo -e'
[ -n "$(echo -e | grep e)" ] && {
echo "\033[31m不支持dash环境安装请先输入bash命令后再运行安装命令\033[0m"
exit
}
@@ -15,23 +15,23 @@ echo "** ShellCrash **"
echo "** by Juewuy **"
echo "***********************************************"
#内置工具
dir_avail(){
df $2 $1 |awk '{ for(i=1;i<=NF;i++){ if(NR==1){ arr[i]=$i; }else{ arr[i]=arr[i]" "$i; } } } END{ for(i=1;i<=NF;i++){ print arr[i]; } }' |grep -E 'Ava|可用' |awk '{print $2}'
dir_avail() {
df $2 $1 | awk '{ for(i=1;i<=NF;i++){ if(NR==1){ arr[i]=$i; }else{ arr[i]=arr[i]" "$i; } } } END{ for(i=1;i<=NF;i++){ print arr[i]; } }' | grep -E 'Ava|可用' | awk '{print $2}'
}
setconfig(){
setconfig() {
configpath=$CRASHDIR/configs/ShellCrash.cfg
[ -n "$(grep ${1} $configpath)" ] && sed -i "s#${1}=.*#${1}=${2}#g" $configpath || echo "${1}=${2}" >> $configpath
[ -n "$(grep ${1} $configpath)" ] && sed -i "s#${1}=.*#${1}=${2}#g" $configpath || echo "${1}=${2}" >>$configpath
}
webget(){
webget() {
#参数【$1】代表下载目录【$2】代表在线地址
#参数【$3】代表输出显示【$4】不启用重定向
if curl --version > /dev/null 2>&1;then
if curl --version >/dev/null 2>&1; then
[ "$3" = "echooff" ] && progress='-s' || progress='-#'
[ -z "$4" ] && redirect='-L' || redirect=''
result=$(curl -w %{http_code} --connect-timeout 5 $progress $redirect -ko $1 $2)
[ -n "$(echo $result | grep -e ^2)" ] && result="200"
else
if wget --version > /dev/null 2>&1;then
if wget --version >/dev/null 2>&1; then
[ "$3" = "echooff" ] && progress='-q' || progress='-q --show-progress'
[ "$4" = "rediroff" ] && redirect='--max-redirect=0' || redirect=''
certificate='--no-check-certificate'
@@ -39,18 +39,18 @@ webget(){
fi
[ "$3" = "echoon" ] && progress=''
[ "$3" = "echooff" ] && progress='-q'
wget $progress $redirect $certificate $timeout -O $1 $2
wget $progress $redirect $certificate $timeout -O $1 $2
[ $? -eq 0 ] && result="200"
fi
}
error_down(){
error_down() {
$echo "请参考 \033[32mhttps://github.com/juewuy/ShellCrash/blob/master/README_CN.md"
$echo "\033[33m使用其他安装源重新安装\033[0m"
$echo "\033[33m使用其他安装源重新安装\033[0m"
}
#安装及初始化
gettar(){
gettar() {
webget /tmp/ShellCrash.tar.gz "$url/bin/ShellCrash.tar.gz"
if [ "$result" != "200" ];then
if [ "$result" != "200" ]; then
$echo "\033[33m文件下载失败\033[0m"
error_down
exit 1
@@ -59,142 +59,161 @@ gettar(){
#解压
echo -----------------------------------------------
echo 开始解压文件!
mkdir -p $CRASHDIR > /dev/null
mkdir -p $CRASHDIR >/dev/null
tar -zxf '/tmp/ShellCrash.tar.gz' -C $CRASHDIR/ || tar -zxf '/tmp/ShellCrash.tar.gz' --no-same-owner -C $CRASHDIR/
if [ -f $CRASHDIR/init.sh ];then
source $CRASHDIR/init.sh >/dev/null
if [ -s $CRASHDIR/init.sh ]; then
. $CRASHDIR/init.sh >/dev/null || $echo "\033[33m初始化失败请尝试本地安装\033[0m"
else
rm -rf /tmp/ShellCrash.tar.gz
$echo "\033[33m文件解压失败\033[0m"
error_down
exit 1
fi
fi
fi
}
setdir(){
set_usb_dir(){
setdir() {
set_usb_dir() {
$echo "请选择安装目录"
du -hL /mnt | awk '{print " "NR" "$2" "$1}'
read -p "请输入相应数字 > " num
dir=$(du -hL /mnt | awk '{print $2}' | sed -n "$num"p)
if [ -z "$dir" ];then
if [ -z "$dir" ]; then
$echo "\033[31m输入错误请重新设置\033[0m"
set_usb_dir
fi
}
set_cust_dir(){
set_asus_dir() {
echo -e "请选择U盘目录"
du -hL /tmp/mnt | awk '{print " "NR" "$2" "$1}'
read -p "请输入相应数字 > " num
dir=$(du -hL /tmp/mnt | awk '{print $2}' | sed -n "$num"p)
if [ ! -f "$dir/asusware.arm/etc/init.d/S50downloadmaster" ]; then
echo -e "\033[31m未找到下载大师自启文件$dir/asusware.arm/etc/init.d/S50downloadmaster请检查设置\033[0m"
set_asus_dir
fi
}
set_cust_dir() {
echo -----------------------------------------------
echo '可用路径 剩余空间:'
df -h | awk '{print $6,$4}'| sed 1d
df -h | awk '{print $6,$4}' | sed 1d
echo '路径是必须带 / 的格式,注意写入虚拟内存(/tmp,/opt,/sys...)的文件会在重启后消失!!!'
read -p "请输入自定义路径 > " dir
if [ "$(dir_avail $dir)" = 0 ];then
if [ "$(dir_avail $dir)" = 0 ]; then
$echo "\033[31m路径错误请重新设置\033[0m"
set_cust_dir
fi
}
echo -----------------------------------------------
$echo "\033[33m注意安装ShellCrash至少需要预留约1MB的磁盘空间\033[0m"
if [ -n "$systype" ];then
[ "$systype" = "Padavan" ] && dir=/etc/storage
[ "$systype" = "mi_snapshot" ] && {
$echo "\033[33m检测到当前设备为小米官方系统请选择安装位置\033[0m"
[ "$(dir_avail /data)" -gt 256 ] && $echo " 1 安装到 /data 目录(推荐,支持软固化功能)"
[ "$(dir_avail /userdisk)" -gt 256 ] && $echo " 2 安装到 /userdisk 目录(推荐,支持软固化功能)"
$echo " 3 安装到自定义目录(不推荐,不明勿用!)"
$echo " 0 退出安装"
echo -----------------------------------------------
read -p "请输入相应数字 > " num
case "$num" in
1)
dir=/data
;;
2)
dir=/userdisk
;;
3)
set_cust_dir
;;
*)
exit 1 ;;
esac
}
[ "$systype" = "asusrouter" ] && {
$echo "\033[33m检测到当前设备为华硕固件请选择安装方式\033[0m"
$echo " 1 基于USB设备安装(通用,须插入\033[31m任意\033[0mUSB设备)"
$echo " 2 基于自启脚本安装(仅支持梅林及部分官改固件)"
$echo " 0 退出安装"
echo -----------------------------------------------
read -p "请输入相应数字 > " num
case "$num" in
1)
read -p "将脚本安装到USB存储/系统闪存?(1/0) > " res
[ "$res" = "1" ] && set_usb_dir || dir=/jffs
usb_status=1
;;
2)
$echo "如无法正常开机启动请重新使用USB方式安装"
sleep 2
dir=/jffs ;;
*)
exit 1 ;;
esac
}
[ "$systype" = "ng_snapshot" ] && dir=/tmp/mnt
else
$echo " 1 在\033[32m/etc目录\033[0m下安装(适合root用户)"
$echo " 2 在\033[32m/usr/share目录\033[0m下安装(适合Linux系统)"
$echo " 3 在\033[32m当前用户目录\033[0m下安装(适合非root用户)"
$echo " 4 在\033[32m外置存储\033[0m中安装"
$echo " 5 手动设置安装目录"
$echo " 0 退出安装"
echo -----------------------------------------------
read -p "请输入相应数字 > " num
#设置目录
if [ -z $num ];then
echo 安装已取消
exit 1;
elif [ "$num" = "1" ];then
dir=/etc
elif [ "$num" = "2" ];then
dir=/usr/share
elif [ "$num" = "3" ];then
dir=~/.local/share
mkdir -p ~/.config/systemd/user
elif [ "$num" = "4" ];then
set_usb_dir
elif [ "$num" = "5" ];then
set_cust_dir
$echo "\033[33m注意安装ShellCrash至少需要预留约1MB的磁盘空间\033[0m"
if [ -n "$systype" ]; then
[ "$systype" = "Padavan" ] && dir=/etc/storage
[ "$systype" = "mi_snapshot" ] && {
$echo "\033[33m检测到当前设备为小米官方系统请选择安装位置\033[0m"
[ "$(dir_avail /data)" -gt 256 ] && $echo " 1 安装到 /data 目录(推荐,支持软固化功能)"
[ "$(dir_avail /userdisk)" -gt 256 ] && $echo " 2 安装到 /userdisk 目录(推荐,支持软固化功能)"
$echo " 3 安装到自定义目录(不推荐,不明勿用!)"
$echo " 0 退出安装"
echo -----------------------------------------------
read -p "请输入相应数字 > " num
case "$num" in
1)
dir=/data
;;
2)
dir=/userdisk
;;
3)
set_cust_dir
;;
*)
exit 1
;;
esac
}
[ "$systype" = "asusrouter" ] && {
$echo "\033[33m检测到当前设备为华硕固件请选择安装方式\033[0m"
$echo " 1 基于USB设备安装(限23年9月之前固件须插入\033[31m任意\033[0mUSB设备)"
$echo " 2 基于自启脚本安装(仅支持梅林及部分非koolshare官改固件)"
$echo " 3 基于U盘+下载大师安装(支持所有固件限ARM设备须插入U盘或移动硬盘)"
$echo " 0 退出安装"
echo -----------------------------------------------
read -p "请输入相应数字 > " num
case "$num" in
1)
read -p "将脚本安装到USB存储/系统闪存?(1/0) > " res
[ "$res" = "1" ] && set_usb_dir || dir=/jffs
usb_status=1
;;
2)
$echo "如无法正常开机启动请重新使用USB方式安装"
sleep 2
dir=/jffs
;;
3)
echo -e "请先在路由器网页后台安装下载大师并启用,之后选择外置存储所在目录!"
sleep 2
set_asus_dir
;;
*)
exit 1
;;
esac
}
[ "$systype" = "ng_snapshot" ] && dir=/tmp/mnt
else
echo 安装已取消!!!
exit 1;
$echo " 1 在\033[32m/etc目录\033[0m下安装(适合root用户)"
$echo " 2 在\033[32m/usr/share目录\033[0m下安装(适合Linux系统)"
$echo " 3 在\033[32m当前用户目录\033[0m下安装(适合非root用户)"
$echo " 4 在\033[32m外置存储\033[0m中安装"
$echo " 5 手动设置安装目录"
$echo " 0 退出安装"
echo -----------------------------------------------
read -p "请输入相应数字 > " num
#设置目录
if [ -z $num ]; then
echo 安装已取消
exit 1
elif [ "$num" = "1" ]; then
dir=/etc
elif [ "$num" = "2" ]; then
dir=/usr/share
elif [ "$num" = "3" ]; then
dir=~/.local/share
mkdir -p ~/.config/systemd/user
elif [ "$num" = "4" ]; then
set_usb_dir
elif [ "$num" = "5" ]; then
set_cust_dir
else
echo 安装已取消!!!
exit 1
fi
fi
fi
if [ ! -w $dir ];then
$echo "\033[31m没有$dir目录写入权限!请重新设置!\033[0m" && sleep 1 && setdir
else
$echo "目标目录\033[32m$dir\033[0m空间剩余$(dir_avail $dir -h)"
read -p "确认安装?(1/0) > " res
[ "$res" = "1" ] && CRASHDIR=$dir/ShellCrash || setdir
fi
if [ ! -w $dir ]; then
$echo "\033[31m没有$dir目录写入权限!请重新设置!\033[0m" && sleep 1 && setdir
else
$echo "目标目录\033[32m$dir\033[0m空间剩余$(dir_avail $dir -h)"
read -p "确认安装?(1/0) > " res
[ "$res" = "1" ] && CRASHDIR=$dir/ShellCrash || setdir
fi
}
install(){
echo -----------------------------------------------
echo 开始从服务器获取安装文件!
echo -----------------------------------------------
gettar
echo -----------------------------------------------
echo ShellCrash 已经安装成功!
[ "$profile" = "~/.bashrc" ] && echo "请执行【source ~/.bashrc &> /dev/null】命令以加载环境变量"
[ -n "$(ls -l /bin/sh|grep -oE 'zsh')" ] && echo "请执行【source ~/.zshrc &> /dev/null】命令以加载环境变量"
echo -----------------------------------------------
$echo "\033[33m输入\033[30;47m crash \033[0;33m命令即可管理\033[0m"
echo -----------------------------------------------
}
setversion(){
install() {
echo -----------------------------------------------
$echo "\033[33m请选择想要安装的版本\033[0m"
echo 开始从服务器获取安装文件!
echo -----------------------------------------------
gettar
echo -----------------------------------------------
echo ShellCrash 已经安装成功!
[ "$profile" = "~/.bashrc" ] && echo "请执行【. ~/.bashrc &> /dev/null】命令以加载环境变量"
[ -n "$(ls -l /bin/sh | grep -oE 'zsh')" ] && echo "请执行【. ~/.zshrc &> /dev/null】命令以加载环境变量"
echo -----------------------------------------------
$echo "\033[33m输入\033[30;47m crash \033[0;33m命令即可管理\033[0m"
echo -----------------------------------------------
}
setversion() {
echo -----------------------------------------------
$echo "\033[33m请选择想要安装的版本\033[0m"
$echo " 1 \033[32m公测版(推荐)\033[0m"
$echo " 2 \033[36m稳定版\033[0m"
$echo " 3 \033[31m开发版\033[0m"
@@ -203,29 +222,28 @@ setversion(){
case "$num" in
2)
url=$(echo $url | sed 's/master/stable/')
;;
;;
3)
url=$(echo $url | sed 's/master/dev/')
;;
*)
;;
;;
*) ;;
esac
}
#特殊固件识别及标记
[ -f "/etc/storage/started_script.sh" ] && {
systype=Padavan #老毛子固件
initdir='/etc/storage/started_script.sh'
}
}
[ -d "/jffs" ] && {
systype=asusrouter #华硕固件
[ -f "/jffs/.asusrouter" ] && initdir='/jffs/.asusrouter'
[ -d "/jffs/scripts" ] && initdir='/jffs/scripts/nat-start'
}
[ -d "/jffs/scripts" ] && initdir='/jffs/scripts/nat-start'
}
[ -f "/data/etc/crontabs/root" ] && systype=mi_snapshot #小米设备
[ -w "/var/mnt/cfg/firewall" ] && systype=ng_snapshot #NETGEAR设备
[ -w "/var/mnt/cfg/firewall" ] && systype=ng_snapshot #NETGEAR设备
#检查root权限
if [ "$USER" != "root" -a -z "$systype" ];then
if [ "$USER" != "root" -a -z "$systype" ]; then
echo 当前用户:$USER
$echo "\033[31m请尽量使用root用户不要直接使用sudo命令执行安装!\033[0m"
echo -----------------------------------------------
@@ -233,7 +251,7 @@ if [ "$USER" != "root" -a -z "$systype" ];then
[ "$res" != "1" ] && exit 1
fi
if [ -n "$(echo $url | grep master)" ];then
if [ -n "$(echo $url | grep master)" ]; then
setversion
fi
#获取版本信息
@@ -248,26 +266,26 @@ $echo "\033[44m如遇问题请加TG群反馈\033[42;30m t.me/ShellClash \033[
$echo "\033[37m支持各种基于openwrt的路由器设备"
$echo "\033[33m支持Debian、Centos等标准Linux系统\033[0m"
if [ -n "$CRASHDIR" ];then
if [ -n "$CRASHDIR" ]; then
echo -----------------------------------------------
$echo "检测到旧的安装目录\033[36m$CRASHDIR\033[0m是否覆盖安装"
$echo "\033[32m覆盖安装时不会移除配置文件\033[0m"
read -p "覆盖安装/卸载旧版本?(1/0) > " res
if [ "$res" = "1" ];then
if [ "$res" = "1" ]; then
install
elif [ "$res" = "0" ];then
elif [ "$res" = "0" ]; then
rm -rf $CRASHDIR
echo -----------------------------------------------
$echo "\033[31m 旧版本文件已卸载!\033[0m"
setdir
install
elif [ "$res" = "9" ];then
elif [ "$res" = "9" ]; then
echo 测试模式,变更安装位置
setdir
install
else
$echo "\033[31m输入错误已取消安装\033[0m"
exit 1;
exit 1
fi
else
setdir

View File

@@ -71,9 +71,12 @@ localhost.sec.qq.com
+.qq.com
+.tencent.com
#Game
#Steam
+.steamcontent.com
#Nintendo Switch
+.srv.nintendo.net
*.n.n.srv.nintendo.net
+.cdn.nintendo.net
#Sony PlayStation
+.stun.playstation.net
#Microsoft Xbox
@@ -129,6 +132,8 @@ ff.dorado.sdo.com
shark007.net
#Mijia
Mijia Cloud
#Xiaomi
+.market.xiaomi.com
#招商银行
+.cmbchina.com
+.cmbimg.com
@@ -143,3 +148,9 @@ static.adtidy.org
+.n0808.com
#T-mobile and Ultra Mobile wifi calling
+.3gppnetwork.org
#UU Plugin
+.uu.163.com
ps.res.netease.com
#向日葵远程控制
+.oray.com
+.orayimg.com

View File

@@ -7,13 +7,9 @@
201 wwng2333自建CN源(请勿滥用!) https://mirrors.csgo.ovh/ShellClash 公测版
202 http私人内测源(危险!非必要请勿使用) http://t.jwsc.eu.org 开发版
301 墙洞提供,不支持vless|hy https://api.dler.io
302 SUB作者提供,不支持vless|hy https://sub.xeton.dev
303 品云提供,不支持vless|hy https://sub.id9.cc
401 肥羊提供(有广告),支持vless|hy2 https://sub.d1.mk
402 作者提供,支持vless|hy2 https://sub.jwsc.eu.org
401 作者提供,支持vless|hy2 https://sub.jwsc.eu.org
402 肥羊提供(有广告),支持vless|hy2 https://sub.d1.mk
403 肥羊提供(有广告),支持vless|hy2 https://api.v1.mk
497 作者提供,未加密仅备用 http://sub2.jwsc.eu.org

View File

@@ -13,6 +13,6 @@
113#$CRASHDIR/task/task.sh update_mmdb#自动更新数据库文件
121#$CRASHDIR/task/task.sh reset_firewall#重设透明路由防火墙
122#reboot#重启路由设备(慎用)
122#sleep 70 && touch /etc/banner && reboot#重启路由设备(慎用)

View File

@@ -1,8 +1,11 @@
[custom]
ruleset=TikTok,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/TikTok/TikTok.list
ruleset=国内直连流量,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/LocalAreaNetwork.list
ruleset=国内直连流量,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/UnBan.list
ruleset=国内直连流量,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/GoogleCN.list
ruleset=普通外网流量,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ProxyLite.list
ruleset=普通外网流量,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ProxyGFWlist.list
ruleset=普通外网流量,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ProxyMedia.list
ruleset=普通外网流量,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Netflix.list
ruleset=国内直连流量,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ChinaDomain.list
ruleset=国内直连流量,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ChinaCompanyIp.list
ruleset=国内直连流量,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Download.list
@@ -15,6 +18,8 @@ custom_proxy_group=IP验证专用`select`.*
custom_proxy_group=922未知地址`select`[]🇨🇳 台湾自动`[]🇨🇳 台湾均衡`[]🇨🇳 台湾手动`[]🇭🇰 香港自动`[]🇭🇰 香港均衡`[]🇭🇰 香港手动`[]🇸🇬 新加坡自动`[]🇸🇬 新加坡均衡`[]🇸🇬 新加坡手动`[]🇺🇲 美国自动`[]🇺🇲 美国均衡`[]🇺🇲 美国手动`[]所有节点手选
custom_proxy_group=abc全球节点`select`[]🇨🇳 台湾自动`[]🇨🇳 台湾均衡`[]🇨🇳 台湾手动`[]🇭🇰 香港自动`[]🇭🇰 香港均衡`[]🇭🇰 香港手动`[]🇸🇬 新加坡自动`[]🇸🇬 新加坡均衡`[]🇸🇬 新加坡手动`[]🇺🇲 美国自动`[]🇺🇲 美国均衡`[]🇺🇲 美国手动`[]所有节点手选
custom_proxy_group=PIA全球节点`select`[]🇨🇳 台湾自动`[]🇨🇳 台湾均衡`[]🇨🇳 台湾手动`[]🇭🇰 香港自动`[]🇭🇰 香港均衡`[]🇭🇰 香港手动`[]🇸🇬 新加坡自动`[]🇸🇬 新加坡均衡`[]🇸🇬 新加坡手动`[]🇺🇲 美国自动`[]🇺🇲 美国均衡`[]🇺🇲 美国手动`[]所有节点手选
custom_proxy_group=比特熊专用`select`.*
custom_proxy_group=TikTok`select`[]REJECT`[]DIRECT`[]普通外网流量
custom_proxy_group=🇭🇰 香港手动`select`(港|HK|🇭🇰|Hong Kong)
custom_proxy_group=🇺🇲 美国手动`select`(美|波特兰|达拉斯|俄勒冈|凤凰城|费利蒙|硅谷|拉斯维加斯|洛杉矶|圣何塞|圣克拉拉|西雅图|芝加哥|US|United States|🇺🇲)
@@ -22,13 +27,14 @@ custom_proxy_group=🇨🇳 台湾手动`select`(台|新北|彰化|TW|Taiwan)
custom_proxy_group=🇸🇬 新加坡手动`select`(新加坡|坡|狮城|广新|SG|Singapore|🇸🇬)
custom_proxy_group=所有节点手选`select`.*
custom_proxy_group=普通外网流量`select`[]🇭🇰 香港自动`[]🇨🇳 台湾自动`[]🇸🇬 新加坡自动`[]🇺🇲 美国自动`[]dler-AC`[]所有节点自动`[]所有节点手选`[]DIRECT
custom_proxy_group=普通外网流量`select`[]🇭🇰 香港自动`[]🇨🇳 台湾自动`[]🇸🇬 新加坡自动`[]🇺🇲 美国自动`[]大米bigmi`[]dler-AC`[]所有节点自动`[]所有节点手选`[]DIRECT
custom_proxy_group=国内直连流量`select`[]DIRECT`[]所有节点自动`[]所有节点手选
custom_proxy_group=🇭🇰 香港自动`url-test`(港|HK|Hong Kong)`https://www.gstatic.com/generate_204`300,,50
custom_proxy_group=🇺🇲 美国自动`url-test`(美|波特兰|达拉斯|俄勒冈|凤凰城|费利蒙|硅谷|拉斯维加斯|洛杉矶|圣何塞|圣克拉拉|西雅图|芝加哥|US|United States)`http://www.gstatic.com/generate_204`300,,150
custom_proxy_group=🇨🇳 台湾自动`url-test`(台|新北|彰化|TW|Taiwan)`https://www.gstatic.com/generate_204`300,,50
custom_proxy_group=🇸🇬 新加坡自动`url-test`(新加坡|坡|狮城|SG|Singapore)`https://www.gstatic.com/generate_204`300,,50
custom_proxy_group=大米bigmi`url-test`(香港0|台湾0|日本0|新加坡0|美国0)`https://www.gstatic.com/generate_204`300,,50
custom_proxy_group=dler-AC`url-test`(AC)`https://www.gstatic.com/generate_204`300,,50
custom_proxy_group=所有节点自动`url-test`.*`https://www.gstatic.com/generate_204`300,,50

View File

@@ -32,7 +32,7 @@ custom_proxy_group=🚀 手动切换`select`.*
custom_proxy_group=♻️ 自动选择`url-test`.*`http://www.gstatic.com/generate_204`300,,50
custom_proxy_group=🛑 广告拦截`select`[]DIRECT`[]REJECT
custom_proxy_group=🍃 应用净化`select`[]DIRECT`[]REJECT
custom_proxy_group=🎮 外服游戏`select`[]🎯 全球直连`[]🎮 游戏节点`[]🇭🇰 香港节点`[]🇨🇳 台湾节点`[]🇸🇬 新加坡节点`[]🇯🇵 日本节点`[]🇰🇷 韩国节点`[]🇺🇲 美国节点`[]🚀 手动切换
custom_proxy_group=🎮 外服游戏`select`.*
custom_proxy_group=📲 电报消息`select`[]🚀 节点选择`[]♻️ 自动选择`[]📺 省流节点`[]🇸🇬 新加坡节点`[]🇭🇰 香港节点`[]🇨🇳 台湾节点`[]🇯🇵 日本节点`[]🇰🇷 韩国节点`[]🇺🇲 美国节点`[]🚀 手动切换`[]DIRECT
custom_proxy_group=📢 谷歌FCM`select`[]DIRECT`[]🚀 节点选择`[]🇺🇲 美国节点`[]🇭🇰 香港节点`[]🇨🇳 台湾节点`[]🇸🇬 新加坡节点`[]🇯🇵 日本节点`[]🇰🇷 韩国节点`[]🚀 手动切换
custom_proxy_group=🎥 NETFLIX`select`[]🎥 流媒体解锁`[]👍 高级节点`[]🇸🇬 新加坡节点`[]🇭🇰 香港节点`[]🇨🇳 台湾节点`[]🇯🇵 日本节点`[]🇰🇷 韩国节点`[]🇺🇲 美国节点`[]🚀 节点选择

View File

@@ -3,9 +3,9 @@ ruleset=🎯 全球直连,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/mast
ruleset=🎯 全球直连,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/UnBan.list
ruleset=🛑 广告拦截,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/BanAD.list
ruleset=🍃 应用净化,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/BanProgramAD.list
ruleset=🆎 增强拦截,rules/ACL4SSR/Clash/BanEasyList.list
ruleset=🆎 增强拦截,rules/ACL4SSR/Clash/BanEasyListChina.list
ruleset=🆎 增强拦截,rules/ACL4SSR/Clash/BanEasyPrivacy.list
ruleset=🆎 增强拦截,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/BanEasyList.list
ruleset=🆎 增强拦截,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/BanEasyListChina.list
ruleset=🆎 增强拦截,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/BanEasyPrivacy.list
ruleset=📢 谷歌FCM,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/GoogleFCM.list
ruleset=🎯 全球直连,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/GoogleCN.list
ruleset=🎥 NETFLIX,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Netflix.list

View File

@@ -19,7 +19,7 @@ custom_proxy_group=♻️ 自动选择`url-test`.*`http://www.gstatic.com/genera
custom_proxy_group=🔯 故障转移首选`select`.*
custom_proxy_group=🔯 故障转移`fallback`[]🔯 故障转移首选`[]👍 高级节点`[]♻️ 自动选择`http://www.gstatic.com/generate_204`180
custom_proxy_group=🛑 广告拦截`select`[]DIRECT`[]REJECT
custom_proxy_group=🤖 人工智能`select`[]🔯 故障转移`[]🔯 故障转移首选
custom_proxy_group=🤖 人工智能`select`[]🔯 故障转移`.*
custom_proxy_group=🎥 奈飞解锁`select`[]🎥 流媒体解锁`[]👍 高级节点`[]🔯 故障转移`[]🚀 节点选择
custom_proxy_group=🎯 全球直连`select`[]DIRECT`[]🚀 节点选择`[]♻️ 自动选择
custom_proxy_group=🐟 漏网之鱼`select`[]🔯 故障转移`[]🚀 节点选择`[]📺 省流节点`[]♻️ 自动选择`[]DIRECT

View File

@@ -16,3 +16,6 @@ DOMAIN-SUFFIX,statsigapi.net
DOMAIN-SUFFIX,claude.ai
DOMAIN-SUFFIX,Anthropic.com
DOMAIN-SUFFIX,opera-api.com
DOMAIN-SUFFIX,aistudio.google.com
DOMAIN-SUFFIX,ciciai.com
DOMAIN-KEYWORD,chatgpt

View File

@@ -7,8 +7,8 @@ proxy-groups:
- {name: 🤖 人工智能, type: select, proxies: [🇯🇵 日本节点, 🇺🇸 美国节点, 🇸🇬 新加坡节点, 🚀 节点选择, 🚀 手动切换]}
- {name: 📲 电报消息, type: select, proxies: [🚀 节点选择, 🇭🇰 香港节点, 🇹🇼 台湾节点, 🇯🇵 日本节点, 🇸🇬 新加坡节点, 🇺🇸 美国节点, {providers_tags}, 🚀 手动切换]}
- {name: 🎮 游戏平台, type: select, proxies: [🎯 本机直连, 👍 高级节点, 🚀 节点选择]}
- {name: Ⓜ️ 微软服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 📢 谷歌服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 🪟 微软服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 🇬 谷歌服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 🍎 苹果服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 📈 网络测试, type: select, proxies: [🎯 本机直连, {providers_tags}, 🚀 手动切换]}
- {name: 🎯 本机直连, type: select, proxies: [DIRECT]}
@@ -25,9 +25,9 @@ rules:
- GEOSITE,category-ads-all,🛑 广告拦截
- GEOSITE,private,🎯 全球直连
- GEOSITE,openai,🤖 人工智能
- GEOSITE,microsoft@cn,Ⓜ️ 微软服务
- GEOSITE,microsoft@cn,🪟 微软服务
- GEOSITE,apple-cn,🍎 苹果服务
- GEOSITE,google-cn,📢 谷歌服务
- GEOSITE,google-cn,🇬 谷歌服务
- GEOSITE,category-games@cn,🎮 游戏平台
- GEOSITE,speedtest,📈 网络测试
- GEOSITE,geolocation-!cn,🚀 节点选择
@@ -36,4 +36,3 @@ rules:
- GEOIP,private,🎯 全球直连,no-resolve
- GEOIP,cn,🎯 全球直连
- MATCH,🐟 漏网之鱼

View File

@@ -6,8 +6,8 @@ proxy-groups:
- {name: 🤖 人工智能, type: select, proxies: [🇯🇵 日本节点, 🇺🇸 美国节点, 🇸🇬 新加坡节点, 🚀 节点选择, 🚀 手动切换]}
- {name: 📲 电报消息, type: select, proxies: [🚀 节点选择, 🇭🇰 香港节点, 🇹🇼 台湾节点, 🇯🇵 日本节点, 🇸🇬 新加坡节点, 🇺🇸 美国节点, {providers_tags}, 🚀 手动切换]}
- {name: 🎮 游戏平台, type: select, proxies: [🎯 本机直连, 👍 高级节点, 🚀 节点选择]}
- {name: Ⓜ️ 微软服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 📢 谷歌服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 🪟 微软服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 🇬 谷歌服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 🍎 苹果服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 📈 网络测试, type: select, proxies: [🎯 本机直连, {providers_tags}, 🚀 手动切换]}
- {name: 🎯 本机直连, type: select, proxies: [DIRECT]}
@@ -23,9 +23,9 @@ proxy-groups:
rules:
- GEOSITE,private,🎯 全球直连
- GEOSITE,openai,🤖 人工智能
- GEOSITE,microsoft@cn,Ⓜ️ 微软服务
- GEOSITE,microsoft@cn,🪟 微软服务
- GEOSITE,apple-cn,🍎 苹果服务
- GEOSITE,google-cn,📢 谷歌服务
- GEOSITE,google-cn,🇬 谷歌服务
- GEOSITE,category-games@cn,🎮 游戏平台
- GEOSITE,speedtest,📈 网络测试
- GEOSITE,geolocation-!cn,🚀 节点选择
@@ -34,4 +34,3 @@ rules:
- GEOIP,private,🎯 全球直连,no-resolve
- GEOIP,cn,🎯 全球直连
- MATCH,🐟 漏网之鱼

View File

@@ -7,8 +7,8 @@ proxy-groups:
- {name: 🤖 人工智能, type: select, proxies: [🇯🇵 日本节点, 🇺🇸 美国节点, 🇸🇬 新加坡节点, 🚀 节点选择, 🚀 手动切换]}
- {name: 📲 电报消息, type: select, proxies: [🚀 节点选择, 🇭🇰 香港节点, 🇹🇼 台湾节点, 🇯🇵 日本节点, 🇸🇬 新加坡节点, 🇺🇸 美国节点, {providers_tags}, 🚀 手动切换]}
- {name: 🎮 游戏平台, type: select, proxies: [🎯 本机直连, 👍 高级节点, 🚀 节点选择]}
- {name: Ⓜ️ 微软服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 📢 谷歌服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 🪟 微软服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 🇬 谷歌服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 🍎 苹果服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 📈 网络测试, type: select, proxies: [🎯 本机直连, {providers_tags}, 🚀 手动切换]}
- {name: 🎯 本机直连, type: select, proxies: [DIRECT]}
@@ -20,84 +20,84 @@ proxy-groups:
- {name: 🇯🇵 日本节点, type: url-test, tolerance: 100, lazy: true, use: [{providers_tags}], filter: "(?i)日本|jp|japan"}
- {name: 🇸🇬 新加坡节点, type: url-test, tolerance: 100, lazy: true, use: [{providers_tags}], filter: "(?i)新|sg|singapore"}
- {name: 🇺🇸 美国节点, type: url-test, tolerance: 100, lazy: true, use: [{providers_tags}], filter: "(?i)美|us|unitedstates|united states"}
rule-providers:
ads:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/ads.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/ads.yaml"
path: ./providers/ads.yaml
interval: 86400
ai:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/ai.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/ai.yaml"
path: ./providers/ai.yaml
interval: 86400
private:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/private.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/private.yaml"
path: ./providers/private.yaml
interval: 86400
microsoft-cn:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/microsoft-cn.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/microsoft-cn.yaml"
path: ./providers/microsoft-cn.yaml
interval: 86400
apple-cn:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/apple-cn.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/apple-cn.yaml"
path: ./providers/apple-cn.yaml
interval: 86400
google-cn:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/google-cn.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/google-cn.yaml"
path: ./providers/google-cn.yaml
interval: 86400
games-cn:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/games-cn.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/games-cn.yaml"
path: ./providers/games-cn.yaml
interval: 86400
networktest:
type: http
behavior: classical
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/networktest.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/networktest.yaml"
path: ./providers/networktest.yaml
interval: 86400
proxy:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/proxy.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/proxy.yaml"
path: ./providers/proxy.yaml
interval: 86400
cn:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/cn.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/cn.yaml"
path: ./providers/cn.yaml
interval: 86400
telegramip:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/telegramip.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/telegramip.yaml"
path: ./providers/telegramip.yaml
interval: 86400
privateip:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/privateip.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/privateip.yaml"
path: ./providers/privateip.yaml
interval: 86400
cnip:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/cnip.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/cnip.yaml"
path: ./providers/cnip.yaml
interval: 86400
@@ -105,9 +105,9 @@ rules:
- RULE-SET,ads,🛑 广告拦截
- RULE-SET,private,🎯 全球直连
- RULE-SET,ai,🤖 人工智能
- RULE-SET,microsoft-cn,Ⓜ️ 微软服务
- RULE-SET,microsoft-cn,🪟 微软服务
- RULE-SET,apple-cn,🍎 苹果服务
- RULE-SET,google-cn,📢 谷歌服务
- RULE-SET,google-cn,🇬 谷歌服务
- RULE-SET,games-cn,🎮 游戏平台
- RULE-SET,networktest,📈 网络测试
- RULE-SET,proxy,🚀 节点选择

View File

@@ -6,8 +6,8 @@ proxy-groups:
- {name: 🤖 人工智能, type: select, proxies: [🇯🇵 日本节点, 🇺🇸 美国节点, 🇸🇬 新加坡节点, 🚀 节点选择, 🚀 手动切换]}
- {name: 📲 电报消息, type: select, proxies: [🚀 节点选择, 🇭🇰 香港节点, 🇹🇼 台湾节点, 🇯🇵 日本节点, 🇸🇬 新加坡节点, 🇺🇸 美国节点, {providers_tags}, 🚀 手动切换]}
- {name: 🎮 游戏平台, type: select, proxies: [🎯 本机直连, 👍 高级节点, 🚀 节点选择]}
- {name: Ⓜ️ 微软服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 📢 谷歌服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 🪟 微软服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 🇬 谷歌服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 🍎 苹果服务, type: select, proxies: [🎯 本机直连, 🚀 节点选择]}
- {name: 📈 网络测试, type: select, proxies: [🎯 本机直连, {providers_tags}, 🚀 手动切换]}
- {name: 🎯 本机直连, type: select, proxies: [DIRECT]}
@@ -19,87 +19,87 @@ proxy-groups:
- {name: 🇯🇵 日本节点, type: url-test, tolerance: 100, lazy: true, use: [{providers_tags}], filter: "(?i)日本|jp|japan"}
- {name: 🇸🇬 新加坡节点, type: url-test, tolerance: 100, lazy: true, use: [{providers_tags}], filter: "(?i)新|sg|singapore"}
- {name: 🇺🇸 美国节点, type: url-test, tolerance: 100, lazy: true, use: [{providers_tags}], filter: "(?i)美|us|unitedstates|united states"}
rule-providers:
private:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/private.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/private.yaml"
path: ./providers/private.yaml
interval: 86400
ai:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/ai.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/ai.yaml"
path: ./providers/ai.yaml
interval: 86400
microsoft-cn:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/microsoft-cn.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/microsoft-cn.yaml"
path: ./providers/microsoft-cn.yaml
interval: 86400
apple-cn:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/apple-cn.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/apple-cn.yaml"
path: ./providers/apple-cn.yaml
interval: 86400
google-cn:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/google-cn.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/google-cn.yaml"
path: ./providers/google-cn.yaml
interval: 86400
games-cn:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/games-cn.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/games-cn.yaml"
path: ./providers/games-cn.yaml
interval: 86400
networktest:
type: http
behavior: classical
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/networktest.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/networktest.yaml"
path: ./providers/networktest.yaml
interval: 86400
proxy:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/proxy.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/proxy.yaml"
path: ./providers/proxy.yaml
interval: 86400
cn:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/cn.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/cn.yaml"
path: ./providers/cn.yaml
interval: 86400
telegramip:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/telegramip.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/telegramip.yaml"
path: ./providers/telegramip.yaml
interval: 86400
privateip:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/privateip.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/privateip.yaml"
path: ./providers/privateip.yaml
interval: 86400
cnip:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/cnip.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/cnip.yaml"
path: ./providers/cnip.yaml
interval: 86400
rules:
- RULE-SET,private,🎯 全球直连
- RULE-SET,ai,🤖 人工智能
- RULE-SET,microsoft-cn,Ⓜ️ 微软服务
- RULE-SET,microsoft-cn,🪟 微软服务
- RULE-SET,apple-cn,🍎 苹果服务
- RULE-SET,google-cn,📢 谷歌服务
- RULE-SET,google-cn,🇬 谷歌服务
- RULE-SET,games-cn,🎮 游戏平台
- RULE-SET,networktest,📈 网络测试
- RULE-SET,proxy,🚀 节点选择

View File

@@ -18,37 +18,37 @@ rule-providers:
private:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/private.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/private.yaml"
path: ./providers/private.yaml
interval: 86400
ai:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/ai.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/ai.yaml"
path: ./providers/ai.yaml
interval: 86400
proxy:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/proxy.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/proxy.yaml"
path: ./providers/proxy.yaml
interval: 86400
telegramip:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/telegramip.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/telegramip.yaml"
path: ./providers/telegramip.yaml
interval: 86400
privateip:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/privateip.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/privateip.yaml"
path: ./providers/privateip.yaml
interval: 86400
cnip:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash/cnip.yaml"
url: "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@clash-ruleset/cnip.yaml"
path: ./providers/cnip.yaml
interval: 86400

View File

@@ -3,13 +3,13 @@
"outbounds": [
{ "tag": "🚀 节点选择", "type": "selector", "outbounds": [ {providers_tags}, "🇭🇰 香港节点", "🇹🇼 台湾节点", "🇯🇵 日本节点", "🇰🇷 韩国节点", "🇸🇬 新加坡节点", "🇺🇸 美国节点", "📺 省流节点", "👍 高级节点", "🚀 手动切换", "🎯 本机直连" ] },
{ "tag": "🐟 漏网之鱼", "type": "selector", "outbounds": [ {providers_tags}, "🇭🇰 香港节点", "🇹🇼 台湾节点", "🇯🇵 日本节点", "🇰🇷 韩国节点", "🇸🇬 新加坡节点", "🇺🇸 美国节点", "📺 省流节点", "👍 高级节点", "🚀 手动切换", "🎯 本机直连" ] },
{ "tag": "🛑 广告拦截", "type": "selector", "outbounds": [ "❌ 禁止连接", "🎯 本机直连" ] },
{ "tag": "🛑 广告拦截", "type": "selector", "outbounds": [ "❌ 禁止连接", "🎯 本机直连" ] },
{ "tag": "🎯 全球直连", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "📲 电报消息", "type": "selector", "outbounds": [ "🚀 节点选择", "🇭🇰 香港节点", "🇹🇼 台湾节点", "🇯🇵 日本节点", "🇰🇷 韩国节点", "🇸🇬 新加坡节点", "🇺🇸 美国节点" ] },
{ "tag": "🤖 人工智能", "type": "selector", "outbounds": [ "🇯🇵 日本节点", "🇺🇸 美国节点", "🇸🇬 新加坡节点", "🇰🇷 韩国节点", "🚀 节点选择" ] },
{ "tag": "🎮 游戏平台", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "Ⓜ️ 微软服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "📢 谷歌服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "🪟 微软服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "🇬 谷歌服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "🍎 苹果服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "GLOBAL", "type": "selector", "outbounds": [ "🎯 本机直连", "🇭🇰 香港节点", "🇹🇼 台湾节点", "🇯🇵 日本节点", "🇰🇷 韩国节点", "🇸🇬 新加坡节点", "🇺🇸 美国节点", {providers_tags}, "🚀 手动切换" ] },
{ "tag": "🚀 手动切换", "type": "selector", "use_all_providers": true },
@@ -21,9 +21,9 @@
{ "tag": "🇰🇷 韩国节点", "type": "urltest", "tolerance": 100, "use_all_providers": true, "includes": [ "KR|Korea|KOR|首尔|韩|韓" ] },
{ "tag": "🇸🇬 新加坡节点", "type": "urltest", "tolerance": 100, "use_all_providers": true, "includes": [ "新加坡|坡|狮城|SG|Singapore" ] },
{ "tag": "🇺🇸 美国节点", "type": "urltest", "tolerance": 100, "use_all_providers": true, "includes": [ "美|波特兰|达拉斯|俄勒冈|凤凰城|费利蒙|硅谷|拉斯维加斯|洛杉矶|圣何塞|圣克拉拉|西雅图|芝加哥|US|United States" ] },
{ "tag": "🎯 本机直连", "type": "direct" },
{ "tag": "❌ 禁止连接", "type": "block" },
{ "tag": "dns-out", "type": "dns" }
{ "tag": "🎯 本机直连", "type": "direct" },
{ "tag": "❌ 禁止连接", "type": "block" },
{ "tag": "dns-out", "type": "dns" }
],
"route": {
"rules": [
@@ -32,15 +32,14 @@
{ "clash_mode": "Direct", "outbound": "🎯 本机直连" },
{ "geosite": "category-ads-all", "outbound": "🛑 广告拦截" },
{ "geosite": "private", "outbound": "🎯 全球直连" },
{ "geosite": "ai", "outbound": "🤖 人工智能" },
{ "geosite": "microsoft@cn", "outbound": "Ⓜ️ 微软服务" },
{ "geosite": "ai", "outbound": "🤖 人工智能" },
{ "geosite": "microsoft@cn", "outbound": "🪟 微软服务" },
{ "geosite": "apple-cn", "outbound": "🍎 苹果服务" },
{ "geosite": "google-cn", "outbound": "📢 谷歌服务" },
{ "geosite": "google-cn", "outbound": "🇬 谷歌服务" },
{ "geosite": "category-games@cn", "outbound": "🎮 游戏平台" },
{ "geosite": "geolocation-!cn", "outbound": "🚀 节点选择" },
{ "geosite": "cn", "outbound": "🎯 全球直连" },
{ "geoip": "telegram", "outbound": "📲 电报消息" },
{ "geoip": "private", "outbound": "🎯 全球直连" },
{ "geoip": "cn", "outbound": "🎯 全球直连" }
],
"final": "🐟 漏网之鱼"

View File

@@ -7,8 +7,8 @@
{ "tag": "📲 电报消息", "type": "selector", "outbounds": [ "🚀 节点选择", "🇭🇰 香港节点", "🇹🇼 台湾节点", "🇯🇵 日本节点", "🇰🇷 韩国节点", "🇸🇬 新加坡节点", "🇺🇸 美国节点" ] },
{ "tag": "🤖 人工智能", "type": "selector", "outbounds": [ "🇯🇵 日本节点", "🇺🇸 美国节点", "🇸🇬 新加坡节点", "🇰🇷 韩国节点", "🚀 节点选择" ] },
{ "tag": "🎮 游戏平台", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "Ⓜ️ 微软服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "📢 谷歌服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "🪟 微软服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "🇬 谷歌服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "🍎 苹果服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "GLOBAL", "type": "selector", "outbounds": [ "🎯 本机直连", "🇭🇰 香港节点", "🇹🇼 台湾节点", "🇯🇵 日本节点", "🇰🇷 韩国节点", "🇸🇬 新加坡节点", "🇺🇸 美国节点", {providers_tags}, "🚀 手动切换" ] },
{ "tag": "🚀 手动切换", "type": "selector", "use_all_providers": true },
@@ -29,15 +29,14 @@
{ "clash_mode": "Global", "outbound": "GLOBAL" },
{ "clash_mode": "Direct", "outbound": "🎯 本机直连" },
{ "geosite": "private", "outbound": "🎯 全球直连" },
{ "geosite": "ai", "outbound": "🤖 人工智能" },
{ "geosite": "microsoft@cn", "outbound": "Ⓜ️ 微软服务" },
{ "geosite": "ai", "outbound": "🤖 人工智能" },
{ "geosite": "microsoft@cn", "outbound": "🪟 微软服务" },
{ "geosite": "apple-cn", "outbound": "🍎 苹果服务" },
{ "geosite": "google-cn", "outbound": "📢 谷歌服务" },
{ "geosite": "google-cn", "outbound": "🇬 谷歌服务" },
{ "geosite": "category-games@cn", "outbound": "🎮 游戏平台" },
{ "geosite": "geolocation-!cn", "outbound": "🚀 节点选择" },
{ "geosite": "cn", "outbound": "🎯 全球直连" },
{ "geoip": "telegram", "outbound": "📲 电报消息" },
{ "geoip": "private", "outbound": "🎯 全球直连" },
{ "geoip": "cn", "outbound": "🎯 全球直连" }
],
"final": "🐟 漏网之鱼"

View File

@@ -3,13 +3,13 @@
"outbounds": [
{ "tag": "🚀 节点选择", "type": "selector", "outbounds": [ {providers_tags}, "🇭🇰 香港节点", "🇹🇼 台湾节点", "🇯🇵 日本节点", "🇰🇷 韩国节点", "🇸🇬 新加坡节点", "🇺🇸 美国节点", "📺 省流节点", "👍 高级节点", "🚀 手动切换", "🎯 本机直连" ] },
{ "tag": "🐟 漏网之鱼", "type": "selector", "outbounds": [ {providers_tags}, "🇭🇰 香港节点", "🇹🇼 台湾节点", "🇯🇵 日本节点", "🇰🇷 韩国节点", "🇸🇬 新加坡节点", "🇺🇸 美国节点", "📺 省流节点", "👍 高级节点", "🚀 手动切换", "🎯 本机直连" ] },
{ "tag": "🛑 广告拦截", "type": "selector", "outbounds": [ "❌ 禁止连接", "🎯 本机直连" ] },
{ "tag": "🛑 广告拦截", "type": "selector", "outbounds": [ "❌ 禁止连接", "🎯 本机直连" ] },
{ "tag": "🎯 全球直连", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "📲 电报消息", "type": "selector", "outbounds": [ "🚀 节点选择", "🇭🇰 香港节点", "🇹🇼 台湾节点", "🇯🇵 日本节点", "🇰🇷 韩国节点", "🇸🇬 新加坡节点", "🇺🇸 美国节点" ] },
{ "tag": "🤖 人工智能", "type": "selector", "outbounds": [ "🇯🇵 日本节点", "🇺🇸 美国节点", "🇸🇬 新加坡节点", "🇰🇷 韩国节点", "🚀 节点选择" ] },
{ "tag": "🎮 游戏平台", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "Ⓜ️ 微软服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "📢 谷歌服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "🪟 微软服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "🇬 谷歌服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "🍎 苹果服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "📈 网络测试", "type": "selector", "outbounds": [ "🎯 本机直连", "🇭🇰 香港节点", "🇹🇼 台湾节点", "🇯🇵 日本节点", "🇰🇷 韩国节点", "🇸🇬 新加坡节点", "🇺🇸 美国节点", {providers_tags}, "🚀 手动切换" ] },
{ "tag": "GLOBAL", "type": "selector", "outbounds": [ "🎯 本机直连", "🇭🇰 香港节点", "🇹🇼 台湾节点", "🇯🇵 日本节点", "🇰🇷 韩国节点", "🇸🇬 新加坡节点", "🇺🇸 美国节点", {providers_tags}, "🚀 手动切换" ] },
@@ -32,17 +32,16 @@
{ "clash_mode": "Global", "outbound": "GLOBAL" },
{ "clash_mode": "Direct", "outbound": "🎯 本机直连" },
{ "rule_set": "private", "outbound": "🎯 全球直连" },
{ "rule_set": "ai", "outbound": "🤖 人工智能" },
{ "rule_set": "ads", "outbound": "🛑 广告拦截" },
{ "rule_set": "microsoft-cn", "outbound": "Ⓜ️ 微软服务" },
{ "rule_set": "ai", "outbound": "🤖 人工智能" },
{ "rule_set": "ads", "outbound": "🛑 广告拦截" },
{ "rule_set": "microsoft-cn", "outbound": "🪟 微软服务" },
{ "rule_set": "apple-cn", "outbound": "🍎 苹果服务" },
{ "rule_set": "google-cn", "outbound": "📢 谷歌服务" },
{ "rule_set": "google-cn", "outbound": "🇬 谷歌服务" },
{ "rule_set": "games-cn", "outbound": "🎮 游戏平台" },
{ "rule_set": "networktest", "outbound": "📈 网络测试" },
{ "rule_set": "proxy", "outbound": "🚀 节点选择" },
{ "rule_set": "cn", "outbound": "🎯 全球直连" },
{ "rule_set": "telegramip", "outbound": "📲 电报消息" },
{ "rule_set": "privateip", "outbound": "🎯 全球直连" },
{ "rule_set": "cnip", "outbound": "🎯 全球直连" }
],
"rule_set": [
@@ -50,91 +49,84 @@
"tag": "private",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/private.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/private.srs",
"download_detour": "🎯 本机直连"
},
},
{
"tag": "ai",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/ai.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ai.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "ads",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/ads.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ads.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "microsoft-cn",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/microsoft-cn.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/microsoft-cn.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "apple-cn",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/apple-cn.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/apple-cn.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "google-cn",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/google-cn.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/google-cn.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "games-cn",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/games-cn.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games-cn.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "networktest",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/networktest.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/networktest.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "proxy",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/proxy.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/proxy.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "cn",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/cn.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cn.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "telegramip",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/telegramip.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "privateip",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/privateip.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/telegramip.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "cnip",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/cnip.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cnip.srs",
"download_detour": "🎯 本机直连"
}
],

View File

@@ -7,8 +7,8 @@
{ "tag": "📲 电报消息", "type": "selector", "outbounds": [ "🚀 节点选择", "🇭🇰 香港节点", "🇹🇼 台湾节点", "🇯🇵 日本节点", "🇰🇷 韩国节点", "🇸🇬 新加坡节点", "🇺🇸 美国节点" ] },
{ "tag": "🤖 人工智能", "type": "selector", "outbounds": [ "🇯🇵 日本节点", "🇺🇸 美国节点", "🇸🇬 新加坡节点", "🇰🇷 韩国节点", "🚀 节点选择" ] },
{ "tag": "🎮 游戏平台", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "Ⓜ️ 微软服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "📢 谷歌服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "🪟 微软服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "🇬 谷歌服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "🍎 苹果服务", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "📈 网络测试", "type": "selector", "outbounds": [ "🎯 本机直连", "🇭🇰 香港节点", "🇹🇼 台湾节点", "🇯🇵 日本节点", "🇰🇷 韩国节点", "🇸🇬 新加坡节点", "🇺🇸 美国节点", {providers_tags}, "🚀 手动切换" ] },
{ "tag": "GLOBAL", "type": "selector", "outbounds": [ "🎯 本机直连", "🇭🇰 香港节点", "🇹🇼 台湾节点", "🇯🇵 日本节点", "🇰🇷 韩国节点", "🇸🇬 新加坡节点", "🇺🇸 美国节点", {providers_tags}, "🚀 手动切换" ] },
@@ -30,16 +30,15 @@
{ "clash_mode": "Global", "outbound": "GLOBAL" },
{ "clash_mode": "Direct", "outbound": "🎯 本机直连" },
{ "rule_set": "private", "outbound": "🎯 全球直连" },
{ "rule_set": "ai", "outbound": "🤖 人工智能" },
{ "rule_set": "microsoft-cn", "outbound": "Ⓜ️ 微软服务" },
{ "rule_set": "ai", "outbound": "🤖 人工智能" },
{ "rule_set": "microsoft-cn", "outbound": "🪟 微软服务" },
{ "rule_set": "apple-cn", "outbound": "🍎 苹果服务" },
{ "rule_set": "google-cn", "outbound": "📢 谷歌服务" },
{ "rule_set": "google-cn", "outbound": "🇬 谷歌服务" },
{ "rule_set": "games-cn", "outbound": "🎮 游戏平台" },
{ "rule_set": "networktest", "outbound": "📈 网络测试" },
{ "rule_set": "proxy", "outbound": "🚀 节点选择" },
{ "rule_set": "cn", "outbound": "🎯 全球直连" },
{ "rule_set": "telegramip", "outbound": "📲 电报消息" },
{ "rule_set": "privateip", "outbound": "🎯 全球直连" },
{ "rule_set": "cnip", "outbound": "🎯 全球直连" }
],
"rule_set": [
@@ -47,84 +46,77 @@
"tag": "private",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/private.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/private.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "ai",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/ai.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ai.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "microsoft-cn",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/microsoft-cn.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/microsoft-cn.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "apple-cn",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/apple-cn.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/apple-cn.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "google-cn",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/google-cn.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/google-cn.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "games-cn",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/games-cn.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/games-cn.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "networktest",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/networktest.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/networktest.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "proxy",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/proxy.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/proxy.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "cn",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/cn.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cn.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "telegramip",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/telegramip.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "privateip",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/privateip.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/telegramip.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "cnip",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/cnip.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cnip.srs",
"download_detour": "🎯 本机直连"
}
],

View File

@@ -25,10 +25,9 @@
{ "clash_mode": "Global", "outbound": "GLOBAL" },
{ "clash_mode": "Direct", "outbound": "🎯 本机直连" },
{ "rule_set": "private", "outbound": "🎯 全球直连" },
{ "rule_set": "ai", "outbound": "🤖 人工智能" },
{ "rule_set": "ai", "outbound": "🤖 人工智能" },
{ "rule_set": "proxy", "outbound": "🚀 节点选择" },
{ "rule_set": "telegramip", "outbound": "📲 电报消息" },
{ "rule_set": "privateip", "outbound": "🎯 全球直连" },
{ "rule_set": "cnip", "outbound": "🎯 全球直连" }
],
"rule_set": [
@@ -36,42 +35,35 @@
"tag": "private",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/private.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/private.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "ai",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/ai.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/ai.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "proxy",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/proxy.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/proxy.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "telegramip",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/telegramip.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "privateip",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/privateip.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/telegramip.srs",
"download_detour": "🎯 本机直连"
},
{
"tag": "cnip",
"type": "remote",
"format": "binary",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/cnip.srs",
"url": "https://fastly.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box-ruleset/cnip.srs",
"download_detour": "🎯 本机直连"
}
],

View File

@@ -4,8 +4,8 @@
{ "tag": "🚀 节点选择", "type": "selector", "outbounds": [ {providers_tags} ], "use_all_providers": true },
{ "tag": "🐟 漏网之鱼", "type": "selector", "outbounds": [ "🚀 节点选择", "🎯 本机直连" ] },
{ "tag": "🎯 全球直连", "type": "selector", "outbounds": [ "🎯 本机直连", "🚀 节点选择" ] },
{ "tag": "GLOBAL", "type": "selector", "outbounds": [ "🎯 本机直连", {providers_tags} ], "use_all_providers": true },
{ "tag": "🎯 本机直连", "type": "direct" },
{ "tag": "GLOBAL", "type": "selector", "outbounds": [ "🎯 本机直连", {providers_tags} ], "use_all_providers": true },
{ "tag": "🎯 本机直连", "type": "direct" },
{ "tag": "dns-out", "type": "dns" }
],
"route": {

View File

@@ -1,144 +1,166 @@
#!/bin/sh
# Copyright (C) Juewuy
version=1.9.1alpha9
version=1.9.1
setdir(){
dir_avail(){
df $2 $1 |awk '{ for(i=1;i<=NF;i++){ if(NR==1){ arr[i]=$i; }else{ arr[i]=arr[i]" "$i; } } } END{ for(i=1;i<=NF;i++){ print arr[i]; } }' |grep -E 'Ava|可用' |awk '{print $2}'
setdir() {
dir_avail() {
df $2 $1 | awk '{ for(i=1;i<=NF;i++){ if(NR==1){ arr[i]=$i; }else{ arr[i]=arr[i]" "$i; } } } END{ for(i=1;i<=NF;i++){ print arr[i]; } }' | grep -E 'Ava|可用' | awk '{print $2}'
}
set_usb_dir(){
set_usb_dir() {
echo -e "请选择安装目录"
du -hL /mnt | awk '{print " "NR" "$2" "$1}'
read -p "请输入相应数字 > " num
dir=$(du -hL /mnt | awk '{print $2}' | sed -n "$num"p)
if [ -z "$dir" ];then
if [ -z "$dir" ]; then
echo -e "\033[31m输入错误请重新设置\033[0m"
set_usb_dir
fi
}
set_cust_dir(){
set_asus_dir() {
echo -e "请选择U盘目录"
du -hL /tmp/mnt | awk '{print " "NR" "$2" "$1}'
read -p "请输入相应数字 > " num
dir=$(du -hL /tmp/mnt | awk '{print $2}' | sed -n "$num"p)
if [ ! -f "$dir/asusware.arm/etc/init.d/S50downloadmaster" ]; then
echo -e "\033[31m未找到下载大师自启文件$dir/asusware.arm/etc/init.d/S50downloadmaster请检查设置\033[0m"
set_asus_dir
fi
}
set_cust_dir() {
echo -----------------------------------------------
echo '可用路径 剩余空间:'
df -h | awk '{print $6,$4}'| sed 1d
df -h | awk '{print $6,$4}' | sed 1d
echo '路径是必须带 / 的格式,注意写入虚拟内存(/tmp,/opt,/sys...)的文件会在重启后消失!!!'
read -p "请输入自定义路径 > " dir
if [ "$(dir_avail $dir)" = 0 ];then
if [ "$(dir_avail $dir)" = 0 ]; then
echo "\033[31m路径错误请重新设置\033[0m"
set_cust_dir
fi
}
echo -----------------------------------------------
if [ -n "$systype" ];then
[ "$systype" = "Padavan" ] && dir=/etc/storage
[ "$systype" = "mi_snapshot" ] && {
echo -e "\033[33m检测到当前设备为小米官方系统请选择安装位置\033[0m"
[ "$(dir_avail /data)" -gt 256 ] && echo " 1 安装到 /data 目录(推荐,支持软固化功能)"
[ "$(dir_avail /userdisk)" -gt 256 ] && echo " 2 安装到 /userdisk 目录(推荐,支持软固化功能)"
echo " 3 安装自定义目录(不推荐,不明勿用!)"
echo " 0 退出安装"
echo -----------------------------------------------
read -p "请输入相应数字 > " num
case "$num" in
1)
dir=/data
;;
2)
dir=/userdisk
;;
3)
set_cust_dir
;;
*)
exit 1 ;;
esac
}
[ "$systype" = "asusrouter" ] && {
echo -e "\033[33m检测到当前设备为华硕固件请选择安装方式\033[0m"
echo -e " 1 基于USB设备安装(通用,须插入\033[31m任意\033[0mUSB设备)"
echo -e " 2 基于自启脚本安装(仅支持梅林及部分官改固件)"
echo -----------------------------------------------
if [ -n "$systype" ]; then
[ "$systype" = "Padavan" ] && dir=/etc/storage
[ "$systype" = "mi_snapshot" ] && {
echo -e "\033[33m检测到当前设备为小米官方系统请选择安装位置\033[0m"
[ "$(dir_avail /data)" -gt 256 ] && echo " 1 安装到 /data 目录(推荐,支持软固化功能)"
[ "$(dir_avail /userdisk)" -gt 256 ] && echo " 2 安装到 /userdisk 目录(推荐,支持软固化功能)"
echo " 3 安装自定义目录(不推荐,不明勿用!)"
echo " 0 退出安装"
echo -----------------------------------------------
read -p "请输入相应数字 > " num
case "$num" in
1)
dir=/data
;;
2)
dir=/userdisk
;;
3)
set_cust_dir
;;
*)
exit 1
;;
esac
}
[ "$systype" = "asusrouter" ] && {
echo -e "\033[33m检测到当前设备为华硕固件请选择安装方式\033[0m"
echo -e " 1 基于USB设备安装(限23年9月之前固件须插入\033[31m任意\033[0mUSB设备)"
echo -e " 2 基于自启脚本安装(仅支持梅林及部分非koolshare官改固件)"
echo -e " 3 基于U盘+下载大师安装(支持所有固件限ARM设备须插入U盘或移动硬盘)"
echo -e " 0 退出安装"
echo -----------------------------------------------
read -p "请输入相应数字 > " num
case "$num" in
1)
read -p "将脚本安装到USB存储/系统闪存?(1/0) > " res
[ "$res" = "1" ] && set_usb_dir || dir=/jffs
usb_status=1
;;
2)
echo -e "如无法正常开机启动请重新使用USB方式安装"
sleep 2
dir=/jffs
;;
3)
echo -e "请先在路由器网页后台安装下载大师并启用,之后选择外置存储所在目录!"
sleep 2
set_asus_dir
;;
*)
exit 1
;;
esac
}
[ "$systype" = "ng_snapshot" ] && dir=/tmp/mnt
else
echo -e "\033[33m安装ShellCrash至少需要预留约1MB的磁盘空间\033[0m"
echo -e " 1 在\033[32m/etc目录\033[0m下安装(适合root用户)"
echo -e " 2 在\033[32m/usr/share目录\033[0m下安装(适合Linux系统)"
echo -e " 3 在\033[32m当前用户目录\033[0m下安装(适合非root用户)"
echo -e " 4 在\033[32m外置存储\033[0m中安装"
echo -e " 5 手动设置安装目录"
echo -e " 0 退出安装"
echo -----------------------------------------------
read -p "请输入相应数字 > " num
case "$num" in
1)
read -p "将脚本安装到USB存储/系统闪存?(1/0) > " res
[ "$res" = "1" ] && set_usb_dir || dir=/jffs
usb_status=1
;;
2)
echo -e "如无法正常开机启动请重新使用USB方式安装"
sleep 2
dir=/jffs ;;
*)
exit 1 ;;
esac
}
[ "$systype" = "ng_snapshot" ] && dir=/tmp/mnt
else
echo -e "\033[33m安装ShellCrash至少需要预留约1MB的磁盘空间\033[0m"
echo -e " 1 在\033[32m/etc目录\033[0m下安装(适合root用户)"
echo -e " 2 在\033[32m/usr/share目录\033[0m下安装(适合Linux系统)"
echo -e " 3 在\033[32m当前用户目录\033[0m下安装(适合非root用户)"
echo -e " 4 在\033[32m外置存储\033[0m中安装"
echo -e " 5 手动设置安装目录"
echo -e " 0 退出安装"
echo -----------------------------------------------
read -p "请输入相应数字 > " num
#设置目录
if [ -z $num ];then
echo 安装已取消
exit 1;
elif [ "$num" = "1" ];then
dir=/etc
elif [ "$num" = "2" ];then
dir=/usr/share
elif [ "$num" = "3" ];then
dir=~/.local/share
mkdir -p ~/.config/systemd/user
elif [ "$num" = "4" ];then
set_usb_dir
elif [ "$num" = "5" ];then
echo -----------------------------------------------
echo '可用路径 剩余空间:'
df -h | awk '{print $6,$4}'| sed 1d
echo '路径是必须带 / 的格式,注意写入虚拟内存(/tmp,/opt,/sys...)的文件会在重启后消失!!!'
read -p "请输入自定义路径 > " dir
if [ -z "$dir" ];then
echo -e "\033[31m路径错误请重新设置\033[0m"
setdir
#设置目录
if [ -z $num ]; then
echo 安装已取消
exit 1
elif [ "$num" = "1" ]; then
dir=/etc
elif [ "$num" = "2" ]; then
dir=/usr/share
elif [ "$num" = "3" ]; then
dir=~/.local/share
mkdir -p ~/.config/systemd/user
elif [ "$num" = "4" ]; then
set_usb_dir
elif [ "$num" = "5" ]; then
echo -----------------------------------------------
echo '可用路径 剩余空间:'
df -h | awk '{print $6,$4}' | sed 1d
echo '路径是必须带 / 的格式,注意写入虚拟内存(/tmp,/opt,/sys...)的文件会在重启后消失!!!'
read -p "请输入自定义路径 > " dir
if [ -z "$dir" ]; then
echo -e "\033[31m路径错误请重新设置\033[0m"
setdir
fi
else
echo 安装已取消!!!
exit 1
fi
else
echo 安装已取消!!!
exit 1;
fi
fi
if [ ! -w $dir ];then
echo -e "\033[31m没有$dir目录写入权限!请重新设置!\033[0m" && sleep 1 && setdir
else
echo -e "目标目录\033[32m$dir\033[0m空间剩余$(dir_avail $dir -h)"
read -p "确认安装?(1/0) > " res
[ "$res" = "1" ] && CRASHDIR=$dir/ShellCrash || setdir
fi
if [ ! -w $dir ]; then
echo -e "\033[31m没有$dir目录写入权限!请重新设置!\033[0m" && sleep 1 && setdir
else
echo -e "目标目录\033[32m$dir\033[0m空间剩余$(dir_avail $dir -h)"
read -p "确认安装?(1/0) > " res
[ "$res" = "1" ] && CRASHDIR=$dir/ShellCrash || setdir
fi
}
setconfig(){
setconfig() {
#参数1代表变量名参数2代表变量值,参数3即文件路径
[ -z "$3" ] && configpath=${CRASHDIR}/configs/ShellCrash.cfg || configpath="${3}"
[ -n "$(grep "${1}=" "$configpath")" ] && sed -i "s#${1}=.*#${1}=${2}#g" $configpath || echo "${1}=${2}" >> $configpath
[ -n "$(grep "${1}=" "$configpath")" ] && sed -i "s#${1}=.*#${1}=${2}#g" $configpath || echo "${1}=${2}" >>$configpath
}
#特殊固件识别及标记
[ -f "/etc/storage/started_script.sh" ] && {
systype=Padavan #老毛子固件
initdir='/etc/storage/started_script.sh'
}
}
[ -d "/jffs" ] && {
systype=asusrouter #华硕固件
[ -f "/jffs/.asusrouter" ] && initdir='/jffs/.asusrouter'
[ -d "/jffs/scripts" ] && initdir='/jffs/scripts/nat-start'
}
[ -d "/jffs/scripts" ] && initdir='/jffs/scripts/nat-start'
#华硕启用jffs
nvram set jffs2_scripts="1"
nvram commit
}
[ -f "/data/etc/crontabs/root" ] && systype=mi_snapshot #小米设备
[ -w "/var/mnt/cfg/firewall" ] && systype=ng_snapshot #NETGEAR设备
[ -w "/var/mnt/cfg/firewall" ] && systype=ng_snapshot #NETGEAR设备
#检查环境变量
[ -z "$CRASHDIR" -a -n "$clashdir" ] && CRASHDIR=$clashdir
@@ -149,25 +171,25 @@ mv -f /tmp/SC_tmp/* ${CRASHDIR} 2>/dev/null
#初始化
mkdir -p ${CRASHDIR}/configs
[ -f "${CRASHDIR}/configs/ShellCrash.cfg" ] || echo '#ShellCrash配置文件不明勿动' > ${CRASHDIR}/configs/ShellCrash.cfg
[ -f "${CRASHDIR}/configs/ShellCrash.cfg" ] || echo '#ShellCrash配置文件不明勿动' >${CRASHDIR}/configs/ShellCrash.cfg
#判断系统类型写入不同的启动文件
if [ -f /etc/rc.common -a "$(cat /proc/1/comm)" = "procd" ];then
#设为init.d方式启动
cp -f ${CRASHDIR}/shellcrash.procd /etc/init.d/shellcrash
chmod 755 /etc/init.d/shellcrash
if [ -f /etc/rc.common -a "$(cat /proc/1/comm)" = "procd" ]; then
#设为init.d方式启动
cp -f ${CRASHDIR}/shellcrash.procd /etc/init.d/shellcrash
chmod 755 /etc/init.d/shellcrash
else
[ -w /usr/lib/systemd/system ] && sysdir=/usr/lib/systemd/system
[ -w /etc/systemd/system ] && sysdir=/etc/systemd/system
if [ -n "$sysdir" -a "$USER" = "root" -a "$(cat /proc/1/comm)" = "systemd" ];then
if [ -n "$sysdir" -a "$USER" = "root" -a "$(cat /proc/1/comm)" = "systemd" ]; then
#创建shellcrash用户
type userdel && userdel shellcrash 2>/dev/null
userdel shellcrash 2>/dev/null
sed -i '/0:7890/d' /etc/passwd
sed -i '/x:7890/d' /etc/group
if type useradd >/dev/null 2>&1; then
if useradd -h >/dev/null 2>&1; then
useradd shellcrash -u 7890 2>/dev/null
sed -Ei s/7890:7890/0:7890/g /etc/passwd
else
echo "shellcrash:x:0:7890::/home/shellcrash:/bin/sh" >> /etc/passwd
echo "shellcrash:x:0:7890::/home/shellcrash:/bin/sh" >>/etc/passwd
fi
#配置systemd
mv -f ${CRASHDIR}/shellcrash.service $sysdir/shellcrash.service 2>/dev/null
@@ -181,8 +203,9 @@ else
fi
fi
#修饰文件及版本号
command -v bash >/dev/null 2>&1 && shtype=bash || shtype=sh
for file in start.sh task.sh ;do
command -v bash >/dev/null 2>&1 && shtype=bash
[ -x /bin/ash ] && shtype=ash
for file in start.sh task.sh menu.sh; do
sed -i "s|/bin/sh|/bin/$shtype|" ${CRASHDIR}/${file}
chmod 755 ${CRASHDIR}/${file}
done
@@ -193,17 +216,17 @@ setconfig versionsh_l $version
BINDIR=${CRASHDIR}
touch ${CRASHDIR}/configs/command.env
setconfig TMPDIR ${TMPDIR} ${CRASHDIR}/configs/command.env
setconfig BINDIR ${BINDIR} ${CRASHDIR}/configs/command.env
setconfig BINDIR ${BINDIR} ${CRASHDIR}/configs/command.env
}
if [ -n "$(grep 'crashcore=singbox' ${CRASHDIR}/configs/ShellCrash.cfg)" ];then
if [ -n "$(grep 'crashcore=singbox' ${CRASHDIR}/configs/ShellCrash.cfg)" ]; then
COMMAND='"$TMPDIR/CrashCore run -D $BINDIR -C $TMPDIR/jsons"'
else
COMMAND='"$TMPDIR/CrashCore -d $BINDIR -f $TMPDIR/config.yaml"'
fi
setconfig COMMAND "$COMMAND" ${CRASHDIR}/configs/command.env
#设置防火墙执行模式
[ -z "$(grep firewall_mod $CRASHDIR/configs/ShellClash.cfg 2>/dev/null)" ] && {
ckcmd iptables && firewall_mod=iptables
grep -q 'firewall_mod' "$CRASHDIR/configs/ShellClash.cfg" 2>/dev/null || {
iptables -j REDIRECT -h >/dev/null 2>&1 && firewall_mod=iptables
nft add table inet shellcrash 2>/dev/null && firewall_mod=nftables
setconfig firewall_mod $firewall_mod
}
@@ -214,41 +237,49 @@ setconfig COMMAND "$COMMAND" ${CRASHDIR}/configs/command.env
[ -w /jffs/configs/profile.add ] && profile=/jffs/configs/profile.add
[ -w ~/.bashrc ] && profile=~/.bashrc
[ -w /etc/profile ] && profile=/etc/profile
if [ -n "$profile" ];then
if [ -n "$profile" ]; then
sed -i '/alias crash=*/'d $profile
echo "alias crash=\"$shtype $CRASHDIR/menu.sh\"" >> $profile #设置快捷命令环境变量
echo "alias crash=\"$shtype $CRASHDIR/menu.sh\"" >>$profile #设置快捷命令环境变量
sed -i '/alias clash=*/'d $profile
echo "alias clash=\"$shtype $CRASHDIR/menu.sh\"" >> $profile #设置快捷命令环境变量
echo "alias clash=\"$shtype $CRASHDIR/menu.sh\"" >>$profile #设置快捷命令环境变量
sed -i '/export CRASHDIR=*/'d $profile
echo "export CRASHDIR=\"$CRASHDIR\"" >> $profile #设置路径环境变量
echo "export CRASHDIR=\"$CRASHDIR\"" >>$profile #设置路径环境变量
source $profile >/dev/null 2>&1 || echo 运行错误请使用bash而不是dash运行安装命令
#适配zsh环境变量
[ -n "$(cat /etc/shells 2>/dev/null|grep -oE 'zsh')" ] && [ -z "$(cat ~/.zshrc 2>/dev/null|grep CRASHDIR)" ] && {
[ -n "$(cat /etc/shells 2>/dev/null | grep -oE 'zsh')" ] && [ -z "$(cat ~/.zshrc 2>/dev/null | grep CRASHDIR)" ] && {
sed -i '/alias crash=*/'d ~/.zshrc 2>/dev/null
echo "alias crash=\"$shtype $CRASHDIR/menu.sh\"" >> ~/.zshrc
# 兼容 clash 命令
echo "alias crash=\"$shtype $CRASHDIR/menu.sh\"" >>~/.zshrc
# 兼容 clash 命令
sed -i '/alias clash=*/'d ~/.zshrc 2>/dev/null
echo "alias clash=\"$shtype $CRASHDIR/menu.sh\"" >> ~/.zshrc
echo "alias clash=\"$shtype $CRASHDIR/menu.sh\"" >>~/.zshrc
sed -i '/export CRASHDIR=*/'d ~/.zshrc 2>/dev/null
echo "export CRASHDIR=\"$CRASHDIR\"" >> ~/.zshrc
echo "export CRASHDIR=\"$CRASHDIR\"" >>~/.zshrc
source ~/.zshrc >/dev/null 2>&1
}
else
echo -e "\033[33m无法写入环境变量请检查安装权限\033[0m"
exit 1
fi
#在允许的情况下创建/usr/bin/crash文件
touch /usr/bin/crash 2>/dev/null && {
cat >/usr/bin/crash <<EOF
#/bin/$shtype
$CRASHDIR/menu.sh \$1 \$2 \$3 \$4 \$5
EOF
chmod +x /usr/bin/crash
}
#梅林/Padavan额外设置
[ -n "$initdir" ] && {
sed -i '/ShellCrash初始化/'d $initdir
touch $initdir
echo "$CRASHDIR/start.sh init #ShellCrash初始化脚本" >> $initdir
echo "$CRASHDIR/start.sh init & #ShellCrash初始化脚本" >>$initdir
chmod a+rx $initdir 2>/dev/null
setconfig initdir $initdir
}
#Padavan额外设置
[ -f "/etc/storage/started_script.sh" ] && mount -t tmpfs -o remount,rw,size=45M tmpfs /tmp #增加/tmp空间以适配新的内核压缩方式
#镜像化OpenWrt(snapshot)额外设置
if [ "$systype" = "mi_snapshot" -o "$systype" = "ng_snapshot" ];then
if [ "$systype" = "mi_snapshot" -o "$systype" = "ng_snapshot" ]; then
chmod 755 ${CRASHDIR}/misnap_init.sh
uci delete firewall.ShellClash 2>/dev/null
uci delete firewall.ShellCrash 2>/dev/null
@@ -262,11 +293,14 @@ else
rm -rf ${CRASHDIR}/misnap_init.sh
fi
#华硕USB启动额外设置
[ "$usb_status" = "1" ] && {
echo "$CRASHDIR/start.sh init #ShellCrash初始化脚本" > ${CRASHDIR}/asus_usb_mount.sh
[ "$usb_status" = "1" ] && {
echo "$CRASHDIR/start.sh init & #ShellCrash初始化脚本" >${CRASHDIR}/asus_usb_mount.sh
nvram set script_usbmount="$CRASHDIR/asus_usb_mount.sh"
nvram commit
}
#华硕下载大师启动额外设置
[ -f "$dir/asusware.arm/etc/init.d/S50downloadmaster" ] && [ -z "$(grep 'ShellCrash' $dir/asusware.arm/etc/init.d/S50downloadmaster)" ] &&
sed -i "/^PATH=/a\\$CRASHDIR/start.sh init & #ShellCrash初始化脚本" "$dir/asusware.arm/etc/init.d/S50downloadmaster"
#删除临时文件
rm -rf /tmp/*rash*gz
rm -rf /tmp/SC_tmp
@@ -275,26 +309,26 @@ mkdir -p ${CRASHDIR}/yamls
mkdir -p ${CRASHDIR}/jsons
mkdir -p ${CRASHDIR}/tools
mkdir -p ${CRASHDIR}/task
for file in config.yaml.bak user.yaml proxies.yaml proxy-groups.yaml rules.yaml others.yaml ;do
for file in config.yaml.bak user.yaml proxies.yaml proxy-groups.yaml rules.yaml others.yaml; do
mv -f ${CRASHDIR}/$file ${CRASHDIR}/yamls/$file 2>/dev/null
done
[ ! -L ${CRASHDIR}/config.yaml ] && mv -f ${CRASHDIR}/config.yaml ${CRASHDIR}/yamls/config.yaml 2>/dev/null
for file in fake_ip_filter mac web_save servers.list fake_ip_filter.list fallback_filter.list singbox_providers.list clash_providers.list;do
[ ! -L ${CRASHDIR}/config.yaml ] && mv -f ${CRASHDIR}/config.yaml ${CRASHDIR}/yamls/config.yaml 2>/dev/null
for file in fake_ip_filter mac web_save servers.list fake_ip_filter.list fallback_filter.list singbox_providers.list clash_providers.list; do
mv -f ${CRASHDIR}/$file ${CRASHDIR}/configs/$file 2>/dev/null
done
#配置文件改名
mv -f ${CRASHDIR}/mark ${CRASHDIR}/configs/ShellCrash.cfg 2>/dev/null
mv -f ${CRASHDIR}/configs/ShellClash.cfg ${CRASHDIR}/configs/ShellCrash.cfg 2>/dev/null
#数据库改名
mv -f ${CRASHDIR}/geosite.dat ${CRASHDIR}/GeoSite.dat 2>/dev/null
#内核改名
mv -f ${CRASHDIR}/clash ${CRASHDIR}/CrashCore 2>/dev/null
#内核压缩
[ -f ${CRASHDIR}/CrashCore ] && tar -zcf ${CRASHDIR}/CrashCore.tar.gz -C ${CRASHDIR} CrashCore
for file in dropbear_rsa_host_key authorized_keys tun.ko ShellDDNS.sh;do
#配置文件改名
mv -f ${CRASHDIR}/mark ${CRASHDIR}/configs/ShellCrash.cfg 2>/dev/null
mv -f ${CRASHDIR}/configs/ShellClash.cfg ${CRASHDIR}/configs/ShellCrash.cfg 2>/dev/null
#数据库改名
mv -f ${CRASHDIR}/geosite.dat ${CRASHDIR}/GeoSite.dat 2>/dev/null
#内核改名
mv -f ${CRASHDIR}/clash ${CRASHDIR}/CrashCore 2>/dev/null
#内核压缩
[ -f ${CRASHDIR}/CrashCore ] && tar -zcf ${CRASHDIR}/CrashCore.tar.gz -C ${CRASHDIR} CrashCore
for file in dropbear_rsa_host_key authorized_keys tun.ko ShellDDNS.sh; do
mv -f ${CRASHDIR}/$file ${CRASHDIR}/tools/$file 2>/dev/null
done
for file in cron task.sh task.list;do
for file in cron task.sh task.list; do
mv -f ${CRASHDIR}/$file ${CRASHDIR}/task/$file 2>/dev/null
done
#旧版文件清理
@@ -303,7 +337,7 @@ sed -i '/shellclash/d' /etc/passwd
sed -i '/shellclash/d' /etc/group
rm -rf /etc/init.d/clash
[ "$systype" = "mi_snapshot" -a "$CRASHDIR" != '/data/clash' ] && rm -rf /data/clash
for file in CrashCore clash.sh getdate.sh shellcrash.rc core.new clashservice log shellcrash.service mark? mark.bak;do
for file in CrashCore clash.sh getdate.sh shellcrash.rc core.new clashservice log shellcrash.service mark? mark.bak; do
rm -rf ${CRASHDIR}/$file
done
#旧版变量改名

File diff suppressed because it is too large Load Diff

View File

@@ -43,10 +43,10 @@ tproxyfix(){
}
init(){
#等待启动完成
log_file=$(uci get system.@system[0].log_file)
while ! /sbin/ip a| grep -q lan; do
while ! ip a| grep -q lan; do
sleep 10
done
sleep 20
#初始化环境变量
sed -i "/alias crash/d" $profile
sed -i "/alias clash/d" $profile
@@ -62,9 +62,11 @@ init(){
#启动服务
if [ ! -f $CRASHDIR/.dis_startup ]; then
#AX6S/AX6000修复tun功能
[ -f $CRASHDIR/configs/tun.ko ] && tunfix
[ -s $CRASHDIR/tools/tun.ko ] && tunfix
#小米7000/小米万兆修复tproxy
[ -f /etc/init.d/qca-nss-ecm ] && [ -n "$(grep 'redir_mod=Tproxy' $CRASHDIR/configs/ShellCrash.cfg )" ] && tproxyfix
#自动覆盖根证书文件
[ -s $CRASHDIR/tools/ca-certificates.crt ] && cp -f $CRASHDIR/tools/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
#启动服务
$CRASHDIR/start.sh start
/etc/init.d/shellcrash enable

View File

@@ -11,14 +11,14 @@ CRASHDIR=$(cat /etc/profile | grep CRASHDIR | awk -F "\"" '{print $2}')
source ${CRASHDIR}/configs/command.env #加载启动命令和启动目录
start_service() {
if [ -n "$(cat $CRASHDIR/configs/ShellCrash.cfg | grep 'firewall_area=5')" ];then
if [ -n "$(cat $CRASHDIR/configs/ShellCrash.cfg | grep 'firewall_area=5')" ]; then
$CRASHDIR/start.sh start_firewall #主旁转发
else
#本机代理用户
[ -n "$(grep 'shellcrash:x:0:7890' /etc/passwd)" ] && USER=shellcrash || USER=root
#检测必须文件
$CRASHDIR/start.sh bfstart
if [ "$?" = "0" ];then
if [ "$?" = "0" ]; then
#使用procd创建clash后台进程
procd_open_instance
procd_set_param user $USER
@@ -32,8 +32,8 @@ start_service() {
fi
fi
}
stop_service(){
stop_service() {
procd_close_instance
$CRASHDIR/start.sh stop_firewall
$CRASHDIR/start.sh stop_firewall
$CRASHDIR/start.sh unset_proxy
}

View File

@@ -6,8 +6,8 @@ After=network.target
Type=simple
User=shellcrash
ExecStartPre=/etc/ShellCrash/start.sh bfstart
ExecStart=/etc/ShellCrash/CrashCore run -D /etc/ShellCrash -C /tmp/ShellCrash/jsons
ExecStartPost=/etc/ShellCrash/start.sh afstart >/dev/null &
ExecStart=/etc/ShellCrash/CrashCore run -D /etc/ShellCrash -C /tmp/ShellCrash/jsons >/dev/null
ExecStartPost=/etc/ShellCrash/start.sh afstart
ExecStopPost=/etc/ShellCrash/start.sh stop_firewall ; /etc/ShellCrash/start.sh unset_proxy
Restart=on-abnormal
RestartSec=10s

File diff suppressed because it is too large Load Diff

View File

@@ -222,6 +222,7 @@ set_service(){
task_user_add(){ #自定义命令添加
echo -----------------------------------------------
echo -e "\033[33m命令可包含空格请确保命令可执行\033[0m"
echo -e "\033[36m此处不要添加执行条件请在添加完成后返回添加具体执行条件\033[0m"
echo -e "也可以手动编辑\033[32m${CRASHDIR}/task/task.user\033[0m添加"
read -p "请输入命令语句 > " script
if [ -n "$script" ];then
@@ -318,13 +319,15 @@ task_type(){ #任务条件选择菜单
;;
1)
echo -----------------------------------------------
echo -e " 输入 1~7 对应\033[33m每周的指定某天\033[0m运行"
echo -e " 输入 1,3,6 代表\033[36m每周1,3,6\033[0m运行"
echo -e " 输入 0~6 对应\033[33m每周的指定某天\033[0m运行(0=周日)"
echo -e " 输入 1,4,0 代表\033[36m每周一、周四、周日\033[0m运行"
echo -e " 输入 1-5 代表\033[36m周一至周五\033[0m运行"
read -p "在每周哪天执行? > " week
read -p "在每周哪天执行? > " week
week=`echo ${week/7/0}` #把7换成0
echo -----------------------------------------------
read -p "想在该日的具体哪个小时执行0-23 > " hour
cron_time="在每周$week的$hour点整"
cron_time=`echo ${cron_time/0/日}` #把0换成日
set_cron
;;
2)

View File

@@ -65,7 +65,7 @@ setrules(){ #自定义规则
}
del_rule_type(){
echo -e "输入对应数字即可移除相应规则:"
sed -i '/^ *$/d' $YAMLSDIR/rules.yaml
sed -i '/^ *$/d; /^#/d' $YAMLSDIR/rules.yaml
cat $YAMLSDIR/rules.yaml | grep -Ev '^#' | awk -F "#" '{print " "NR" "$1$2$3}'
echo -----------------------------------------------
echo -e " 0 返回上级菜单"
@@ -74,9 +74,8 @@ setrules(){ #自定义规则
0) ;;
'') ;;
*)
text=$(cat $YAMLSDIR/rules.yaml | grep -Ev '^#' | sed -n "$num p" | awk '{print $2}')
if [ -n $text ];then
sed -i "/$text/d" $YAMLSDIR/rules.yaml
if [ "$num" -le "$(wc -l < $YAMLSDIR/rules.yaml)" ];then
sed -i "${num}d" $YAMLSDIR/rules.yaml
sleep 1
del_rule_type
else
@@ -98,6 +97,8 @@ setrules(){ #自定义规则
echo -e " 0 返回上级菜单"
read -p "请输入对应数字 > " num
case $num in
0)
;;
1)
rule_type="DOMAIN-SUFFIX DOMAIN-KEYWORD IP-CIDR SRC-IP-CIDR DST-PORT SRC-PORT GEOIP GEOSITE IP-CIDR6 DOMAIN"
rule_group="DIRECT#REJECT$(cat $YAMLSDIR/proxy-groups.yaml $YAMLSDIR/config.yaml 2>/dev/null | grep -Ev '^#' | grep -o '\- name:.*' | sed 's/- name: /#/g' | tr -d '\n')"
@@ -208,6 +209,8 @@ EOF
echo -e " 0 返回上级菜单"
read -p "请输入对应数字 > " num
case $num in
0)
;;
1)
group_type="select url-test fallback load-balance"
group_type_cn="手动选择 自动选择 故障转移 负载均衡"
@@ -284,6 +287,8 @@ setproxies(){ #自定义clash节点
echo -e " 0 返回上级菜单"
read -p "请输入对应数字 > " num
case $num in
0)
;;
1)
proxy_type="DOMAIN-SUFFIX DOMAIN-KEYWORD IP-CIDR SRC-IP-CIDR DST-PORT SRC-PORT GEOIP GEOSITE IP-CIDR6 DOMAIN MATCH"
proxy_group="$(cat $YAMLSDIR/proxy-groups.yaml $YAMLSDIR/config.yaml 2>/dev/null | sed "/#自定义策略组开始/,/#自定义策略组结束/d" | grep -Ev '^#' | grep -o '\- name:.*' | sed 's/#.*//' | sed 's/- name: /#/g' | tr -d '\n' | sed 's/#//')"
@@ -347,7 +352,7 @@ gen_clash_providers(){ #生成clash的providers配置文件
fi
cat >> $TMPDIR/providers/providers.yaml <<EOF
${1}:
type: http
type: $type
url: "$download_url"
path: "$path"
interval: 43200
@@ -395,7 +400,7 @@ EOF
if [ -n "$2" ];then
gen_clash_providers_txt $1 $2
providers_tags=$1
sed -i 's/, {providers_tags}//g' ${TMPDIR}/providers/proxy-groups.yaml
echo ' - {name: '${1}', type: url-test, tolerance: 100, lazy: true, use: ['${1}']}' >> ${TMPDIR}/providers/proxy-groups.yaml
else
providers_tags=''
while read line;do
@@ -432,7 +437,7 @@ gen_singbox_providers(){ #生成singbox的providers配置文件
cat >> ${TMPDIR}/providers/providers.json <<EOF
{
"tag": "${1}",
"type": "file",
"type": "local",
"healthcheck_url": "https://www.gstatic.com/generate_204",
"healthcheck_interval": "10m",
"path": "${2}"
@@ -442,7 +447,7 @@ EOF
cat >> ${TMPDIR}/providers/providers.json <<EOF
{
"tag": "${1}",
"type": "http",
"type": "remote",
"healthcheck_url": "https://www.gstatic.com/generate_204",
"healthcheck_interval": "10m",
"download_url": "${2}",
@@ -479,14 +484,16 @@ EOF
{
"outbound_providers": [
EOF
if [ -n "$2" ];then
gen_singbox_providers_txt $1 $2
providers_tags=\"$1\"
else
cat > ${TMPDIR}/providers/outbounds_add.json <<EOF
cat > ${TMPDIR}/providers/outbounds_add.json <<EOF
{
"outbounds": [
EOF
#单独指定节点时使用特殊方式
if [ -n "$2" ];then
gen_singbox_providers_txt $1 $2
providers_tags=\"$1\"
echo '{ "tag": "'${1}'", "type": "urltest", "tolerance": 100, "providers": "'${1}'", "includes": ".*" },' >> ${TMPDIR}/providers/outbounds_add.json
else
providers_tags=''
while read line;do
tag=$(echo $line | awk '{print $1}')
@@ -495,9 +502,10 @@ EOF
gen_singbox_providers_txt $tag $url
echo '{ "tag": "'${tag}'", "type": "urltest", "tolerance": 100, "providers": "'${tag}'", "includes": ".*" },' >> ${TMPDIR}/providers/outbounds_add.json
done < ${CRASHDIR}/configs/providers.cfg
sed -i '$s/},/}]}/' ${TMPDIR}/providers/outbounds_add.json #修复文件格式
fi
sed -i '$s/},/}]}/' ${TMPDIR}/providers/providers.json #修复文件格式
#修复文件格式
sed -i '$s/},/}]}/' ${TMPDIR}/providers/outbounds_add.json
sed -i '$s/},/}]}/' ${TMPDIR}/providers/providers.json
#使用模版生成outbounds和rules模块
cat ${TMPDIR}/provider_temp_file | sed "s/{providers_tags}/$providers_tags/g" >> ${TMPDIR}/providers/outbounds.json
rm -rf ${TMPDIR}/provider_temp_file
@@ -673,7 +681,7 @@ setproviders(){ #自定义providers
[ "$res" = "1" ] && rm -rf $CRASHDIR/configs/providers.cfg
setproviders
;;
d)
e)
echo -e "\033[33m将清空 $CRASHDIR/providers 目录下所有内容\033[0m"
read -p "是否继续?(1/0) > " res
[ "$res" = "1" ] && rm -rf $CRASHDIR/providers
@@ -740,6 +748,8 @@ override(){ #配置文件覆写
[ "$inuserguide" = 1 ] || echo -e " 0 返回上级菜单"
read -p "请输入对应数字 > " num
case "$num" in
0)
;;
1)
if [ -n "$(pidof CrashCore)" ];then
echo -----------------------------------------------
@@ -1007,7 +1017,11 @@ set_core_config(){ #配置文件功能
echo -e "\033[30;47m ShellCrash配置文件管理\033[0m"
echo -----------------------------------------------
echo -e " 1 在线\033[32m生成$crashcore配置文件\033[0m"
echo -e " 2 在线\033[33m获取完整配置文件\033[0m"
if [ -f "$CRASHDIR"/v2b_api.sh ];then
echo -e " 2 登录\033[33m获取订阅(推荐!)\033[0m"
else
echo -e " 2 在线\033[33m获取完整配置文件\033[0m"
fi
echo -e " 3 本地\033[32m生成providers配置文件\033[0m"
echo -e " 4 本地\033[33m上传完整配置文件\033[0m"
echo -e " 5 设置\033[36m自动更新\033[0m"
@@ -1018,6 +1032,8 @@ set_core_config(){ #配置文件功能
[ "$inuserguide" = 1 ] || echo -e " 0 返回上级菜单"
read -p "请输入对应数字 > " num
case "$num" in
0)
;;
1)
if [ -n "$Url" ];then
echo -----------------------------------------------
@@ -1036,20 +1052,25 @@ set_core_config(){ #配置文件功能
gen_core_config_link
;;
2)
echo -----------------------------------------------
echo -e "\033[33m此功能可能会导致一些bug\033[0m"
echo -e "强烈建议你使用\033[32m在线生成配置文件功能\033[0m"
echo -e "\033[33m继续后如出现任何问题请务必自行解决一切提问恕不受理\033[0m"
echo -----------------------------------------------
sleep 1
read -p "我确认遇到问题可以自行解决[1/0] > " res
if [ "$res" = '1' ]; then
set_core_config_link
if [ -f "$CRASHDIR"/v2b_api.sh ];then
. "$CRASHDIR"/v2b_api.sh
set_core_config
else
echo -----------------------------------------------
echo -e "\033[32m正在跳转……\033[0m"
echo -e "\033[33m此功能可能会导致一些bug\033[0m"
echo -e "强烈建议你使用\033[32m在线生成配置文件功能\033[0m"
echo -e "\033[33m继续后如出现任何问题请务必自行解决一切提问恕不受理\033[0m"
echo -----------------------------------------------
sleep 1
gen_core_config_link
read -p "我确认遇到问题可以自行解决[1/0] > " res
if [ "$res" = '1' ]; then
set_core_config_link
else
echo -----------------------------------------------
echo -e "\033[32m正在跳转……\033[0m"
sleep 1
gen_core_config_link
fi
fi
;;
3)
@@ -1458,11 +1479,11 @@ setcore(){ #内核选择菜单
echo -e " >>\033[32m$singbox_v \033[33m不支持providers\033[0m"
echo -e " 说明文档: \033[36;4mhttps://sing-box.sagernet.org\033[0m"
echo -e "3 \033[43;30m Meta \033[0m \033[32m多功能支持全面\033[0m"
echo -e " >>\033[32m$meta_v \033[33m内存占用较高\033[0m"
echo -e " >>\033[32m$meta_v \033[33m占用略高GeoSite可能不兼容华硕固件\033[0m"
echo -e " 说明文档: \033[36;4mhttps://wiki.metacubex.one\033[0m"
echo -e "4 \033[43;30m SingBoxP \033[0m \033[32m支持ssr、providers、dns并发……\033[0m"
echo -e " >>\033[32m$singboxp_v \033[33mPuerNya分支版本\033[0m"
echo -e " 说明文档: \033[36;4mhttps://sing-box.sagernet.org\033[0m"
echo -e " 说明文档: \033[36;4mhttps://sing-boxp.dustinwin.top\033[0m"
echo -----------------------------------------------
echo -e "5 \033[36m自定义内核\033[0m $custcore"
echo -----------------------------------------------
@@ -1471,6 +1492,8 @@ setcore(){ #内核选择菜单
echo 0 返回上级菜单
read -p "请输入对应数字 > " num
case "$num" in
0)
;;
1)
crashcore=clash
custcorelink=''
@@ -1482,6 +1505,10 @@ setcore(){ #内核选择菜单
getcore
;;
3)
[ -d "/jffs" ] && {
echo -e "\033[31mMeta内核使用的GeoSite.dat数据库在华硕设备存在被系统误删的问题可能无法使用!\033[0m"
sleep 3
}
crashcore=meta
custcorelink=''
getcore
@@ -1648,7 +1675,7 @@ setcustgeo(){ #下载自定义数据库文件
}
setgeo(){ #数据库选择菜单
source $CFG_PATH > /dev/null
[ -n "$cn_mini.mmdb_v" ] && geo_type_des=精简版 || geo_type_des=全球版
[ -n "$cn_mini_v" ] && geo_type_des=精简版 || geo_type_des=全球版
echo -----------------------------------------------
echo -e "\033[36m请选择需要更新的Geo/CN数据库文件\033[0m"
echo -e "\033[36m全球版GeoIP和精简版CN-IP数据库不共存\033[0m"
@@ -1905,7 +1932,9 @@ getcrt(){ #下载根证书文件
error_down
else
echo -----------------------------------------------
mkdir -p $openssldir
[ "$systype" = 'mi_snapshot' ] && cp -f ${TMPDIR}/ca-certificates.crt $CRASHDIR/tools #镜像化设备特殊处理
[ -f $openssldir/certs ] && rm -rf $openssldir/certs #如果certs不是目录而是文件则删除并创建目录
mkdir -p $openssldir/certs
mv -f ${TMPDIR}/ca-certificates.crt $crtdir
${CRASHDIR}/start.sh webget /dev/null https://baidu.com echooff rediron skipceroff
if [ "$?" = "1" ];then
@@ -1917,10 +1946,13 @@ getcrt(){ #下载根证书文件
fi
}
setcrt(){
openssldir=$(openssl version -a 2>&1 | grep OPENSSLDIR | awk -F "\"" '{print $2}')
[ -z "$openssldir" ] && openssldir=/etc/ssl
openssldir="$(openssl version -d 2>&1 | awk -F '"' '{print $2}')"
if [ -d "$openssldir/certs/" ];then
crtdir="$openssldir/certs/ca-certificates.crt"
else
crtdir="/etc/ssl/certs/ca-certificates.crt"
fi
if [ -n "$openssldir" ];then
crtdir="$openssldir/certs/ca-certificates.crt"
echo -----------------------------------------------
echo -e "\033[36m安装/更新本地根证书文件(ca-certificates.crt)\033[0m"
echo -e "\033[33m用于解决证书校验错误x509报错等问题\033[0m"
@@ -2219,12 +2251,11 @@ userguide(){
} && echo "已成功开启ipv4转发如未正常开启请手动重启设备" || echo "开启失败!请自行谷歌查找当前设备的开启方法!"
fi
elif [ "$num" = 2 ];then
setconfig redir_mod "纯净模式"
setconfig redir_mod "Redir模式"
setconfig crashcore "clash"
setconfig common_ports "未开启"
echo -----------------------------------------------
echo -e "\033[36m请选择设置本机代理的方式\033[0m"
localproxy
setconfig firewall_area '2'
elif [ "$num" = 3 ];then
mv -f $CFG_PATH.bak $CFG_PATH
echo -e "\033[32m脚本设置已还原\033[0m"
@@ -2248,8 +2279,8 @@ userguide(){
}
fi
#检测及下载根证书
openssldir=$(openssl version -a 2>&1 | grep OPENSSLDIR | awk -F "\"" '{print $2}')
[ -z "$openssldir" ] && openssldir=/etc/ssl
openssldir="$(openssl version -d 2>&1 | awk -F '"' '{print $2}')"
[ ! -d "$openssldir/certs" ] && openssldir=/etc/ssl
if [ -d $openssldir/certs -a ! -f $openssldir/certs/ca-certificates.crt ];then
echo -----------------------------------------------
echo -e "\033[33m当前设备未找到根证书文件\033[0m"
@@ -2310,10 +2341,18 @@ userguide(){
[ ! -s $CRASHDIR/yamls/config.yaml -a ! -s $CRASHDIR/jsons/config.json ] && {
echo -----------------------------------------------
echo -e "\033[32m是否导入配置文件\033[0m(这是运行前的最后一步)"
echo -e "\033[0m你必须拥有一份yaml格式的配置文件才能运行服务!\033[0m"
echo -e "\033[0m你必须拥有一份配置文件才能运行服务\033[0m"
echo -----------------------------------------------
read -p "现在开始导入?(1/0) > " res
[ "$res" = 1 ] && inuserguide=1 && set_core_config && inuserguide=""
[ "$res" = 1 ] && inuserguide=1 && {
if [ -f "$CRASHDIR"/v2b_api.sh ];then
. "$CRASHDIR"/v2b_api.sh
else
set_core_config
fi
set_core_config
inuserguide=""
}
}
#回到主界面
echo -----------------------------------------------
@@ -2439,7 +2478,7 @@ testcommand(){
if [ "$firewall_mod" = "nftables" ];then
nft list table inet shellcrash
else
[ "$firewall_area" = 1 -o "$firewall_area" = 3 -o "$firewall_area" = 5 ] && {
[ "$firewall_area" = 1 -o "$firewall_area" = 3 -o "$firewall_area" = 5 -o "$vm_redir" = "已开启" ] && {
echo ----------------Redir+DNS---------------------
iptables -t nat -L PREROUTING --line-numbers
iptables -t nat -L shellcrash_dns --line-numbers
@@ -2476,6 +2515,11 @@ testcommand(){
}
}
}
[ "$vm_redir" = "已开启" ] && {
echo -------------vm-Redir-------------------
iptables -t nat -L shellcrash_vm --line-numbers
iptables -t nat -L shellcrash_vm_dns --line-numbers
}
fi
exit;
elif [ "$num" = 5 ]; then

View File

@@ -7,10 +7,10 @@ tmp_dir=/tmp/ddns_$USER
[ ! -f "$ddns_dir" -o ! -d "/etc/ddns" ] && echo -e "本脚本依赖OpenWrt内置的DDNS服务,当前设备无法运行,已退出!" && exit 1
echo -----------------------------------------------
echo -e "\033[30;46m欢迎使用ShellDDNS\033[0m"
echo -e "TG群\033[36;4mhttps://t.me/clashfm\033[0m"
echo -e "TG群\033[36;4mhttps://t.me/ShellCrash\033[0m"
add_ddns(){
cat >> $ddns_dir << EOF
add_ddns() {
cat >>$ddns_dir <<EOF
config service '$service'
option enabled '1'
option force_unit 'hours'
@@ -31,7 +31,7 @@ EOF
sleep 3
echo 服务已经添加!
}
set_ddns(){
set_ddns() {
echo -----------------------------------------------
read -p "请输入你的域名 > " str
[ -z "$str" ] && domain=$domain || domain=$str
@@ -58,7 +58,7 @@ set_ddns(){
[ "$res" = 1 ] && add_ddns || set_ddns
}
set_service(){
set_service() {
services_dir=/etc/ddns/$services
echo -----------------------------------------------
echo -e "\033[32m请选择服务提供商\033[0m"
@@ -78,7 +78,7 @@ set_service(){
fi
}
network_type(){
network_type() {
echo -----------------------------------------------
echo -e "\033[32m请选择网络模式\033[0m"
echo -e " 1 \033[36mIPV4\033[0m"
@@ -86,11 +86,11 @@ network_type(){
read -p "请输入对应数字 > " num
if [ -z "$num" ]; then
i=
elif [ "$num" = 1 ];then
elif [ "$num" = 1 ]; then
use_ipv6=0
services=services
set_service
elif [ "$num" = 2 ];then
elif [ "$num" = 2 ]; then
use_ipv6=1
services=services_ipv6
set_service
@@ -101,13 +101,13 @@ network_type(){
fi
}
rev_service(){
rev_service() {
enabled=$(uci show ddns.$service | grep 'enabled' | awk -F "\'" '{print $2}')
[ "$enabled" = 1 ] && enabled_b="停用" || enabled_b="启用"
echo -----------------------------------------------
echo -e " 1 \033[32m立即更新\033[0m"
echo -e " 2 编辑当前服务\033[0m"
echo -e " 3 $enabled_b当前服务"
echo -e " 3 $enabled_b当前服务"
echo -e " 4 移除当前服务"
echo -e " 0 返回上级菜单"
echo -----------------------------------------------
@@ -133,21 +133,21 @@ rev_service(){
fi
}
load_ddns(){
load_ddns() {
nr=0
cat $ddns_dir | grep 'config service' | awk '{print $3}' | sed "s/\'//g" > $tmp_dir
cat $ddns_dir | grep 'config service' | awk '{print $3}' | sed "s/\'//g" >$tmp_dir
echo -----------------------------------------------
echo -e "列表 域名 启用 IP地址"
echo -----------------------------------------------
for service in $(cat $tmp_dir) ;do
echo $service >> $tmp_dir
nr=$((nr+1))
for service in $(cat $tmp_dir); do
echo $service >>$tmp_dir
nr=$((nr + 1))
enabled=$(uci show ddns.$service | grep 'enabled' | awk -F "\'" '{print $2}')
domain=$(uci show ddns.$service | grep 'domain' | awk -F "\'" '{print $2}')
local_ip=$(cat /var/log/ddns/$service.log | grep 'Local IP' | tail -1 | awk -F "\'" '{print $2}')
echo -e " $nr $domain $enabled $local_ip"
done
echo -e " $((nr+1)) 添加DDNS服务"
echo -e " $((nr + 1)) 添加DDNS服务"
echo -e " 0 退出"
echo -----------------------------------------------
read -p "请输入对应序号 > " num
@@ -165,7 +165,5 @@ load_ddns(){
fi
}
load_ddns
rm -rf $tmp_dir