diff --git a/自动部署并配置 cloudflared 隧道服务 b/自动部署并配置 cloudflared 隧道服务 index 6e2984c..32d5df0 100644 --- a/自动部署并配置 cloudflared 隧道服务 +++ b/自动部署并配置 cloudflared 隧道服务 @@ -1,7 +1,7 @@ #!/bin/bash # cloudflared Docker 容器化一键部署脚本 -# 功能:自动部署并配置 cloudflared 隧道服务 +# 功能:自动部署并配置 cloudflared 隧道服务,支持选择密钥和服务器位置 set -e # 遇到任何错误立即退出脚本 @@ -12,8 +12,15 @@ YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # 无颜色 -# Cloudflare Tunnel 令牌(您提供的) -CF_TUNNEL_TOKEN="eyJhIjoiYmI2OTg1ZGU4N2ZiMDEyYjNjNjI2YWExM2VkYTY3OTciLCJ0IjoiNGYyMjNhM2UtNWNjYy00ZmMwLWI1N2MtNjQzZGY5ZmI1ZWZmIiwicyI6Ik1qTmxOR1U0WmpndE5ERXlPQzAwTjJKaExUazNaVFl0WVRWaU5tUmtObVkxTkdSaSJ9" +# 默认 Cloudflare Tunnel 令牌 +DEFAULT_CF_TUNNEL_TOKEN="eyJhIjoiYmI2OTg1ZGU4N2ZiMDEyYjNjNjI2YWExM2VkYTY3OTciLCJ0IjoiNGYyMjNhM2UtNWNjYy00ZmMwLWI1N2MtNjQzZGY5ZmI1ZWZmIiwicyI6Ik1qTmxOR1U0WmpndE5ERXlPQzAwTjJKaExUazNaVFl0WVRWaU5tUmtObVkxTkdSaSJ9" + +# 用户提供的 Cloudflare Tunnel 令牌 +USER_CF_TUNNEL_TOKEN="eyJhIjoiYmI2OTg1ZGU4N2ZiMDEyYjNjNjI2YWExM2VkYTY3OTciLCJ0IjoiOWRhNTU2YmMtMWZhNC00Njg2LTg1YTQtZTczOTQ1YmEwMGNmIiwicyI6Ik5XWTNPV05tTkRjdFltVTBOQzAwTkRkaExXRm1ZVEF0T1daaE9XRTVaVFUyTWpRMSJ9" + +# 当前使用的令牌 +CF_TUNNEL_TOKEN="" +SERVER_LOCATION="" # 输出带颜色的信息函数 log_info() { @@ -123,6 +130,8 @@ deploy_cloudflared() { # 运行 cloudflared 容器 log_info "启动 cloudflared 隧道服务..." + log_info "服务器位置: ${SERVER_LOCATION}" + docker run -d \ --name ${container_name} \ --restart=unless-stopped \ @@ -156,6 +165,7 @@ verify_deployment() { echo "" log_info "容器名称: ${container_name}" log_info "运行状态: ${status}" + log_info "服务器位置: ${SERVER_LOCATION}" log_info "数据目录: /data/cloudflared/" log_info "配置目录: /data/cloudflared/config" log_info "日志目录: /data/cloudflared/logs" @@ -195,12 +205,68 @@ show_usage() { echo "" } +# 选择使用哪个令牌 +select_token() { + echo "" + log_info "请选择要使用的 Cloudflare Tunnel Token:" + echo "1. 使用默认密钥" + echo "2. 使用用户提供的密钥" + echo "" + + while true; do + read -p "请输入选择 (1/2): " choice + case $choice in + 1) + CF_TUNNEL_TOKEN=$DEFAULT_CF_TUNNEL_TOKEN + log_info "已选择使用默认密钥" + break + ;; + 2) + CF_TUNNEL_TOKEN=$USER_CF_TUNNEL_TOKEN + log_info "已选择使用用户提供的密钥" + break + ;; + *) + log_error "无效的选择,请输入 1 或 2" + ;; + esac + done +} + +# 选择服务器位置 +select_server_location() { + echo "" + log_info "请选择服务器位置:" + echo "1. 国内服务器" + echo "2. 香港服务器" + echo "" + + while true; do + read -p "请输入选择 (1/2): " choice + case $choice in + 1) + SERVER_LOCATION="国内服务器" + break + ;; + 2) + SERVER_LOCATION="香港服务器" + break + ;; + *) + log_error "无效的选择,请输入 1 或 2" + ;; + esac + done +} + # 主执行函数 main() { echo "" log_info "🚀 开始部署 Cloudflare Tunnel Docker 容器..." log_info "==========================================" + select_token + select_server_location validate_token check_docker prepare_directories @@ -210,6 +276,7 @@ main() { log_info "==========================================" log_info "✅ Cloudflare Tunnel 部署完成!" log_info "隧道已使用提供的 Token 进行认证" + log_info "服务器位置: ${SERVER_LOCATION}" show_usage }