From 5ac3ce9ae920a3b93fe58a55655a931daa03c218 Mon Sep 17 00:00:00 2001 From: Olia Lisa Date: Thu, 9 Oct 2025 15:13:03 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E4=BB=A3=E7=A0=81=E4=B8=BA?= =?UTF-8?q?=E5=8D=95=E4=B8=AA=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/init.sh | 16 +++++---- bin/print_share_link.sh | 75 ++++++++++++++++++++++------------------- bin/update_port.sh | 25 ++++++++------ 3 files changed, 65 insertions(+), 51 deletions(-) diff --git a/bin/init.sh b/bin/init.sh index f510f8c..b9d3836 100644 --- a/bin/init.sh +++ b/bin/init.sh @@ -1,9 +1,13 @@ #!/bin/bash -script_dir=$(cd "$(dirname "$0")"; pwd) # 脚本绝对路径 +init() { + local script_dir=$(cd "$(dirname "$0")"; pwd) + + # 更新密码 + bash "$script_dir/update_password.sh" + + # 生成自签名证书和设置域名 + bash "$script_dir/set_domain.sh" "bing.com" +} -# 更新密码 -bash "$script_dir/update_password.sh" - -# 生成自签名证书和设置域名 -bash "$script_dir/set_domain.sh" "bing.com" +init \ No newline at end of file diff --git a/bin/print_share_link.sh b/bin/print_share_link.sh index ab372c6..9d8ef10 100644 --- a/bin/print_share_link.sh +++ b/bin/print_share_link.sh @@ -1,38 +1,43 @@ #!/bin/bash -script_dir=$(cd "$(dirname "$0")"; pwd) # 脚本所在目录 -config_dir=$(readlink -f "$script_dir/../") # 配置文件所在目录 -source "${script_dir}/utils/base.sh" +print_share_link() { + local script_dir=$(cd "$(dirname "$0")"; pwd) + local config_dir=$(readlink -f "$script_dir/../") + source "${script_dir}/utils/base.sh" + + # 检查jq是否安装 + check_jq + + # 检查是否已启动过容器 + local password=$(jq -r '.auth.password' "$config_dir/config.json") + if [ "$password" = "你的密码" ]; then + red "error: 容器未启动过, 查看配置失败" + echo '请选择"启动容器"' + exit 1 + fi + + # 读取配置文件内容 + local config=$(cat "$config_dir/config.json") + + # 提取所需信息 + password=$(echo "$config" | jq -r '.auth.password') + local sni=$(echo "$config" | jq -r '.masquerade.proxy.url' | awk -F'/' '{print $3}') + local ipv4=$(curl -4 -sSL --connect-timeout 3 --retry 2 ip.sb || echo "null") + local port=$(echo "$config" | jq -r '.listen' | cut -d':' -f2) + local obfs_password=$(echo "$config" | jq -r '.obfs.salamander.password') + + # 构建分享链接 + local share_link="hysteria2://${password}@${ipv4}:${port}/?sni=${sni}&insecure=1#${ipv4}&obfs-password=${obfs_password}" + + # 输出分享链接 + echo -e "\033[32m" + echo "IPV4: $ipv4" + echo "port: $port" + echo "password: $password" + echo "sni: $sni" + echo "混淆密码: $obfs_password" + echo "分享链接: $share_link" + echo -e "\033[0m" +} -# 检查jq是否安装 -check_jq - -# 检查是否已启动过容器 -password=$(jq -r '.auth.password' $config_dir/config.json) -if [ "$password" = "你的密码" ]; then - red "error: 容器未启动过, 查看配置失败" - echo '请选择"启动容器"' - exit 1 -fi - -# 读取配置文件内容 -config=$(cat "${script_dir}/../config.json") -# 提取所需信息 -password=$(echo "$config" | jq -r '.auth.password') -sni=$(echo "$config" | jq -r '.masquerade.proxy.url' | awk -F'/' '{print $3}') -ipv4=$(curl -4 -sSL --connect-timeout 3 --retry 2 ip.sb || echo "null") # 本机IPV4地址 -port=$(echo "$config" | jq -r '.listen' | cut -d':' -f2) # 端口号 -obfs_password=$(echo "$config" | jq -r '.obfs.salamander.password') # 混淆密码 - -# 构建分享链接 -share_link="hysteria2://${password}@${ipv4}:${port}/?sni=${sni}&insecure=1#${ipv4}&obfs-password=${obfs_password}" - -# 输出分享链接 -echo -e "\033[32m" -echo "IPV4: $ipv4" -echo "port: $port" -echo "password: $password" -echo "sni: $sni" -echo "混淆密码: $obfs_password" -echo "分享链接: $share_link" -echo -e "\033[0m" +print_share_link # 输出分享链接 \ No newline at end of file diff --git a/bin/update_port.sh b/bin/update_port.sh index 8edd27e..27dfe3e 100644 --- a/bin/update_port.sh +++ b/bin/update_port.sh @@ -1,13 +1,18 @@ #!/bin/bash -script_dir=$(cd "$(dirname "$0")"; pwd) # 脚本文件绝对路径 -config_dir=$(readlink -f "$script_dir/../") # 配置文件绝对路径 -source $script_dir/utils/jq_util.sh +# 修改端口的函数 +change_port() { + local script_dir=$(cd "$(dirname "$0")"; pwd) + local config_dir=$(readlink -f "$script_dir/../") + source "$script_dir/utils/jq_util.sh" + + local old_port=$(jq -r '.listen' "$config_dir/config.json" | awk -F : '{print $2}') + local port + read -p "请输入新的端口[当前端口: $old_port]: " port + + modify_json_file "$config_dir/config.json" ".listen" ":$port" + + echo "端口修改成功!新端口为: $port" +} -old_port=$(jq -r '.listen' "$config_dir/config.json" | awk -F : '{print $2}') -read -p "请输入新的端口[当前端口: $old_port]: " port - -# 修改端口 -modify_json_file "$config_dir/config.json" ".listen" ":$port" - -echo "端口修改成功!新端口为: $port" +change_port \ No newline at end of file