#!/bin/bash # 颜色定义 GREEN='\033[0;32m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' echo -e "${GREEN}==== Cloudflare Tunnel Docker 交互安装脚本 ====${NC}" # 1. 交互式获取 Token read -p "请输入你的 Cloudflare Tunnel Token: " USER_TOKEN # 检查输入是否为空 if [ -z "$USER_TOKEN" ]; then echo -e "${RED}[错误] Token 不能为空!请重新运行脚本并输入有效密钥。${NC}" exit 1 fi # 2. 检查并清理同名容器 if [ "$(docker ps -aq -f name=cf-tunnel)" ]; then echo -e "${YELLOW}[提示] 发现已存在的 cf-tunnel 容器,正在更新...${NC}" docker rm -f cf-tunnel >/dev/null 2>&1 fi # 3. 运行 Docker 容器 echo -e "${GREEN}[执行] 正在启动 Cloudflare Tunnel...${NC}" docker run -d \ --name cf-tunnel \ --restart always \ cloudflare/cloudflared:latest \ tunnel --no-autoupdate run --token "$USER_TOKEN" # 4. 验证结果 if [ $? -eq 0 ]; then echo -e "------------------------------------------------" echo -e "${GREEN}成功:Cloudflare Tunnel 已在后台启动!${NC}" echo -e "容器名称: cf-tunnel" echo -e "查看日志命令: docker logs -f cf-tunnel" echo -e "------------------------------------------------" else echo -e "${RED}[错误] 容器启动失败,请检查 Docker 是否正常运行。${NC}" fi