添加强制断开链接

This commit is contained in:
qaq
2025-06-30 15:54:01 +08:00
parent 2321a7cb8b
commit 2401a2c2cb
2 changed files with 73 additions and 75 deletions
+72 -2
View File
@@ -17,6 +17,74 @@ show_menu() {
echo "==============================================="
}
# 检查并安装 tcpkill
check_and_install_tcpkill() {
# 检查 tcpkill 是否已安装
if command -v tcpkill &> /dev/null; then
return 0
fi
# 检测操作系统类型
OS_TYPE=$(uname -s)
# 检查是否需要 sudo
if [[ $EUID -ne 0 ]]; then
SUDO_CMD="sudo"
else
SUDO_CMD=""
fi
if [[ "$OS_TYPE" == "Darwin" ]]; then
if command -v brew &> /dev/null; then
brew install dsniff &> /dev/null
fi
return 0
fi
# 检测 Linux 发行版并安装对应的包
if [ -f /etc/os-release ]; then
. /etc/os-release
DISTRO=$ID
elif [ -f /etc/redhat-release ]; then
DISTRO="rhel"
elif [ -f /etc/debian_version ]; then
DISTRO="debian"
else
return 0
fi
case $DISTRO in
ubuntu|debian)
$SUDO_CMD apt update &> /dev/null
$SUDO_CMD apt install -y dsniff &> /dev/null
;;
centos|rhel|fedora)
if command -v dnf &> /dev/null; then
$SUDO_CMD dnf install -y dsniff &> /dev/null
elif command -v yum &> /dev/null; then
$SUDO_CMD yum install -y dsniff &> /dev/null
fi
;;
alpine)
$SUDO_CMD apk add --no-cache dsniff &> /dev/null
;;
arch|manjaro)
$SUDO_CMD pacman -S --noconfirm dsniff &> /dev/null
;;
opensuse*|sles)
$SUDO_CMD zypper install -y dsniff &> /dev/null
;;
gentoo)
$SUDO_CMD emerge --ask=n net-analyzer/dsniff &> /dev/null
;;
void)
$SUDO_CMD xbps-install -Sy dsniff &> /dev/null
;;
esac
return 0
}
# 获取用户输入的配置参数
get_config_params() {
if [[ -z "$SERVER_ADDR" || -z "$SECRET" ]]; then
@@ -50,7 +118,8 @@ done
install_gost() {
echo "🚀 开始安装 GOST..."
get_config_params
# 检查并安装 tcpkill
check_and_install_tcpkill
mkdir -p "$INSTALL_DIR"
# 停止并禁用已有服务
@@ -145,7 +214,8 @@ update_gost() {
echo "❌ GOST 未安装,请先选择安装。"
return 1
fi
# 检查并安装 tcpkill
check_and_install_tcpkill
# 先下载新版本
echo "⬇️ 下载最新版本..."
curl -L "$DOWNLOAD_URL" -o "$INSTALL_DIR/gost.new"
+1 -73
View File
@@ -54,73 +54,7 @@ check_ipv6_support() {
fi
}
# 检查并安装 tcpkill
check_and_install_tcpkill() {
# 检查 tcpkill 是否已安装
if command -v tcpkill &> /dev/null; then
return 0
fi
# 检测操作系统类型
OS_TYPE=$(uname -s)
# 检查是否需要 sudo
if [[ $EUID -ne 0 ]]; then
SUDO_CMD="sudo"
else
SUDO_CMD=""
fi
if [[ "$OS_TYPE" == "Darwin" ]]; then
if command -v brew &> /dev/null; then
brew install dsniff &> /dev/null
fi
return 0
fi
# 检测 Linux 发行版并安装对应的包
if [ -f /etc/os-release ]; then
. /etc/os-release
DISTRO=$ID
elif [ -f /etc/redhat-release ]; then
DISTRO="rhel"
elif [ -f /etc/debian_version ]; then
DISTRO="debian"
else
return 0
fi
case $DISTRO in
ubuntu|debian)
$SUDO_CMD apt update &> /dev/null
$SUDO_CMD apt install -y dsniff &> /dev/null
;;
centos|rhel|fedora)
if command -v dnf &> /dev/null; then
$SUDO_CMD dnf install -y dsniff &> /dev/null
elif command -v yum &> /dev/null; then
$SUDO_CMD yum install -y dsniff &> /dev/null
fi
;;
alpine)
$SUDO_CMD apk add --no-cache dsniff &> /dev/null
;;
arch|manjaro)
$SUDO_CMD pacman -S --noconfirm dsniff &> /dev/null
;;
opensuse*|sles)
$SUDO_CMD zypper install -y dsniff &> /dev/null
;;
gentoo)
$SUDO_CMD emerge --ask=n net-analyzer/dsniff &> /dev/null
;;
void)
$SUDO_CMD xbps-install -Sy dsniff &> /dev/null
;;
esac
return 0
}
# 配置 Docker 启用 IPv6
configure_docker_ipv6() {
@@ -257,9 +191,6 @@ install_panel() {
configure_docker_ipv6
fi
# 检查并安装 tcpkill
check_and_install_tcpkill
cat > .env <<EOF
DB_NAME=$DB_NAME
DB_USER=$DB_USER
@@ -303,9 +234,6 @@ update_panel() {
configure_docker_ipv6
fi
# 检查并安装 tcpkill
check_and_install_tcpkill
echo "🛑 停止当前服务..."
$DOCKER_CMD down