gongxiangp2/scripts/setup-cloudflare-tunnel.sh

96 lines
2.8 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 设置Cloudflare Tunnel(推荐方案)
set -e
echo "========================================"
echo "设置Cloudflare Tunnel"
echo "========================================"
echo ""
echo "⚠️ 注意: 此脚本需要Cloudflare账户"
echo " 如果没有账户,请先访问 https://dash.cloudflare.com 注册"
echo ""
# 检查是否已安装cloudflared
if ! command -v cloudflared &> /dev/null; then
echo "📦 安装cloudflared..."
# 下载最新版本
ARCH=$(uname -m)
if [ "$ARCH" = "x86_64" ]; then
ARCH="amd64"
elif [ "$ARCH" = "aarch64" ]; then
ARCH="arm64"
fi
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-${ARCH} -O /tmp/cloudflared
chmod +x /tmp/cloudflared
sudo mv /tmp/cloudflared /usr/local/bin/cloudflared
echo "✅ cloudflared已安装"
else
echo "✅ cloudflared已安装: $(cloudflared --version)"
fi
echo ""
echo "========================================"
echo "下一步操作:"
echo "========================================"
echo ""
echo "1. 登录Cloudflare:"
echo " cloudflared tunnel login"
echo ""
echo "2. 创建隧道:"
echo " cloudflared tunnel create youyidian-3d"
echo ""
echo "3. 配置路由(在Cloudflare Dashboard):"
echo " - 访问 https://dash.cloudflare.com"
echo " - 选择你的域名"
echo " - 进入 Network > Tunnels"
echo " - 配置路由规则"
echo ""
echo "4. 或使用配置文件 (~/.cloudflared/config.yml):"
echo " tunnel: <tunnel-id>"
echo " credentials-file: /root/.cloudflared/<tunnel-id>.json"
echo " "
echo " ingress:"
echo " - hostname: 3d.yydd.ai"
echo " service: http://127.0.0.1:4320"
echo " - hostname: s3.yydd.ai"
echo " service: http://192.168.58.20:9000"
echo " - service: http_status:404"
echo ""
echo "5. 创建Systemd服务:"
echo " cat > /etc/systemd/system/cloudflared.service << 'SERVICE_EOF'"
echo " [Unit]"
echo " Description=Cloudflare Tunnel"
echo " After=network.target"
echo " "
echo " [Service]"
echo " Type=simple"
echo " User=root"
echo " ExecStart=/usr/local/bin/cloudflared tunnel run youyidian-3d"
echo " Restart=always"
echo " RestartSec=5s"
echo " "
echo " [Install]"
echo " WantedBy=multi-user.target"
echo " SERVICE_EOF"
echo ""
echo "6. 启用并启动服务:"
echo " systemctl daemon-reload"
echo " systemctl enable cloudflared.service"
echo " systemctl start cloudflared.service"
echo ""
echo "========================================"
echo "优势:"
echo "========================================"
echo "✅ 99.99%可用性(Cloudflare全球基础设施)"
echo "✅ 完全免费(无流量限制)"
echo "✅ 自动SSL证书"
echo "✅ 全球CDN加速"
echo "✅ DDoS防护"
echo "✅ 详细监控和日志"
echo "✅ 零维护成本"
echo ""