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 \
|
||||
tzdata \
|
||||
nftables \
|
||||
iproute2 \
|
||||
dcron
|
||||
iproute2
|
||||
|
||||
RUN ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime && \
|
||||
echo "${TZ}" > /etc/timezone
|
||||
|
||||
@@ -57,6 +57,7 @@ docker run -d \
|
||||
--cap-add NET_ADMIN \
|
||||
--cap-add NET_RAW \
|
||||
--cap-add SYS_ADMIN \
|
||||
--sysctl net.ipv4.ip_forward=1 \
|
||||
--device /dev/net/tun:/dev/net/tun \
|
||||
--restart unless-stopped \
|
||||
juewuy/shellcrash:latest
|
||||
|
||||
@@ -14,7 +14,8 @@ services:
|
||||
devices:
|
||||
- "/dev/net/tun:/dev/net/tun"
|
||||
sysctls:
|
||||
net.ipv4.ip_forward: 1
|
||||
- net.ipv4.ip_forward: 1
|
||||
# - net.ipv6.conf.all.forwarding=1
|
||||
volumes:
|
||||
- shellcrash_configs:/etc/ShellCrash/configs:rw
|
||||
restart: unless-stopped
|
||||
|
||||
@@ -16,7 +16,7 @@ routing_mark=$((fwmark + 2))
|
||||
|
||||
[ -z "$dns_nameserver" ] && {
|
||||
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_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" #设置快捷命令环境变量
|
||||
sed -i '/export CRASHDIR=*/'d "$1"
|
||||
echo "export CRASHDIR=\"$CRASHDIR\"" >>"$1" #设置路径环境变量
|
||||
. "$1" >/dev/null 2>&1 || true
|
||||
}
|
||||
@@ -69,23 +69,25 @@ set_ddns() {
|
||||
set_ddns_service() {
|
||||
while true; do
|
||||
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" ] || {
|
||||
msg_alert "\033[33m未找到DDNS列表文件,尝试在线获取……\033[0m"
|
||||
ddns service update >/dev/null || msg_alert "\033[31m下载失败,请重试!\033[0m"
|
||||
}
|
||||
comp_box "\033[32m请选择服务提供商:\033[0m"
|
||||
|
||||
# cat "$services_dir" | grep -v '^#' | awk '{print NR") " $1}'
|
||||
awk '!/^#/ {print NR") " $1}' "$services_dir" |
|
||||
while IFS= read -r line; do
|
||||
content_line "$line"
|
||||
done
|
||||
list=$(awk '/^#/ || !NF {next} {print $1}' "$services_dir")
|
||||
list_box "$list"
|
||||
|
||||
nr=$(cat "$services_dir" | grep -v '^#' | wc -l)
|
||||
nr=$(echo "$list" | wc -l)
|
||||
common_back
|
||||
read -r -p "请输入对应数字> " num
|
||||
if [ -z "$num" ] || [ "$num" = 0 ]; then
|
||||
i=
|
||||
break
|
||||
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')
|
||||
set_ddns
|
||||
break
|
||||
|
||||
@@ -42,6 +42,8 @@ get_core_config() { #下载内核配置文件
|
||||
fi
|
||||
Https="${Server}/sub?target=${target}&${Server_ua}=${user_agent}&insert=true&new_name=true&scv=true&udp=true&${urlencodeUrl}"
|
||||
url_type=true
|
||||
else
|
||||
Https=$(echo $Https | sed 's/\\&/\&/g') #还原转义
|
||||
fi
|
||||
#输出
|
||||
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"
|
||||
|
||||
[ -f "$CRASHDIR"/.start_error ] && [ ! -f /tmp/ShellCrash/crash_start_time ] && exit 1 #当启动失败后禁止开机自启动
|
||||
|
||||
if [ -f "$PIDFILE" ]; then
|
||||
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
|
||||
fi
|
||||
fi
|
||||
#如果没有进程则拉起
|
||||
if [ "$1" = shellcrash ];then
|
||||
"$CRASHDIR"/start.sh start
|
||||
else
|
||||
. "$CRASHDIR"/starts/start_legacy.sh
|
||||
start_legacy "$CRASHDIR/menus/bot_tg.sh" "$1"
|
||||
rm -f "$PIDFILE"
|
||||
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