~为华硕设备添加基于下载大师的自启选项

~增加对mix、redir、tproxy端口为目标流量的拦截机制以防止回环
~增加对华硕设备切换使用meta内核的警告信息
This commit is contained in:
juewuy 2024-09-22 16:26:59 +08:00
parent e203938ca6
commit 047297ba2a
4 changed files with 15 additions and 9 deletions

View File

@ -132,8 +132,8 @@ if [ -n "$systype" ];then
[ "$systype" = "asusrouter" ] && { [ "$systype" = "asusrouter" ] && {
$echo "\033[33m检测到当前设备为华硕固件请选择安装方式\033[0m" $echo "\033[33m检测到当前设备为华硕固件请选择安装方式\033[0m"
$echo " 1 基于USB设备安装(限23年9月之前固件须插入\033[31m任意\033[0mUSB设备)" $echo " 1 基于USB设备安装(限23年9月之前固件须插入\033[31m任意\033[0mUSB设备)"
$echo " 2 基于自启脚本安装(仅支持梅林及部分官改固件)" $echo " 2 基于自启脚本安装(仅支持梅林及部分非koolshare官改固件)"
$echo " 3 基于下载大师安装(支持最新固件限ARM设备须插入U盘或移动硬盘)" $echo " 3 基于U盘+下载大师安装(支持所有固件限ARM设备须插入U盘或移动硬盘)"
$echo " 0 退出安装" $echo " 0 退出安装"
echo ----------------------------------------------- echo -----------------------------------------------
read -p "请输入相应数字 > " num read -p "请输入相应数字 > " num
@ -149,7 +149,7 @@ if [ -n "$systype" ];then
dir=/jffs dir=/jffs
;; ;;
3) 3)
echo -e "请先在路由器网页后台安装下载大师,之后选择外置存储所在目录!" echo -e "请先在路由器网页后台安装下载大师并启用,之后选择外置存储所在目录!"
sleep 2 sleep 2
set_asus_dir set_asus_dir
;; ;;

View File

