#!/bin/bash # todo create_config_with_tls_cert() { local script_dir=$(cd "$(dirname "$0")"; pwd) cp "$script_dir/../config/template/tls_cert_config.json" "$script_dir/../config/config.json" # 设置端口 bash "$script_dir/update_port.sh" # 设置密码 bash "$script_dir/update_password.sh" # 设置UUID bash "$script_dir/update_uuid.sh" # 获取邮箱 read -p "请输入你的邮箱: " user_email while [[ -z "$user_email" ]]; do echo "[错误] 邮箱不能为空" read -p "请输入你的邮箱: " user_email done # 获取域名 read -p "请输入你的域名 (例如: example.com): " user_domain while [[ -z "$user_domain" ]]; do echo "[错误] 域名不能为空" read -p "请输入你的域名: " user_domain done # 获取 Cloudflare API Token read -p "请输入你的 Cloudflare API Token: " cloudflare_token while [[ -z "$cloudflare_token" ]]; do echo "[错误] Cloudflare API Token 不能为空" read -p "请输入你的 Cloudflare API Token: " cloudflare_token done # 替换配置文件中的占位符 local config_file="$script_dir/../config/config.json" # 使用 sed 替换邮箱 sed -i "s/你的邮箱/$user_email/g" "$config_file" # 替换域名 (在 domains 数组和 masquerade url 中) sed -i "s/你的域名/$user_domain/g" "$config_file" # 替换 Cloudflare API Token sed -i "s/你的cloudflare_api_token/$cloudflare_token/g" "$config_file" echo "初始化设置完成" } create_self_tls_config() { local script_dir=$(cd "$(dirname "$0")"; pwd) cp "$script_dir/../config/template/self_cert_config.json" "$script_dir/../config/config.json" # 设置端口 bash "$script_dir/update_port.sh" # 设置密码 bash "$script_dir/update_password.sh" # 设置UUID bash "$script_dir/update_uuid.sh" # 生成自签名证书和设置域名 bash "$script_dir/gen_self_tls.sh" "bing.com" echo "初始化设置完成" } create_config(){ local script_dir=$(cd "$(dirname "$0")"; pwd) local config_file="$script_dir/../config/config.json" # 如果配置文件不存在, 创建空白配置文件 if [ ! -e "$config_file" ]; then touch "$config_file" fi local config_password=$(jq -r '.inbounds[0].users[0].password' "$config_file") if [ -s "$config_file" ] && [ "$config_password" != "你的密码" ]; then local regenerate read -p "检测到配置已存在,是否重新生成配置?(y/n): " regenerate if [ "$regenerate" != "y" ] && [ "$regenerate" != "Y" ]; then echo "取消重新生成配置." return fi fi echo "请选择配置类型:" echo "1. 自签名证书配置" echo "2. tls证书配置" local choice read -p "输入您的选择: " choice case $choice in 1) echo "重置为自签名证书配置..." create_self_tls_config ;; 2) echo "重置为tls证书配置..." create_config_with_tls_cert ;; *) echo "无效的选择, 请重新选择." ;; esac } create_config