🌐 内网穿透方案:Cloudflare Tunnel|Alist外网访问|无公网IP|新手教程|保姆级

🌐 内网穿透方案:Cloudflare Tunnel|Alist外网访问|无公网IP|新手教程|保姆级

2025-03-24·Sindri

🎬 视频教程

📌 1. 演示环境

  • 操作系统:Ubuntu
  • 已安装软件:Docker、AList
  • 核心服务:Cloudflare Tunnel(未安装)
  • 实现目标:在非公网 IP 环境下,通过域名直接访问 AList 服务

🚀 2. 搭建 Cloudflare 隧道

🔹 Cloudflare 端操作

  1. 登录 Cloudflare,进入 ZeroTrust
  2. 依次进入 网络 → Tunnels
  3. 创建隧道获取 Token配置域名

🌍 域名配置

配置项说明
自定义子域名设定希望用于访问服务的网址
服务类型选择 http
URL根据配置说明填写

🛠 URL配置说明

根据 AListCloudflared 的不同安装方式,网络访问方式将有所不同。请根据以下的表格来选择正确的端口映射和访问方式:

AList 与 Cloudflared 安装方式对比表

AList 安装方式Cloudflared 安装方式端口映射说明访问方式
宿主机上安装 AList宿主机上安装 CloudflaredAList 直接监听宿主机端口(如 52441. 使用 宿主机 IP 访问:http://<宿主机 IP>:5244 2. 使用 localhost 访问:http://localhost:5244
宿主机上安装 AListDocker 中安装 CloudflaredAList 直接监听宿主机端口(如 52441. 使用 宿主机 IP 访问:http://<宿主机 IP>:5244 2. 不能使用 localhost 访问;需要通过宿主机 IP 访问
Docker 中安装 AList宿主机上安装 CloudflaredAList 使用 Docker 映射端口(如 5244:52441. 使用 宿主机 IP 访问:http://<宿主机 IP>:5244 2. 使用 localhost 访问:http://localhost:5244
Docker 中安装 AListDocker 中安装 CloudflaredAList 使用 Docker 映射端口(如 5244:52441. 使用 宿主机 IP 访问:http://<宿主机 IP>:5244 2. 不能使用 localhost 访问;需要通过宿主机 IP 或 Docker 网络访问 3. 通过 Docker 网络访问:如果容器之间共享同一网络,可以使用容器名称或 Docker 网络 IP 来访问 http://<容器名>:5244

🛠 3. 本地搭建 Cloudflare 隧道

📌 安装方式建议

  • 若 AList 运行在 Docker,推荐 Cloudflared 也使用 Docker
  • 若 AList 直接安装,推荐 Cloudflared 直接安装
  • 这里采用 Docker Compose 统一管理,更方便

✍️ 修改 Docker-Compose 配置

进入项目所在文件夹:

cd /home/nbvil/2jz

使用 nano 编辑 docker-compose.yml 文件

nano docker-compose.yml

原有 AList 的基础上,添加 cloudflared 配置:

version: '3.3'
services:
  alist:
    image: 'xhofe/alist:latest'  # 使用 latest 稳定版
    container_name: alist
    volumes:
      - './alist:/opt/alist/data'  # 文件映射到当前目录,方便管理
    ports:
      - '5244:5244'
    environment:
      - PUID=0
      - PGID=0
      - UMASK=022
    restart: unless-stopped

  cloudflared:
    image: cloudflare/cloudflared:latest
    container_name: cloudflared
    restart: unless-stopped
    command: tunnel run
    environment:
      - TUNNEL_TOKEN=<your-tunnel-token>  # 提供 Token

🚀 启动 & 更新服务

sudo docker compose up -d

🔗 4. 验证域名访问

待 Cloudflare Tunnel 连接成功、状态正常后

  1. 打开浏览器,访问 配置的域名
  2. 若成功访问 AList 界面,则穿透完成 🎉

💡 5. 总结

  • 使用 Cloudflare Tunnel 解决 无公网 IP 访问服务 的问题
  • 结合 Docker Compose,方便管理 AList 和 Cloudflared
  • 注意 URL配置 正确,确保服务和隧道能够正确连通

版权声明:

本文由 Sindri 原创,采用 CC BY-NC-SA 4.0 协议进行许可。转载请注明出处。

评论 (0)

登录后参与讨论

去登录