Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c61f8fa504 | ||
|
|
ee4ec97d32 | ||
|
|
e456baaad8 | ||
|
|
3a54ff8eb7 | ||
|
|
3903711218 | ||
|
|
82c5c7d185 | ||
|
|
2fc2c0f53e |
@@ -1,10 +1,10 @@
|
||||
# clash-for-Miwifi
|
||||
在小米AX3600/AX1800/AX5等路由器上使用clash做透明代理
|
||||
在小米等基于openwrt系统的路由器上使用clash做透明代理
|
||||
=====
|
||||
|
||||
功能简介:
|
||||
--
|
||||
~支持小米全系列路由器设备使用clash做透明代理,更多的设备支持可以前往TG群报名参与测试<br>
|
||||
~支持小米全系列路由器设备使用clash做透明代理,理论支持各种基于openwrt框架的路由器系统<br>
|
||||
~支持SS、SSR、v2ray、trojan、sock5等协议<br>
|
||||
~支持批量导入节点链接及订阅链接<br>
|
||||
~支持使用网页面板管理规则组<br>
|
||||
|
||||
BIN
bin/Country.mmdb
BIN
bin/Country.mmdb
Binary file not shown.
Binary file not shown.
@@ -1 +1,2 @@
|
||||
versionsh=0.9.5
|
||||
GeoIP_v=20200817
|
||||
versionsh=0.9.7
|
||||
|
||||
@@ -14,7 +14,7 @@ fi
|
||||
ccfg=$clashdir/mark
|
||||
yaml=$clashdir/config.yaml
|
||||
#检查标识文件
|
||||
if [ ! -f "$ccfg" ]; then
|
||||
if [ ! -f $ccfg ]; then
|
||||
echo mark文件不存在,正在创建!
|
||||
cat >$ccfg<<EOF
|
||||
#标识clash运行状态的文件,不明勿动!
|
||||
@@ -22,9 +22,9 @@ EOF
|
||||
fi
|
||||
source $ccfg
|
||||
#检查mac地址记录
|
||||
[ ! -f "$clashdir/mac" ] && touch $clashdir/mac
|
||||
[ ! -f $clashdir/mac ] && touch $clashdir/mac
|
||||
#获取自启状态
|
||||
if [ -f /etc/rc.d/*clash ]; then
|
||||
if [ -f /etc/rc.d/*clash ];then
|
||||
auto="\033[32m已设置开机启动!\033[0m"
|
||||
auto1="\033[36m禁用\033[0mclash开机启动"
|
||||
else
|
||||
@@ -32,7 +32,7 @@ else
|
||||
auto1="\033[36m允许\033[0mclash开机启动"
|
||||
fi
|
||||
#获取运行模式
|
||||
if [ -z "$redir_mod" ]; then
|
||||
if [ -z "$redir_mod" ];then
|
||||
sed -i "2i\redir_mod=Redir模式" $ccfg
|
||||
redir_mod=Redir模式
|
||||
fi
|
||||
@@ -125,8 +125,8 @@ fi
|
||||
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
echo -e "\033[30;47m 欢迎使用订阅功能!\033[0m"
|
||||
echo -----------------------------------------------
|
||||
echo -e " 1 输入\033[36m节点/订阅\033[0m链接"
|
||||
echo -e " 2 输入完整clash规则链接"
|
||||
echo -e " 1 导入\033[36m节点/订阅\033[0m链接"
|
||||
echo -e " 2 使用完整clash规则链接"
|
||||
echo -e " 3 选取\033[33m代理规则\033[0m模版"
|
||||
echo -e " 4 选择配置生成服务器"
|
||||
echo -e " 5 \033[36m还原\033[0m配置文件"
|
||||
@@ -272,21 +272,12 @@ fi
|
||||
}
|
||||
clashadv(){
|
||||
#获取设置默认显示
|
||||
if [ -z "$skip_cert" ]; then
|
||||
skip_cert=已开启
|
||||
fi
|
||||
if [ -z "$common_ports" ]; then
|
||||
common_ports=未开启
|
||||
fi
|
||||
if [ -z "$dns_mod" ]; then
|
||||
dns_mod=redir_host
|
||||
fi
|
||||
if [ -z "$modify_yaml" ]; then
|
||||
modify_yaml=未开启
|
||||
fi
|
||||
if [ -z "$ipv6_support" ]; then
|
||||
ipv6_support=未开启
|
||||
fi
|
||||
[ -z "$skip_cert" ] && skip_cert=已开启
|
||||
[ -z "$common_ports" ] && common_ports=未开启
|
||||
[ -z "$dns_mod" ] && dns_mod=redir_host
|
||||
[ -z "$modify_yaml" ] && modify_yaml=未开启
|
||||
[ -z "$ipv6_support" ] && ipv6_support=未开启
|
||||
[ -z "$dns_over" ] && dns_over=未开启
|
||||
if [ -z "$(cat $clashdir/mac)" ]; then
|
||||
mac_return=未开启
|
||||
else
|
||||
@@ -304,6 +295,7 @@ echo -e " 4 只代理常用端口: \033[36m$common_ports\033[0m ———
|
||||
echo -e " 5 不修饰config.yaml: \033[36m$modify_yaml\033[0m ————用于使用自定义配置"
|
||||
echo -e " 6 启用ipv6支持: \033[36m$ipv6_support\033[0m ————实验性且不兼容Fake_ip"
|
||||
echo -e " 7 过滤局域网mac地址: \033[36m$mac_return\033[0m ————列表内设备不走代理"
|
||||
echo -e " 8 不使用本地DNS服务: \033[36m$dns_over\033[0m ————防止redir-host模式的dns污染"
|
||||
echo -e " 9 \033[32m重启\033[0mclash服务"
|
||||
echo -e " 0 返回上级菜单 \033[0m"
|
||||
read -p "请输入对应数字 > " num
|
||||
@@ -406,7 +398,6 @@ if [[ $num -le 9 ]] > /dev/null 2>&1; then
|
||||
echo -e "\033[33m已设为开启跳过本地证书验证!!\033[0m"
|
||||
skip_cert=已开启
|
||||
else
|
||||
/etc/init.d/clash enable
|
||||
sed -i "1i\skip_cert=未开启" $ccfg
|
||||
echo -e "\033[33m已设为禁止跳过本地证书验证!!\033[0m"
|
||||
skip_cert=未开启
|
||||
@@ -421,7 +412,6 @@ if [[ $num -le 9 ]] > /dev/null 2>&1; then
|
||||
echo -e "\033[33m已设为仅代理(22,53,587,465,995,993,143,80,443)等常用端口!!\033[0m"
|
||||
common_ports=已开启
|
||||
else
|
||||
/etc/init.d/clash enable
|
||||
sed -i "1i\common_ports=未开启" $ccfg
|
||||
echo -e "\033[33m已设为代理全部端口!!\033[0m"
|
||||
common_ports=未开启
|
||||
@@ -438,7 +428,6 @@ if [[ $num -le 9 ]] > /dev/null 2>&1; then
|
||||
echo -e "\033[33m!!!必然会导致上不了网!!!\033[0m"
|
||||
modify_yaml=已开启
|
||||
else
|
||||
/etc/init.d/clash enable
|
||||
sed -i "1i\modify_yaml=未开启" $ccfg
|
||||
echo -e "\033[32m已设为使用脚本内置规则管理config.yaml配置文件!!\033[0m"
|
||||
modify_yaml=未开启
|
||||
@@ -454,7 +443,6 @@ if [[ $num -le 9 ]] > /dev/null 2>&1; then
|
||||
echo -e "Clash对ipv6的支持并不友好,如不能使用请静等修复!"
|
||||
ipv6_support=已开启
|
||||
else
|
||||
/etc/init.d/clash enable
|
||||
sed -i "1i\ipv6_support=未开启" $ccfg
|
||||
echo -e "\033[32m已禁用对ipv6协议的支持!!\033[0m"
|
||||
ipv6_support=未开启
|
||||
@@ -524,16 +512,27 @@ if [[ $num -le 9 ]] > /dev/null 2>&1; then
|
||||
clashadv
|
||||
fi
|
||||
|
||||
|
||||
elif [[ $num == 8 ]]; then
|
||||
sed -i '/dns_over*/'d $ccfg
|
||||
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
if [ "$dns_over" = "未开启" ] > /dev/null 2>&1; then
|
||||
sed -i "1i\dns_over=已开启" $ccfg
|
||||
echo -e "\033[33m已设置DNS为不走本地dnsmasq服务器!\033[0m"
|
||||
echo -e "可能会对浏览速度产生一定影响,介意勿用!"
|
||||
dns_over=已开启
|
||||
else
|
||||
/etc/init.d/clash enable
|
||||
sed -i "1i\dns_over=未开启" $ccfg
|
||||
echo -e "\033[32m已设置DNS通过本地dnsmasq服务器!\033[0m"
|
||||
echo -e "redir-host模式下部分网站可能会被运营商dns污染导致无法打开"
|
||||
dns_over=未开启
|
||||
fi
|
||||
clashadv
|
||||
|
||||
clashadv
|
||||
|
||||
elif [[ $num == 9 ]]; then
|
||||
if [ $status -gt 0 ];then
|
||||
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/etc/init.d/clash stop
|
||||
echo -e "\033[31mClash服务已停止!\033[0m"
|
||||
fi
|
||||
[ $status -gt 0 ] && /etc/init.d/clash stop
|
||||
clashstart
|
||||
clashsh
|
||||
else
|
||||
@@ -750,7 +749,7 @@ echo -e " 1 \033[32m启动/重启\033[0mclash服务"
|
||||
echo -e " 2 clash\033[33m高级设置\033[0m"
|
||||
echo -e " 3 \033[31m停止\033[0mclash服务"
|
||||
echo -e " 4 $auto1"
|
||||
echo -e " 5 设置定时任务"
|
||||
echo -e " 5 设置\033[33m定时任务\033[0m"
|
||||
echo -e " 6 导入\033[32m节点/订阅\033[0m链接"
|
||||
echo -e " 8 \033[35m测试菜单\033[0m"
|
||||
echo -e " 9 \033[36m更新/卸载\033[0m"
|
||||
|
||||
@@ -16,23 +16,16 @@ cat >$ccfg<<EOF
|
||||
EOF
|
||||
#指定一些默认状态
|
||||
redir_mod=redir模式
|
||||
common_ports=未开启
|
||||
dns_mod=redir-host
|
||||
modify_yaml=未开启
|
||||
ipv6_support=未开启
|
||||
fi
|
||||
source $ccfg #加载配置文件
|
||||
#是否代理常用端口
|
||||
if [ "$common_ports" = "已开启" ];then
|
||||
ports='-m multiport --dports 22,53,587,465,995,993,143,80,443 '
|
||||
fi
|
||||
#DNS模式
|
||||
if [ "$common_ports" = "已开启" ];then
|
||||
ports='-m multiport --dports 22,53,587,465,995,993,143,80,443 '
|
||||
fi
|
||||
#检测系统端口占用
|
||||
for portx in 1053 7890 7892 9999 ;do
|
||||
[ -n "$(netstat -ntulp |grep $portx|grep -v clash)" ] && echo -e "检测到端口:\033[30;47m $portx \033[0m被占用!clash无法启动!" && exit;
|
||||
[ -n "$(netstat -ntulp |grep :$portx|grep -v clash)" ] && echo -e "检测到端口:\033[30;47m $portx \033[0m被以下进程占用!clash无法启动!" && echo $(netstat -ntulp |grep :$portx) && exit;
|
||||
done
|
||||
}
|
||||
modify_yaml(){
|
||||
@@ -50,8 +43,10 @@ fi
|
||||
external='external-controller: 0.0.0.0:9999'
|
||||
if [ "$dns_mod" = "fake-ip" ];then
|
||||
dns='dns: {enable: true, listen: 0.0.0.0:1053, fake-ip-range: 198.18.0.1/16, enhanced-mode: fake-ip, nameserver: [114.114.114.114, 127.0.0.1:53], fallback: [tcp://1.0.0.1, 8.8.4.4]}'
|
||||
elif [ "$dns_over" = "已开启" ];then
|
||||
dns='dns: {enable: true, ipv6: true, listen: 0.0.0.0:1053, enhanced-mode: redir-host, nameserver: [114.114.114.114, 223.5.5.5], fallback: [1.0.0.1, 8.8.4.4]}'
|
||||
else
|
||||
dns='dns: {enable: true, ipv6: true, listen: 0.0.0.0:1053, enhanced-mode: redir-host, nameserver: [114.114.114.114, 127.0.0.1:53], fallback: [1.0.0.1, 8.8.4.4]}'
|
||||
dns='dns: {enable: true, ipv6: true, listen: 0.0.0.0:1053, enhanced-mode: redir-host, nameserver: [114.114.114.114, 223.5.5.5, 127.0.0.1:53], fallback: [1.0.0.1, 8.8.4.4]}'
|
||||
fi
|
||||
if [ "$redir_mod" != "Redir模式" ];then
|
||||
tun='tun: {enable: true, stack: system}'
|
||||
@@ -80,7 +75,6 @@ exper='experimental: {ignore-resolve-fail: true, interface-name: en0}'
|
||||
sed -i "10,99s/sni: \S*/\1skip-cert-verify: true}/" $clashdir/config.yaml #跳过trojan本地证书验证
|
||||
sed -i '10,99s/}}/}, skip-cert-verify: true}/' $clashdir/config.yaml #跳过v2+ssl本地证书验证
|
||||
fi
|
||||
#sed -i '/rules:/a \ - DOMAIN-SUFFIX,clash.razord.top,🎯 全球直连' $clashdir/config.yaml
|
||||
}
|
||||
mark_time(){
|
||||
start_time=`date +%s`
|
||||
|
||||
@@ -51,7 +51,9 @@ if [ "$result" != "200" ];then
|
||||
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
echo
|
||||
if [ -z $markhttp ];then
|
||||
exit;
|
||||
echo 请尝试使用导入节点/链接功能!
|
||||
getlink
|
||||
|
||||
else
|
||||
read -p "是否更换后端地址后重试?[1/0] > " res
|
||||
if [ "$res" = '1' ]; then
|
||||
@@ -69,6 +71,24 @@ if [ "$result" != "200" ];then
|
||||
fi
|
||||
else
|
||||
if cat $yamlnew | grep ', server:' >/dev/null;then
|
||||
#检测旧格式
|
||||
if cat $yamlnew | grep 'Proxy Group:' >/dev/null;then
|
||||
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
echo -e "\033[31m已经停止对旧格式配置文件的支持!!!\033[0m"
|
||||
echo -e "请使用新格式或者使用\033[32m导入节点/订阅\033[0m功能!"
|
||||
sleep 2
|
||||
clashlink
|
||||
fi
|
||||
#检测不支持的加密协议
|
||||
if cat $yamlnew | grep 'cipher: chacha20,' >/dev/null;then
|
||||
if [ "$clashcore" = "clash" -o "$clashcore" = "clashpre" ];then
|
||||
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
echo -e "\033[31m当前核心:$clashcore不支持chacha20加密!!!\033[0m"
|
||||
echo -e "请更换使用clashR核心!!!"
|
||||
sleep 2
|
||||
getcore
|
||||
fi
|
||||
fi
|
||||
#替换文件
|
||||
if [ -f $yaml ];then
|
||||
mv $yaml $yaml.bak
|
||||
@@ -98,9 +118,9 @@ else
|
||||
sleep 1
|
||||
clashsh
|
||||
else
|
||||
echo -e "\033[31mclash服务启动失败!请利用测试菜单排查问题!\033[0m"
|
||||
sleep 1
|
||||
clashsh
|
||||
echo -e "\033[31mclash服务启动失败!请查看报错信息!\033[0m"
|
||||
$clashdir/clash -d $clashdir & { sleep 3 ; kill $! & }
|
||||
exit;
|
||||
fi
|
||||
fi
|
||||
else
|
||||
@@ -125,13 +145,13 @@ do
|
||||
echo -e "\033[44m 遇问题请加TG群反馈:\033[42;30m t.me/clashfm \033[0m"
|
||||
echo -----------------------------------------------
|
||||
echo -e "支持批量导入\033[30;46m Http/Https/Clash \033[0m等格式的订阅链接"
|
||||
echo -e "支持批量导入\033[30;42m Vmess/SSR/SS/Trojan/Sock5 \033[0m等格式的节点链接"
|
||||
echo -e "\033[31m使用SSR节点请务必使用支持SSR的clash核心!\033[0m"
|
||||
echo -e "多个较短的链接可以用\033[30;47m | \033[0m分隔以一次性输入"
|
||||
echo -e "多个较长的链接请尽量分多次输入,可支持多达\033[30;47m 99 \033[0;36m次输入"
|
||||
echo -e "\033[32m直接输入回车以结束输入并开始导入链接!\033[0m"
|
||||
echo -e "以及\033[30;42m Vmess/SSR/SS/Trojan/Sock5 \033[0m等格式的节点链接"
|
||||
echo -----------------------------------------------
|
||||
echo -e "\033[33m 0 返回上级目录!\033[0m"
|
||||
echo -e "多个较短的链接可以用\033[30;47m | \033[0m号分隔以一次性输入"
|
||||
echo -e "多个较长的链接可分次输入,支持多达\033[30;47m 99 \033[0m次输入"
|
||||
echo -----------------------------------------------
|
||||
echo -e "回车 \033[32m完成输入\033[0m并开始导入链接!"
|
||||
echo -e " 0 \033[33m取消输入\033[0m并返回上级目录!"
|
||||
echo -----------------------------------------------
|
||||
read -p "请输入第"$i"个链接 > " url
|
||||
test=$(echo $url | grep "://")
|
||||
@@ -192,10 +212,10 @@ fi
|
||||
}
|
||||
getlink2(){
|
||||
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
echo -e "\033[44m 遇问题请加TG群反馈:\033[42;30m t.me/clashfm \033[0m"
|
||||
echo -e "\033[30;47m 此功能不明勿用,出问题自行解决!\033[0m"
|
||||
echo -----------------------------------------------
|
||||
echo -e "\033[33m仅支持导入可直接在clash中使用的完整订阅链接"
|
||||
echo -e "\033[36m非完整链接请使用【导入节点/订阅链接】功能"
|
||||
echo -e "\033[33m仅限导入完整clash链接!!!"
|
||||
echo -e "\033[36m导入后如无法运行,请使用【导入节点/订阅链接】功能"
|
||||
echo -e "\033[31m注意如节点使用了chacha20加密协议,需将核心更新为clashr核心\033[0m"
|
||||
echo -----------------------------------------------
|
||||
echo -e "\033[33m0 返回上级目录!\033[0m"
|
||||
@@ -291,13 +311,13 @@ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
echo -e "当前clash核心:\033[47;30m $clashcore \033[46;30m$clashv\033[0m"
|
||||
echo -e "\033[32m请选择需要下载的核心版本!\033[0m"
|
||||
echo -----------------------------------------------
|
||||
echo "1 clash: 运行稳定,内存占用小"
|
||||
echo "(官方正式版) 不支持SSR,不支持Tun模式"
|
||||
echo "1 clash: 稳定,内存占用小,推荐!"
|
||||
echo "(官方正式版) 不支持chacha20加密,不支持Tun模式"
|
||||
echo
|
||||
echo "2 clashr: 稳定,内存占用小,支持SSR"
|
||||
echo "2 clashr: 内存占用小,支持chacha20加密"
|
||||
echo "(clashR修改版)不支持Tun模式"
|
||||
echo
|
||||
echo "3 clashpre: 支持SSR,支持Tun模式"
|
||||
echo "3 clashpre: 支持Tun模式"
|
||||
echo "(高级预览版) 内存占用高,不支持chacha20加密"
|
||||
echo -----------------------------------------------
|
||||
echo 0 返回上级菜单
|
||||
@@ -440,6 +460,10 @@ if [ "$res" = '1' ]; then
|
||||
getdb
|
||||
else
|
||||
echo -e "\033[33m下载成功,正在解压文件!\033[0m"
|
||||
if cat /proc/mounts | grep -q www ;then
|
||||
echo 检测到/www为只读,正在重新挂载!
|
||||
mount -o remount -rw /www
|
||||
fi
|
||||
mkdir -p /www/clash > /dev/null
|
||||
tar -zxvf '/tmp/clashdb.tar.gz' -C /www/clash > /dev/null
|
||||
[ $? -ne 0 ] && echo "文件解压失败!" && exit 1
|
||||
|
||||
Reference in New Issue
Block a user