@ -66,8 +66,8 @@ if [ -n "$systype" ];then
[ "$systype" = "asusrouter" ] && { [ "$systype" = "asusrouter" ] && {
echo -e "\033[33m检测到当前设备为华硕固件请选择安装方式\033[0m" echo -e "\033[33m检测到当前设备为华硕固件请选择安装方式\033[0m"
echo -e " 1 基于USB设备安装(限23年9月之前固件须插入\033[31m任意\033[0mUSB设备)" echo -e " 1 基于USB设备安装(限23年9月之前固件须插入\033[31m任意\033[0mUSB设备)"
echo -e " 2 基于自启脚本安装(仅支持梅林及部分官改固件)" echo -e " 2 基于自启脚本安装(仅支持梅林及部分非koolshare官改固件)"
echo -e " 3 基于下载大师安装(支持最新固件限ARM设备须插入U盘或移动硬盘)" echo -e " 3 基于U盘+下载大师安装(支持所有固件限ARM设备须插入U盘或移动硬盘)"
echo -e " 0 退出安装" echo -e " 0 退出安装"
echo ----------------------------------------------- echo -----------------------------------------------
read -p "请输入相应数字 > " num read -p "请输入相应数字 > " num
@ -83,7 +83,7 @@ if [ -n "$systype" ];then
dir=/jffs dir=/jffs
;; ;;
3) 3)
echo -e "请先在路由器网页后台安装下载大师,之后选择外置存储所在目录!" echo -e "请先在路由器网页后台安装下载大师并启用,之后选择外置存储所在目录!"
sleep 2 sleep 2
set_asus_dir set_asus_dir
;; ;;
@ -226,7 +226,7 @@ setconfig COMMAND "$COMMAND" ${CRASHDIR}/configs/command.env
#设置防火墙执行模式 #设置防火墙执行模式
grep -q 'firewall_mod' "$CRASHDIR/configs/ShellClash.cfg" 2>/dev/null || { grep -q 'firewall_mod' "$CRASHDIR/configs/ShellClash.cfg" 2>/dev/null || {
iptables -j REDIRECT -h >/dev/null 2>&1 && firewall_mod=iptables iptables -j REDIRECT -h >/dev/null 2>&1 && firewall_mod=iptables
nft add table inet test4532 2>/dev/null && firewall_mod=nftables && nft delete table inet test4532 nft add table inet shellcrash 2>/dev/null && firewall_mod=nftables
setconfig firewall_mod $firewall_mod setconfig firewall_mod $firewall_mod
} }
#设置更新地址 #设置更新地址
@ -298,7 +298,7 @@ fi
nvram commit nvram commit
} }
#华硕下载大师启动额外设置 #华硕下载大师启动额外设置
[ -f "$dir/asusware.arm/etc/init.d/S50downloadmaster" ] && \ [ -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" sed -i "/^PATH=/a\\$CRASHDIR/start.sh init #ShellCrash初始化脚本" "$dir/asusware.arm/etc/init.d/S50downloadmaster"
#删除临时文件 #删除临时文件
rm -rf /tmp/*rash*gz rm -rf /tmp/*rash*gz

View File

@ -916,6 +916,7 @@ start_ipt_route() { #iptables-route通用工具
$1 $w -t $2 -A $4 -m owner --gid-owner $gid -j RETURN $1 $w -t $2 -A $4 -m owner --gid-owner $gid -j RETURN
done done
[ "$firewall_area" = 5 ] && $1 $w -t $2 -A $4 -s $bypass_host -j RETURN [ "$firewall_area" = 5 ] && $1 $w -t $2 -A $4 -s $bypass_host -j RETURN
[ -z "$ports" ] && $1 $w -t $2 -A $4 -m multiport --dports "$mix_port,$redir_port,$tproxy_port" -j RETURN
#跳过目标保留地址及目标本机网段 #跳过目标保留地址及目标本机网段
for ip in $HOST_IP $RESERVED_IP; do for ip in $HOST_IP $RESERVED_IP; do
$1 $w -t $2 -A $4 -d $ip -j RETURN $1 $w -t $2 -A $4 -d $ip -j RETURN
@ -1180,6 +1181,7 @@ start_nft_route() { #nftables-route通用工具
#防回环 #防回环
nft add rule inet shellcrash $1 meta mark $routing_mark return nft add rule inet shellcrash $1 meta mark $routing_mark return
nft add rule inet shellcrash $1 meta skgid 7890 return nft add rule inet shellcrash $1 meta skgid 7890 return
[ -z "$ports" ] && nft add rule inet shellcrash $1 tcp dport {"$mix_port, $redir_port, $tproxy_port"} return
#nft add rule inet shellcrash $1 ip saddr 198.18.0.0/16 return #nft add rule inet shellcrash $1 ip saddr 198.18.0.0/16 return
[ "$firewall_area" = 5 ] && nft add rule inet shellcrash $1 ip saddr $bypass_host return [ "$firewall_area" = 5 ] && nft add rule inet shellcrash $1 ip saddr $bypass_host return
nft add rule inet shellcrash $1 ip daddr {$RESERVED_IP} return #过滤保留地址 nft add rule inet shellcrash $1 ip daddr {$RESERVED_IP} return #过滤保留地址

View File

@ -1480,7 +1480,7 @@ setcore(){ #内核选择菜单
echo -e " >>\033[32m$singbox_v \033[33m不支持providers\033[0m" echo -e " >>\033[32m$singbox_v \033[33m不支持providers\033[0m"
echo -e " 说明文档: \033[36;4mhttps://sing-box.sagernet.org\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 "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 " 说明文档: \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 "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[32m$singboxp_v \033[33mPuerNya分支版本\033[0m"
@ -1506,6 +1506,10 @@ setcore(){ #内核选择菜单
getcore getcore
;; ;;
3) 3)
[ -d "/jffs" ] && {
echo -e "\033[31mMeta内核使用的GeoSite.dat数据库在华硕设备存在被系统误删的问题可能无法使用!\033[0m"
sleep 3
}
crashcore=meta crashcore=meta
custcorelink='' custcorelink=''
getcore getcore