Update 自动部署并配置 cloudflared 隧道服务
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# cloudflared Docker 容器化一键部署脚本
|
# cloudflared Docker 容器化一键部署脚本
|
||||||
# 功能:自动部署并配置 cloudflared 隧道服务,支持选择密钥和服务器位置
|
# 功能:自动部署并配置 cloudflared 隧道服务
|
||||||
|
|
||||||
set -e # 遇到任何错误立即退出脚本
|
set -e # 遇到任何错误立即退出脚本
|
||||||
|
|
||||||
@@ -12,15 +12,12 @@ YELLOW='\033[1;33m'
|
|||||||
BLUE='\033[0;34m'
|
BLUE='\033[0;34m'
|
||||||
NC='\033[0m' # 无颜色
|
NC='\033[0m' # 无颜色
|
||||||
|
|
||||||
# 默认 Cloudflare Tunnel 令牌
|
# 定义两个不同的密钥和服务器类型
|
||||||
DEFAULT_CF_TUNNEL_TOKEN="eyJhIjoiYmI2OTg1ZGU4N2ZiMDEyYjNjNjI2YWExM2VkYTY3OTciLCJ0IjoiNGYyMjNhM2UtNWNjYy00ZmMwLWI1N2MtNjQzZGY5ZmI1ZWZmIiwicyI6Ik1qTmxOR1U0WmpndE5ERXlPQzAwTjJKaExUazNaVFl0WVRWaU5tUmtObVkxTkdSaSJ9"
|
CF_TOKEN_1="eyJhIjoiYmI2OTg1ZGU4N2ZiMDEyYjNjNjI2YWExM2VkYTY3OTciLCJ0IjoiNGYyMjNhM2UtNWNjYy00ZmMwLWI1N2MtNjQzZGY5ZmI1ZWZmIiwicyI6Ik1qTmxOR1U0WmpndE5ERXlPQzAwTjJKaExUazNaVFl0WVRWaU5tUmtObVkxTkdSaSJ9"
|
||||||
|
SERVER_1="国内服务器"
|
||||||
|
|
||||||
# 用户提供的 Cloudflare Tunnel 令牌
|
CF_TOKEN_2="eyJhIjoiYmI2OTg1ZGU4N2ZiMDEyYjNjNjI2YWExM2VkYTY3OTciLCJ0IjoiOWRhNTU2YmMtMWZhNC00Njg2LTg1YTQtZTczOTQ1YmEwMGNmIiwicyI6Ik5XWTNPV05tTkRjdFltVTBOQzAwTkRkaExXRm1ZVEF0T1daaE9XRTVaVFUyTWpRMSJ9"
|
||||||
USER_CF_TUNNEL_TOKEN="eyJhIjoiYmI2OTg1ZGU4N2ZiMDEyYjNjNjI2YWExM2VkYTY3OTciLCJ0IjoiOWRhNTU2YmMtMWZhNC00Njg2LTg1YTQtZTczOTQ1YmEwMGNmIiwicyI6Ik5XWTNPV05tTkRjdFltVTBOQzAwTkRkaExXRm1ZVEF0T1daaE9XRTVaVFUyTWpRMSJ9"
|
SERVER_2="香港服务器"
|
||||||
|
|
||||||
# 当前使用的令牌
|
|
||||||
CF_TUNNEL_TOKEN=""
|
|
||||||
SERVER_LOCATION=""
|
|
||||||
|
|
||||||
# 输出带颜色的信息函数
|
# 输出带颜色的信息函数
|
||||||
log_info() {
|
log_info() {
|
||||||
@@ -130,8 +127,6 @@ deploy_cloudflared() {
|
|||||||
|
|
||||||
# 运行 cloudflared 容器
|
# 运行 cloudflared 容器
|
||||||
log_info "启动 cloudflared 隧道服务..."
|
log_info "启动 cloudflared 隧道服务..."
|
||||||
log_info "服务器位置: ${SERVER_LOCATION}"
|
|
||||||
|
|
||||||
docker run -d \
|
docker run -d \
|
||||||
--name ${container_name} \
|
--name ${container_name} \
|
||||||
--restart=unless-stopped \
|
--restart=unless-stopped \
|
||||||
@@ -165,7 +160,6 @@ verify_deployment() {
|
|||||||
echo ""
|
echo ""
|
||||||
log_info "容器名称: ${container_name}"
|
log_info "容器名称: ${container_name}"
|
||||||
log_info "运行状态: ${status}"
|
log_info "运行状态: ${status}"
|
||||||
log_info "服务器位置: ${SERVER_LOCATION}"
|
|
||||||
log_info "数据目录: /data/cloudflared/"
|
log_info "数据目录: /data/cloudflared/"
|
||||||
log_info "配置目录: /data/cloudflared/config"
|
log_info "配置目录: /data/cloudflared/config"
|
||||||
log_info "日志目录: /data/cloudflared/logs"
|
log_info "日志目录: /data/cloudflared/logs"
|
||||||
@@ -205,58 +199,34 @@ show_usage() {
|
|||||||
echo ""
|
echo ""
|
||||||
}
|
}
|
||||||
|
|
||||||
# 选择使用哪个令牌
|
# 选择密钥和服务器
|
||||||
select_token() {
|
select_token() {
|
||||||
echo ""
|
echo ""
|
||||||
log_info "请选择要使用的 Cloudflare Tunnel Token:"
|
log_step "请选择要使用的隧道配置:"
|
||||||
echo "1. 使用默认密钥"
|
echo "1) 使用默认密钥 ($SERVER_1)"
|
||||||
echo "2. 使用用户提供的密钥"
|
echo "2) 使用备用密钥 ($SERVER_2)"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
read -p "请输入选择 (1/2): " choice
|
read -p "请输入选择 (1 或 2): " choice
|
||||||
case $choice in
|
case $choice in
|
||||||
1)
|
1)
|
||||||
CF_TUNNEL_TOKEN=$DEFAULT_CF_TUNNEL_TOKEN
|
CF_TUNNEL_TOKEN=$CF_TOKEN_1
|
||||||
log_info "已选择使用默认密钥"
|
SERVER_TYPE=$SERVER_1
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
CF_TUNNEL_TOKEN=$USER_CF_TUNNEL_TOKEN
|
CF_TUNNEL_TOKEN=$CF_TOKEN_2
|
||||||
log_info "已选择使用用户提供的密钥"
|
SERVER_TYPE=$SERVER_2
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
log_error "无效的选择,请输入 1 或 2"
|
echo "无效选择,请重新输入"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
}
|
|
||||||
|
|
||||||
# 选择服务器位置
|
|
||||||
select_server_location() {
|
|
||||||
echo ""
|
|
||||||
log_info "请选择服务器位置:"
|
|
||||||
echo "1. 国内服务器"
|
|
||||||
echo "2. 香港服务器"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
while true; do
|
log_info "已选择: $SERVER_TYPE"
|
||||||
read -p "请输入选择 (1/2): " choice
|
|
||||||
case $choice in
|
|
||||||
1)
|
|
||||||
SERVER_LOCATION="国内服务器"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
SERVER_LOCATION="香港服务器"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
log_error "无效的选择,请输入 1 或 2"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# 主执行函数
|
# 主执行函数
|
||||||
@@ -265,8 +235,9 @@ main() {
|
|||||||
log_info "🚀 开始部署 Cloudflare Tunnel Docker 容器..."
|
log_info "🚀 开始部署 Cloudflare Tunnel Docker 容器..."
|
||||||
log_info "=========================================="
|
log_info "=========================================="
|
||||||
|
|
||||||
|
# 让用户选择密钥
|
||||||
select_token
|
select_token
|
||||||
select_server_location
|
|
||||||
validate_token
|
validate_token
|
||||||
check_docker
|
check_docker
|
||||||
prepare_directories
|
prepare_directories
|
||||||
@@ -275,8 +246,7 @@ main() {
|
|||||||
|
|
||||||
log_info "=========================================="
|
log_info "=========================================="
|
||||||
log_info "✅ Cloudflare Tunnel 部署完成!"
|
log_info "✅ Cloudflare Tunnel 部署完成!"
|
||||||
log_info "隧道已使用提供的 Token 进行认证"
|
log_info "隧道已使用 $SERVER_TYPE 的 Token 进行认证"
|
||||||
log_info "服务器位置: ${SERVER_LOCATION}"
|
|
||||||
|
|
||||||
show_usage
|
show_usage
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user