mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-10 23:41:22 +00:00
Merge branch 'master' into dev
# Conflicts: # ShellCrash.tar.gz # bin/version # version
This commit is contained in:
@@ -57,8 +57,7 @@ RUN apk add --no-cache \
|
|||||||
ca-certificates \
|
ca-certificates \
|
||||||
tzdata \
|
tzdata \
|
||||||
nftables \
|
nftables \
|
||||||
iproute2 \
|
iproute2
|
||||||
dcron
|
|
||||||
|
|
||||||
RUN ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime && \
|
RUN ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime && \
|
||||||
echo "${TZ}" > /etc/timezone
|
echo "${TZ}" > /etc/timezone
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ docker run -d \
|
|||||||
--cap-add NET_ADMIN \
|
--cap-add NET_ADMIN \
|
||||||
--cap-add NET_RAW \
|
--cap-add NET_RAW \
|
||||||
--cap-add SYS_ADMIN \
|
--cap-add SYS_ADMIN \
|
||||||
|
--sysctl net.ipv4.ip_forward=1 \
|
||||||
--device /dev/net/tun:/dev/net/tun \
|
--device /dev/net/tun:/dev/net/tun \
|
||||||
--restart unless-stopped \
|
--restart unless-stopped \
|
||||||
juewuy/shellcrash:latest
|
juewuy/shellcrash:latest
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ services:
|
|||||||
devices:
|
devices:
|
||||||
- "/dev/net/tun:/dev/net/tun"
|
- "/dev/net/tun:/dev/net/tun"
|
||||||
sysctls:
|
sysctls:
|
||||||
net.ipv4.ip_forward: 1
|
- net.ipv4.ip_forward: 1
|
||||||
|
# - net.ipv6.conf.all.forwarding=1
|
||||||
volumes:
|
volumes:
|
||||||
- shellcrash_configs:/etc/ShellCrash/configs:rw
|
- shellcrash_configs:/etc/ShellCrash/configs:rw
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ routing_mark=$((fwmark + 2))
|
|||||||
|
|
||||||
[ -z "$dns_nameserver" ] && {
|
[ -z "$dns_nameserver" ] && {
|
||||||
dns_nameserver='223.5.5.5, 1.2.4.8'
|
dns_nameserver='223.5.5.5, 1.2.4.8'
|
||||||
nslookup localhost 127.0.0.1 >/dev/null 2>&1 && dns_nameserver='127.0.0.1'
|
netstat -ntlup 2>/dev/null | grep -q '127.0.0.1:53' && dns_nameserver='127.0.0.1'
|
||||||
}
|
}
|
||||||
[ -z "$dns_fallback" ] && dns_fallback="1.1.1.1, 8.8.8.8"
|
[ -z "$dns_fallback" ] && dns_fallback="1.1.1.1, 8.8.8.8"
|
||||||
[ -z "$dns_resolver" ] && dns_resolver="223.5.5.5, 2400:3200::1"
|
[ -z "$dns_resolver" ] && dns_resolver="223.5.5.5, 2400:3200::1"
|
||||||
|
|||||||
@@ -5,4 +5,5 @@ set_profile() {
|
|||||||
echo "alias ${my_alias}=\"$shtype $CRASHDIR/menu.sh\"" >>"$1" #设置快捷命令环境变量
|
echo "alias ${my_alias}=\"$shtype $CRASHDIR/menu.sh\"" >>"$1" #设置快捷命令环境变量
|
||||||
sed -i '/export CRASHDIR=*/'d "$1"
|
sed -i '/export CRASHDIR=*/'d "$1"
|
||||||
echo "export CRASHDIR=\"$CRASHDIR\"" >>"$1" #设置路径环境变量
|
echo "export CRASHDIR=\"$CRASHDIR\"" >>"$1" #设置路径环境变量
|
||||||
|
. "$1" >/dev/null 2>&1 || true
|
||||||
}
|
}
|
||||||
@@ -69,23 +69,25 @@ set_ddns() {
|
|||||||
set_ddns_service() {
|
set_ddns_service() {
|
||||||
while true; do
|
while true; do
|
||||||
services_dir=/etc/ddns/"$serv"
|
services_dir=/etc/ddns/"$serv"
|
||||||
|
[ -s "$services_dir" ] || services_dir=/etc/ddns/services
|
||||||
[ -s "$services_dir" ] || services_dir=/usr/share/ddns/list
|
[ -s "$services_dir" ] || services_dir=/usr/share/ddns/list
|
||||||
|
[ -s "$services_dir" ] || {
|
||||||
|
msg_alert "\033[33m未找到DDNS列表文件,尝试在线获取……\033[0m"
|
||||||
|
ddns service update >/dev/null || msg_alert "\033[31m下载失败,请重试!\033[0m"
|
||||||
|
}
|
||||||
comp_box "\033[32m请选择服务提供商:\033[0m"
|
comp_box "\033[32m请选择服务提供商:\033[0m"
|
||||||
|
|
||||||
# cat "$services_dir" | grep -v '^#' | awk '{print NR") " $1}'
|
list=$(awk '/^#/ || !NF {next} {print $1}' "$services_dir")
|
||||||
awk '!/^#/ {print NR") " $1}' "$services_dir" |
|
list_box "$list"
|
||||||
while IFS= read -r line; do
|
|
||||||
content_line "$line"
|
|
||||||
done
|
|
||||||
|
|
||||||
nr=$(cat "$services_dir" | grep -v '^#' | wc -l)
|
nr=$(echo "$list" | wc -l)
|
||||||
common_back
|
common_back
|
||||||
read -r -p "请输入对应数字> " num
|
read -r -p "请输入对应数字> " num
|
||||||
if [ -z "$num" ] || [ "$num" = 0 ]; then
|
if [ -z "$num" ] || [ "$num" = 0 ]; then
|
||||||
i=
|
i=
|
||||||
break
|
break
|
||||||
elif [ "$num" -gt 0 ] && [ "$num" -lt "$nr" ]; then
|
elif [ "$num" -gt 0 ] && [ "$num" -lt "$nr" ]; then
|
||||||
service_name=$(cat "$services_dir" | grep -v '^#' | awk '{print $1}' | sed -n "$num"p | sed 's/"//g')
|
service_name=$(echo "$list" | sed -n "$num"p | sed 's/"//g')
|
||||||
service=$(echo "$service_name" | sed 's/\./_/g')
|
service=$(echo "$service_name" | sed 's/\./_/g')
|
||||||
set_ddns
|
set_ddns
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -42,6 +42,8 @@ get_core_config() { #下载内核配置文件
|
|||||||
fi
|
fi
|
||||||
Https="${Server}/sub?target=${target}&${Server_ua}=${user_agent}&insert=true&new_name=true&scv=true&udp=true&${urlencodeUrl}"
|
Https="${Server}/sub?target=${target}&${Server_ua}=${user_agent}&insert=true&new_name=true&scv=true&udp=true&${urlencodeUrl}"
|
||||||
url_type=true
|
url_type=true
|
||||||
|
else
|
||||||
|
Https=$(echo $Https | sed 's/\\&/\&/g') #还原转义
|
||||||
fi
|
fi
|
||||||
#输出
|
#输出
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
|
|||||||
@@ -1,20 +1,28 @@
|
|||||||
|
|
||||||
[ -z "$CRASHDIR" ] && CRASHDIR=$( cd $(dirname $0);cd ..;pwd)
|
[ -z "$CRASHDIR" ] && CRASHDIR=$(cd "$(dirname "$0")"/.. && pwd)
|
||||||
PIDFILE="/tmp/ShellCrash/$1.pid"
|
PIDFILE="/tmp/ShellCrash/$1.pid"
|
||||||
|
|
||||||
[ -f "$CRASHDIR"/.start_error ] && [ ! -f /tmp/ShellCrash/crash_start_time ] && exit 1 #当启动失败后禁止开机自启动
|
[ -f "$CRASHDIR"/.start_error ] && [ ! -f /tmp/ShellCrash/crash_start_time ] && exit 1 #当启动失败后禁止开机自启动
|
||||||
|
|
||||||
if [ -f "$PIDFILE" ]; then
|
if [ -f "$PIDFILE" ]; then
|
||||||
PID="$(cat "$PIDFILE")"
|
PID="$(cat "$PIDFILE")"
|
||||||
if [ -n "$PID" ] && [ -d "/proc/$PID" ]; then
|
if [ -n "$PID" ] && [ "$PID" -eq "$PID" ] 2>/dev/null; then
|
||||||
|
if kill -0 "$PID" 2>/dev/null || [ -d "/proc/$PID" ]; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
fi
|
else
|
||||||
#如果没有进程则拉起
|
rm -f "$PIDFILE"
|
||||||
if [ "$1" = shellcrash ];then
|
fi
|
||||||
"$CRASHDIR"/start.sh start
|
|
||||||
else
|
|
||||||
. "$CRASHDIR"/starts/start_legacy.sh
|
|
||||||
start_legacy "$CRASHDIR/menus/bot_tg.sh" "$1"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#如果没有进程则拉起
|
||||||
|
LOCKDIR="/tmp/ShellCrash/start_$1.lock"
|
||||||
|
if mkdir "$LOCKDIR" 2>/dev/null; then
|
||||||
|
if [ "$1" = "shellcrash" ]; then
|
||||||
|
"$CRASHDIR"/start.sh start
|
||||||
|
else
|
||||||
|
[ -f "$CRASHDIR/starts/start_legacy.sh" ] && . "$CRASHDIR/starts/start_legacy.sh"
|
||||||
|
start_legacy "$CRASHDIR/menus/bot_tg.sh" "$1"
|
||||||
|
fi
|
||||||
|
rm -d "$LOCKDIR" 2>/dev/null
|
||||||
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user