mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-11 16:01:28 +00:00
~优化dns菜单,移除fake-ip模式,并将部分原进阶选项移动至dns主菜单
~优化tg-bot绑定流程,增加循环检测对话ID机制 ~优化tg-bot启动逻辑,现在不会随着内核服务重启而重启进而导致死循环 ~优化公网防火墙功能,增加一键清空功能,增加vmess和ss端口的额外显示 ~优化vmess和ss的界面逻辑,增加vmess一键生成时的混淆host输入 ~修复因为未选择ss加密类型而导致启动失败的bug ~修复小米/网件镜像化设备重启后服务丢失的bug ~修复因为切换vmess和ss端口导致公网防火墙启动报错的bug ~修复6-5设置定时任务报错的bug
This commit is contained in:
@@ -21,6 +21,8 @@ if [ -n "$test" -o -n "$(pidof CrashCore)" ]; then
|
||||
[ "$start_old" = "已开启" ] && rm -rf "$TMPDIR"/CrashCore #删除缓存目录内核文件
|
||||
. "$CRASHDIR"/starts/fw_start.sh #配置防火墙流量劫持
|
||||
date +%s >"$TMPDIR"/crash_start_time #标记启动时间
|
||||
#TG机器人守护进程
|
||||
[ "$bot_tg_service" = ON ] && . "$CRASHDIR"/menus/bot_tg_service.sh && bot_tg_cron
|
||||
#后台还原面板配置
|
||||
[ -s "$CRASHDIR"/configs/web_save ] && {
|
||||
. "$CRASHDIR"/libs/web_restore.sh
|
||||
@@ -50,8 +52,6 @@ if [ -n "$test" -o -n "$(pidof CrashCore)" ]; then
|
||||
line=$(grep -En "fw.* start" /etc/init.d/firewall | cut -d ":" -f 1)
|
||||
sed -i "${line}a\\. $CRASHDIR/task/affirewall" /etc/init.d/firewall
|
||||
} &
|
||||
#启动TG机器人
|
||||
[ "$bot_tg_service" = ON ] && . "$CRASHDIR"/menus/bot_tg_service.sh && bot_tg_start
|
||||
exit 0
|
||||
else
|
||||
. "$CRASHDIR"/starts/start_error.sh
|
||||
|
||||
@@ -82,7 +82,7 @@ $find_process
|
||||
routing-mark: $routing_mark
|
||||
EOF
|
||||
#读取本机hosts并生成配置文件
|
||||
if [ "$hosts_opt" != "未启用" ] && [ -z "$(grep -aE '^hosts:' "$CRASHDIR"/yamls/user.yaml 2>/dev/null)" ]; then
|
||||
if [ "$hosts_opt" != "OFF" ] && [ -z "$(grep -aE '^hosts:' "$CRASHDIR"/yamls/user.yaml 2>/dev/null)" ]; then
|
||||
#NTP劫持
|
||||
cat >"$TMPDIR"/hosts.yaml <<EOF
|
||||
use-system-hosts: true
|
||||
|
||||
@@ -133,8 +133,8 @@ start_ipt_wan() { #iptables公网防火墙
|
||||
ckcmd iptables && iptables -h | grep -q '\-w' && iptable='iptables -w' || iptable=iptables
|
||||
ckcmd ip6tables && ip6tables -h | grep -q '\-w' && ip6table='ip6tables -w' || ip6table=ip6tables
|
||||
ipt_wan_accept(){
|
||||
$iptable -I INPUT -p "$1" -m multiport --dports "$fw_wan_ports" -j ACCEPT
|
||||
ckcmd ip6tables && $ip6table -I INPUT -p "$1" -m multiport --dports "$fw_wan_ports" -j ACCEPT
|
||||
$iptable -I INPUT -p "$1" -m multiport --dports "$accept_ports" -j ACCEPT
|
||||
ckcmd ip6tables && $ip6table -I INPUT -p "$1" -m multiport --dports "$accept_ports" -j ACCEPT
|
||||
}
|
||||
ipt_wan_reject(){
|
||||
$iptable -I INPUT -p "$1" -m multiport --dports "$reject_ports" -j REJECT
|
||||
@@ -145,7 +145,9 @@ start_ipt_wan() { #iptables公网防火墙
|
||||
ipt_wan_reject tcp
|
||||
ipt_wan_reject udp
|
||||
#端口放行
|
||||
[ -n "$fw_wan_ports" ] && {
|
||||
[ -f "$CRASHDIR"/configs/gateway.cfg ] && . "$CRASHDIR"/configs/gateway.cfg
|
||||
accept_ports=$(echo "$fw_wan_ports,$vms_port,$sss_port" | sed "s/,,/,/g ;s/^,// ;s/,$//")
|
||||
[ -n "$accept_ports" ] && {
|
||||
ipt_wan_accept tcp
|
||||
ipt_wan_accept udp
|
||||
}
|
||||
|
||||
@@ -136,8 +136,10 @@ start_nft_wan() { #nftables公网防火墙
|
||||
nft add chain inet shellcrash input { type filter hook input priority -100 \; }
|
||||
nft add rule inet shellcrash input iif lo accept #本机请求全放行
|
||||
#端口放行
|
||||
[ -n "$fw_wan_ports" ] && {
|
||||
fw_wan_nfports="{ $(echo "$fw_wan_ports" | sed 's/,/, /g') }"
|
||||
[ -f "$CRASHDIR"/configs/gateway.cfg ] && . "$CRASHDIR"/configs/gateway.cfg
|
||||
accept_ports=$(echo "$fw_wan_ports,$vms_port,$sss_port" | sed "s/,,/,/g ;s/^,// ;s/,$// ;s/,/, /")
|
||||
[ -n "$accept_ports" ] && {
|
||||
fw_wan_nfports="{ $(echo "$accept_ports" | sed 's/,/, /g') }"
|
||||
nft add rule inet shellcrash input tcp dport $fw_wan_nfports accept
|
||||
nft add rule inet shellcrash input udp dport $fw_wan_nfports accept
|
||||
}
|
||||
|
||||
@@ -33,7 +33,6 @@ start_service() {
|
||||
fi
|
||||
}
|
||||
stop_service() {
|
||||
killall bot_tg.sh 2>/dev/null
|
||||
procd_close_instance
|
||||
"$CRASHDIR"/starts/fw_stop.sh
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ modify_json() {
|
||||
{ "log": { "level": "info", "timestamp": true } }
|
||||
EOF
|
||||
#生成add_hosts.json
|
||||
if [ "$hosts_opt" != "未启用" ]; then #本机hosts
|
||||
if [ "$hosts_opt" != "OFF" ]; then #本机hosts
|
||||
sys_hosts=/etc/hosts
|
||||
[ -s /data/etc/custom_hosts ] && sys_hosts=/data/etc/custom_hosts
|
||||
#NTP劫持
|
||||
|
||||
@@ -52,7 +52,7 @@ auto_clean(){
|
||||
}
|
||||
auto_start(){
|
||||
#设置init.d服务
|
||||
cp -f "$CRASHDIR"/shellcrash.procd /etc/init.d/shellcrash
|
||||
cp -f "$CRASHDIR"/starts/shellcrash.procd /etc/init.d/shellcrash
|
||||
chmod 755 /etc/init.d/shellcrash
|
||||
#初始化环境变量
|
||||
. "$CRASHDIR"/libs/set_profile.sh && set_profile '/etc/profile'
|
||||
|
||||
@@ -6,12 +6,13 @@ if [ -f "$PIDFILE" ]; then
|
||||
PID="$(cat "$PIDFILE")"
|
||||
if [ -n "$PID" ] && kill -0 "$PID" 2>/dev/null; then
|
||||
return 0
|
||||
else
|
||||
if [ "$1" = shellcrash ];then
|
||||
"$CRASHDIR"/start.sh start
|
||||
else
|
||||
. "$CRASHDIR"/starts/start_legacy.sh
|
||||
start_legacy "$CRASHDIR/menus/bot_tg.sh" "$1"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
#如果没有进程则拉起
|
||||
if [ "$1" = shellcrash ];then
|
||||
"$CRASHDIR"/start.sh start
|
||||
else
|
||||
. "$CRASHDIR"/starts/start_legacy.sh
|
||||
start_legacy "$CRASHDIR/menus/bot_tg.sh" "$1"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user