#!/bin/sh # Copyright (C) Juewuy echo "***********************************************" echo "** 欢迎使用 **" echo "** Clash for Miwifi **" echo "** by Juewuy **" echo "***********************************************" Mark1="" Mark2="\033[31m未设置开机启动!\033[0m" Mark3="Tun模式" clashlink(){ exit; } clashadv(){ echo ----------------------------------------------- echo -e "\033[33m欢迎使用高级模式菜单:\033[0m" echo 1 切换代理模式(Tun/Redir) echo 2 更新clash核心文件(施工中) echo 3 更新GeoIP数据库(施工中) echo 4 更新管理脚本(施工中) echo 9 卸载clash echo 0 返回上级菜单 read -p "请输入对应数字 > " num if [[ $num -le 9 ]] > /dev/null 2>&1; then if [[ $num == 0 ]]; then clashsh elif [[ $num == 1 ]]; then echo ----------------------------------------------- echo -e "当前代理模式为:\033[47;30m $Mark3 \033[0m" echo -e "\033[33m切换模式时会重启clash服务,可能会导致短时间的网络中断!\033[0m" echo "1 Tun模式: 支持UDP转发且延迟低" echo " 但CPU及内存占用更高" echo " 适合外服游戏用户" echo "2 Redir模式:CPU以及内存占用较低" echo " 但不支持UDP流量转发" echo " 日常使用推荐此模式" echo 0 返回上级菜单 read -p "请输入对应数字 > " num if [[ $num == 0 ]]; then clashadv elif [[ $num == 1 ]]; then if [[ $Mark3 = "Redir模式" ]]; then sed -i '1,20s/Redir模式/Tun模式/' /bin/clash #修改Mark3标记 if [ $Number1 -gt 0 ];then echo ----------------------------------------------- echo -e "\033[33m正在重启clash进程……\033[0m" /etc/init.d/clash stop > /dev/null 2>&1 fi /etc/init.d/clash start Number2=`ps |grep -w /etc/clash/clash|grep -v grep|wc -l` if [ $Number2 -gt 0 ];then echo ----------------------------------------------- echo -e "\033[32mclash服务已启动!\033[0m" echo -e "\033[33mclash已成功切换为:\033[47;34m Tun模式! \033[0m" echo -e 可以使用 "\033[32mhttp://clash.razord.top\033[0m"(IP为网关IP,端口为9999)管理clash内置规则 Mark3="Tun模式" clashsh else echo ----------------------------------------------- echo -e "\033[31mclash服务启动失败!请检查配置文件!\033[0m" clashsh fi else echo ----------------------------------------------- echo -e "\033[33m当前已经处于Tun模式,无需重复设置!\033[0m" clashadv fi elif [[ $num == 2 ]]; then if [[ $Mark3 = "Tun模式" ]]; then sed -i '1,20s/Tun模式/Redir模式/' /bin/clash #修改Mark3标记 if [ $Number1 -gt 0 ];then echo ----------------------------------------------- echo -e "\033[33m正在重启clash进程……\033[0m" /etc/init.d/clash stop > /dev/null 2>&1 fi /etc/init.d/clash start Number2=`ps |grep -w /etc/clash/clash|grep -v grep|wc -l` if [ $Number2 -gt 0 ];then echo ----------------------------------------------- echo -e "\033[32mclash服务已启动!\033[0m" echo -e "\033[33mclash已成功切换为:\033[47;34m Redir模式! \033[0m" echo -e 可以使用 "\033[32mhttp://clash.razord.top\033[0m"(IP为网关IP,端口为9999)管理clash内置规则 Mark3="Redir模式" clashsh else echo ----------------------------------------------- echo -e "\033[31mclash服务启动失败!请检查配置文件!\033[0m" clashsh fi else echo ----------------------------------------------- echo -e "\033[33m当前已经处于Redir模式,无需重复设置!\033[0m" clashadv fi else echo -e "\033[31m请输入正确的数字!\033[0m" clashadv fi elif [[ $num == 9 ]]; then read -p "确认卸载clash?(警告:该操作不可逆!)[1/0] " res if [ "$res" = '1' ]; then /etc/init.d/clash disable /etc/init.d/clash stop rm -rf /etc/clash rm /etc/init.d/clash rm /bin/clash echo 已卸载clash相关文件! fi exit; else echo -e "\033[31m暂未支持的选项!\033[0m" clashadv fi else echo -e "\033[31m请输入正确的数字!\033[0m" clashsh fi exit; } clashsh(){ Number1=`ps |grep -w /etc/clash/clash|grep -v grep|wc -l` if [ $Number1 -gt 0 ];then Mark1="\033[32m正在运行($Mark3)\033[0m" else Mark1="\033[31m没有运行($Mark3)\033[0m" fi echo ----------------------------------------------- echo -e "Clash服务$Mark1,$Mark2" echo 1 启动/重启clash服务 echo 2 测试代理服务器连通性 echo 3 停止clash服务 echo 4 允许clash开机启动 echo 5 禁止clash开机启动 echo 6 使用链接导入节点/订阅 echo 7 高级设置 echo 0 退出脚本 read -p "请输入对应数字 > " num if [[ $num -le 7 ]] > /dev/null 2>&1; then if [[ $num == 0 ]]; then exit; elif [[ $num == 1 ]]; then if [ $Number1 -gt 0 ];then echo ----------------------------------------------- /etc/init.d/clash stop > /dev/null 2>&1 echo -e "\033[31mClash服务已停止!\033[0m" sleep 1 fi /etc/init.d/clash start Number2=`ps |grep -w /etc/clash/clash|grep -v grep|wc -l` if [ $Number2 -gt 0 ];then echo ----------------------------------------------- echo -e "\033[32mclash服务已启动!\033[0m" echo 可以使用 http://clash.razord.top (IP为网关IP,端口为9999)管理clash内置规则 clashsh else echo ----------------------------------------------- echo -e "\033[31mclash服务启动失败!请检查配置文件!\033[0m" clashsh fi exit; elif [[ $num == 2 ]]; then echo 注意:连续多次测试可能会导致IP暂时被GitHub封禁! delay=`curl -kx socks5://127.0.0.1:7891 -o /dev/null -s -w '%{time_total}' 'https://github.com' & { sleep 3 ; kill $! & }` > /dev/null 2>&1 delay0=`expr length x$delay` #echo $delay if [ $delay0 == 1 ];then echo ---------------------------------------------- echo '连接超时(>3s),请检查节点信息!' clashsh else echo ----------------------------------------------- echo 连接成功!响应时间为:$delay秒 clashsh fi elif [[ $num == 3 ]]; then /etc/init.d/clash stop > /dev/null 2>&1 echo ----------------------------------------------- echo -e "\033[31mClash服务已停止!\033[0m" echo ----------------------------------------------- exit; elif [[ $num == 4 ]]; then /etc/init.d/clash enable sed -i '1,20s/1m未/2m已/' /bin/clash echo ----------------------------------------------- echo -e "\033[32m已设置Clash开机启动!\033[0m" Mark2="\033[32m已设置开机启动!\033[0m" clashsh elif [[ $num == 5 ]]; then /etc/init.d/clash disable sed -i '1,20s/2m已/1m未/' /bin/clash echo ----------------------------------------------- echo -e "\033[33m已禁止Clash开机启动!\033[0m" Mark2="\033[31m未设置开机启动!\033[0m" clashsh elif [[ $num == 6 ]]; then clashlink elif [[ $num == 7 ]]; then clashadv else echo -e "\033[31m请输入正确的数字!\033[0m" fi exit 1 else echo -e "\033[31m请输入正确的数字!\033[0m" fi exit 1 } clashsh