115 lines
3.2 KiB
Bash
115 lines
3.2 KiB
Bash
#!/bin/bash
|
|
|
|
create_config_with_tls_cert() {
|
|
local script_dir=$(cd "$(dirname "$0")"; pwd)
|
|
|
|
cp "$script_dir/../config_template/tls_cert_config.json" "$script_dir/../config.json"
|
|
|
|
# 设置端口
|
|
bash "$script_dir/update_port.sh"
|
|
|
|
# 设置密码
|
|
bash "$script_dir/update_password.sh"
|
|
|
|
# 设置混淆密码
|
|
bash "$script_dir/update_obfs_password.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.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/config_template/self_cert_config.json" "$script_dir/../config.json"
|
|
|
|
# 设置端口
|
|
bash "$script_dir/update_port.sh"
|
|
|
|
# 设置密码
|
|
bash "$script_dir/update_password.sh"
|
|
|
|
# 设置混淆密码
|
|
bash "$script_dir/update_obfs_password.sh"
|
|
|
|
# 生成自签名证书和设置域名
|
|
bash "$script_dir/gen_self_tls.sh" "bing.com"
|
|
|
|
echo "初始化设置完成"
|
|
}
|
|
|
|
create_config(){
|
|
local script_dir=$(cd "$(dirname "$0")"; pwd)
|
|
|
|
# 如果配置文件不存在, 创建空白配置文件
|
|
if [ ! -e "$script_dir/../config.json" ]; then
|
|
touch "$script_dir/../config.json"
|
|
fi
|
|
|
|
local config_password=$(jq -r '.auth.password' "$script_dir/../config.json")
|
|
if [ -s "$script_dir/../config.json" ] && [ "$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
|
|
|
|
|