v1.5.8
~同步最新版本meta-alpha内核 ~增加屏蔽QUIC功能(2-7) ~更新部分下载源及sub源 ~修复开机启动偶尔显示不正常的bug ~修复部分报错问题
This commit is contained in:
@@ -732,6 +732,7 @@ clashcfg(){
|
||||
[ -z "$dns_mod" ] && dns_mod=redir_host
|
||||
[ -z "$dns_over" ] && dns_over=已开启
|
||||
[ -z "$cn_ip_route" ] && cn_ip_route=未开启
|
||||
[ -z "$quic_rj" ] && quic_rj=未开启
|
||||
[ -z "$(cat $clashdir/mac)" ] && mac_return=未开启 || mac_return=已启用
|
||||
#
|
||||
echo -----------------------------------------------
|
||||
@@ -743,9 +744,10 @@ clashcfg(){
|
||||
echo -e " 4 只代理常用端口: \033[36m$common_ports\033[0m ————用于过滤P2P流量"
|
||||
echo -e " 5 过滤局域网设备: \033[36m$mac_return\033[0m ————使用黑/白名单进行过滤"
|
||||
echo -e " 6 设置本机代理服务: \033[36m$local_proxy\033[0m ————使本机流量经过clash内核"
|
||||
echo -e " 7 屏蔽QUIC流量: \033[36m$quic_rj\033[0m ————优化视频性能"
|
||||
[ "$dns_mod" = "fake-ip" ] && \
|
||||
echo -e " 7 管理Fake-ip过滤列表" || \
|
||||
echo -e " 7 CN_IP绕过内核: \033[36m$cn_ip_route\033[0m ————优化性能,不兼容Fake-ip"
|
||||
echo -e " 8 管理Fake-ip过滤列表" || \
|
||||
echo -e " 8 CN_IP绕过内核: \033[36m$cn_ip_route\033[0m ————优化性能,不兼容Fake-ip"
|
||||
echo -----------------------------------------------
|
||||
echo -e " 0 返回上级菜单 \033[0m"
|
||||
echo -----------------------------------------------
|
||||
@@ -782,7 +784,7 @@ clashcfg(){
|
||||
|
||||
elif [ "$num" = 4 ]; then
|
||||
echo -----------------------------------------------
|
||||
if [ "$common_ports" = "未开启" ] > /dev/null 2>&1; then
|
||||
if [ "$common_ports" = "未开启" ]; then
|
||||
echo -e "\033[33m已设为仅代理【$multiport】等常用端口!!\033[0m"
|
||||
common_ports=已开启
|
||||
else
|
||||
@@ -801,7 +803,23 @@ clashcfg(){
|
||||
sleep 1
|
||||
clashcfg
|
||||
|
||||
elif [ "$num" = 7 ]; then
|
||||
elif [ "$num" = 7 ]; then
|
||||
echo -----------------------------------------------
|
||||
if [ "$redir_mod" = "混合模式" -o "$redir_mod" = "Tun模式" -o "$tproxy_mod" = "已开启" ];then
|
||||
if [ "$quic_rj" = "未开启" ]; then
|
||||
echo -e "\033[33m已禁止QUCI流量通过clash内核!!\033[0m"
|
||||
quic_rj=已启用
|
||||
else
|
||||
echo -e "\033[33m已取消禁止QUIC协议流量!!\033[0m"
|
||||
quic_rj=未开启
|
||||
fi
|
||||
setconfig quic_rj $quic_rj
|
||||
else
|
||||
echo -e "\033[33m当前模式默认不会代理UDP流量,无需设置!!\033[0m"
|
||||
fi
|
||||
clashcfg
|
||||
|
||||
elif [ "$num" = 8 ]; then
|
||||
echo -----------------------------------------------
|
||||
if [ "$dns_mod" = "fake-ip" ];then
|
||||
fake_ip_filter
|
||||
|
||||
@@ -41,7 +41,7 @@ linkserver(){
|
||||
echo 当前使用后端为:$server_link
|
||||
echo 1 api.dler.io (墙洞提供)
|
||||
echo 2 sub.shellclash.ga (作者提供)
|
||||
echo 3 api.wcc.best (sub_web作者提供)
|
||||
echo 3 sub.xeton.dev (SUB作者T大提供)
|
||||
echo 4 sub.id9.cc (品云提供)
|
||||
echo 5 sub.maoxiongnet.com (猫熊提供)
|
||||
echo -----------------------------------------------
|
||||
@@ -749,7 +749,8 @@ setserver(){
|
||||
echo -e " 2 \033[36m测试版\033[0m&Github源(本机clash服务加速)"
|
||||
echo -e " 3 \033[36m测试版\033[0m&Jsdelivr-CDN源"
|
||||
echo -e " 4 \033[36m测试版\033[0m&Github源(githubusercontents加速)"
|
||||
[ -z "$(curl -V 2>/dev/null)" ] && [ -n "$(wget -V 2>&1 | grep BusyBox)" ] && echo -e " 5 \033[33mHttp专用源\033[0m"
|
||||
echo -e " 4 \033[36m测试版\033[0m&Github源(fastgit.org加速)"
|
||||
[ -z "$(curl -V 2>/dev/null)" ] && [ -n "$(wget -V 2>&1 | grep BusyBox)" ] && echo -e " 7 \033[33mHttp专用源\033[0m"
|
||||
echo -e " 8 自定义源地址(用于本地源或自建源)"
|
||||
echo -e " 9 \033[31m版本回退\033[0m"
|
||||
echo -e " 0 返回上级菜单"
|
||||
@@ -772,6 +773,10 @@ setserver(){
|
||||
release_url=''
|
||||
saveserver
|
||||
elif [ "$num" = 5 ]; then
|
||||
update_url='https://raw.fastgit.org/juewuy/ShellClash/master'
|
||||
release_url=''
|
||||
saveserver
|
||||
elif [ "$num" = 7 ]; then
|
||||
update_url='http://shellclash.ga'
|
||||
release_url=''
|
||||
saveserver
|
||||
|
||||
@@ -144,7 +144,7 @@ getyaml(){
|
||||
Server=`sed -n ""$server_link"p"<<EOF
|
||||
https://api.dler.io
|
||||
http://sub.shellclash.ga
|
||||
https://api.wcc.best
|
||||
https://sub.xeton.dev
|
||||
https://sub.id9.cc
|
||||
https://sub.maoxiongnet.com
|
||||
EOF`
|
||||
@@ -172,7 +172,7 @@ EOF`
|
||||
if [ -z "$Https" ];then
|
||||
[ -n "$(echo $Url | grep -o 'vless')" ] && Server='http://sub.shellclash.ga'
|
||||
Https="$Server/sub?target=clash&insert=true&new_name=true&scv=true&udp=true&exclude=$exclude&include=$include&url=$Url&config=$Config"
|
||||
markhttp=1
|
||||
url_type=true
|
||||
fi
|
||||
#输出
|
||||
echo -----------------------------------------------
|
||||
@@ -185,7 +185,7 @@ EOF`
|
||||
rm -rf $yamlnew
|
||||
$0 webget $yamlnew $Https
|
||||
if [ "$?" = "1" ];then
|
||||
if [ -z "$markhttp" ];then
|
||||
if [ -z "$url_type" ];then
|
||||
echo -----------------------------------------------
|
||||
logger "配置文件获取失败!" 31
|
||||
echo -e "\033[31m请尝试使用【在线生成配置文件】功能!\033[0m"
|
||||
@@ -255,12 +255,14 @@ EOF`
|
||||
echo -----------------------------------------------
|
||||
fi
|
||||
#检测并去除无效节点组
|
||||
[ -n "$url_type" ] && type xargs >/dev/null 2>&1 && {
|
||||
cat $yamlnew | grep -A 8 "\-\ name:" | xargs | sed 's/- name: /\n/g' | sed 's/ type: .*proxies: /#/g' | sed 's/ rules:.*//g' | sed 's/- //g' | grep -E '#DIRECT $' | awk -F '#' '{print $1}' > /tmp/clash_proxies_$USER
|
||||
while read line ;do
|
||||
sed -i "/- $line/d" $yamlnew
|
||||
sed -i "/- name: $line/,/- DIRECT/d" $yamlnew
|
||||
done < /tmp/clash_proxies_$USER
|
||||
rm -rf /tmp/clash_proxies_$USER
|
||||
}
|
||||
#使用核心内置test功能检测
|
||||
if [ -x $bindir/clash ];then
|
||||
$bindir/clash -t -d $bindir -f $yamlnew >/dev/null
|
||||
@@ -292,8 +294,8 @@ modify_yaml(){
|
||||
external="external-controller: 0.0.0.0:$db_port"
|
||||
[ -d $clashdir/ui ] && db_ui=ui
|
||||
if [ "$redir_mod" = "混合模式" -o "$redir_mod" = "Tun模式" ];then
|
||||
[ "$clashcore" = "clash.meta" ] && stack=gvisor || stack=system
|
||||
tun="tun: {enable: true, stack: $stack}"
|
||||
#[ "$clashcore" = "clash.meta" ] && stack=gvisor || stack=system
|
||||
tun="tun: {enable: true, stack: system}"
|
||||
else
|
||||
tun='tun: {enable: false}'
|
||||
fi
|
||||
@@ -446,6 +448,11 @@ start_redir(){
|
||||
iptables -t nat -I PREROUTING -p tcp -d 8.8.4.4 -j clash
|
||||
#Docker特殊处理
|
||||
[ "$local_proxy" = "已开启" ] && iptables -t nat -I PREROUTING -s 172.16.0.0/12 -j clash
|
||||
#禁用QUIC
|
||||
if [ "$quic_rj" = 已启用 ] && [ "$redir_mod" = "混合模式" -o "$redir_mod" = "Tun模式" -o "$tproxy_mod" = "已开启" ];then
|
||||
[ "$dns_mod" = "redir_host" -a "$cn_ip_route" = "已开启" ] && set_cn_ip='-m set ! --match-set cn_ip dst'
|
||||
iptables -I INPUT -p udp --dport 443 -m comment --comment "ShellClash QUIC REJECT" $set_cn_ip -j REJECT >/dev/null 2>&1
|
||||
fi
|
||||
#设置ipv6转发
|
||||
ip6_nat=$(ip6tables -t nat -L 2>&1 | grep -o 'Chain')
|
||||
if [ -n "$ip6_nat" -a "$ipv6_support" = "已开启" ];then
|
||||
@@ -613,6 +620,8 @@ stop_iptables(){
|
||||
iptables -t mangle -D PREROUTING -p udp -j clash 2> /dev/null
|
||||
iptables -t mangle -F clash 2> /dev/null
|
||||
iptables -t mangle -X clash 2> /dev/null
|
||||
iptables -D INPUT -p udp --dport 443 -m comment --comment "ShellClash QUIC REJECT" -j REJECT >/dev/null 2>&1
|
||||
iptables -D INPUT -p udp --dport 443 -m comment --comment "ShellClash QUIC REJECT" -m set ! --match-set cn_ip dst -j REJECT >/dev/null 2>&1
|
||||
#重置ipv6规则
|
||||
ip6tables -D INPUT -p tcp --dport $mix_port -j ACCEPT 2> /dev/null
|
||||
ip6tables -D INPUT -p tcp --dport $db_port -j ACCEPT 2> /dev/null
|
||||
@@ -674,11 +683,12 @@ web_restore(){
|
||||
done
|
||||
#发送数据
|
||||
num=$(cat $clashdir/web_save | wc -l)
|
||||
for i in `seq $num`;
|
||||
do
|
||||
i=1
|
||||
while [ "$i" -le "$num" ];do
|
||||
group_name=$(awk -F ',' 'NR=="'${i}'" {print $1}' $clashdir/web_save | sed 's/ /%20/g')
|
||||
now_name=$(awk -F ',' 'NR=="'${i}'" {print $2}' $clashdir/web_save)
|
||||
put_save http://localhost:${db_port}/proxies/${group_name} "{\"name\":\"${now_name}\"}"
|
||||
i=$((i+1))
|
||||
done
|
||||
}
|
||||
#启动相关
|
||||
@@ -715,7 +725,7 @@ bfstart(){
|
||||
else
|
||||
logger "未找到clash核心,正在下载!" 33
|
||||
if [ -z "$clashcore" ];then
|
||||
[ "$redir_mod" = "混合模式" -o "$redir_mod" = "Tun模式" ] && clashcore=clash.meta || clashcore=clash
|
||||
[ "$redir_mod" = "混合模式" -o "$redir_mod" = "Tun模式" ] && clashcore=clashpre || clashcore=clash
|
||||
fi
|
||||
[ -z "$cpucore" ] && source $clashdir/getdate.sh && getcpucore
|
||||
[ -z "$cpucore" ] && logger 找不到设备的CPU信息,请手动指定处理器架构类型! 31 && setcpucore
|
||||
|
||||
Reference in New Issue
Block a user