#!/bin/bash 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 # 检查配置文件是否存在 if [ ! -f "$config_dir/config.json" ]; then red "error: 配置文件未生成, 查看配置失败" echo '请选择"生成配置 / 重置配置"' exit 1 fi # 检查是否已启动过容器 local password=$(jq -r '.auth.password' "$config_dir/config.json") if [ "$password" = "你的密码" ]; then red "error: 容器未启动过, 查看配置失败" echo '请选择"启动容器"' exit 1 fi # 检查是否使用ACME证书 local allowInsecure=1 # 默认跳过证书验证 if jq -e '.acme' "$config_dir/config.json" > /dev/null 2>&1; then allowInsecure=0 # 不跳过证书验证 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&obfs-password=${obfs_password}#${ipv4}&allowInsecure=${allowInsecure}" # 输出分享链接 echo -e "\033[32m" echo "IPV4: $ipv4" echo "port: $port" echo "password: $password" echo "sni: $sni" echo "混淆密码: $obfs_password" echo "" echo "分享链接: $share_link" echo -e "\033[0m" } print_share_link # 输出分享链接