Skip to content

使用cloudflare的Tunnels服务访问家里的内网Nas

本篇将要干什么?

无需公网, 备案, ipv6, 内网穿透, 以及任何的云服务器, 可以随时随地的访问我们的家里云

当然前提是你得有一个域名, 这很重要

我该如何做?

  1. 首先登入cloudflare控制台

  2. 在左侧找到Zero Trust, 输入你独一无二的项目名称, 点击下一步, 依旧使用free套餐发挥我们白嫖的优良传统, 后续项目名称可以在Zero Trust主页随时更改

    1752778770491

免费套餐也要付款?

  1. 当我们选择免费计划下一步的时候, 突然跳出来一个支付页面

    1752778886891

  2. 可以看到依然是免费的, 这一步可以绑定自己的支付方式下一步即可, 不过细心的你肯定也跟我一样注意到了右上角有个退出按钮, 我们点击试试(也可以绑定一下支付, 免费的怕啥)

  3. 退出后会返回到主控制台, 我们再次选择Zero Trust进入, 可以看到我们刚刚创建的项目已经有了, 出现了一个新的界面

    1752779229614

添加隧道(Add a tunnel)

  1. Zero Trust主页左侧侧边栏, 有个网络, 如果您是英文界面的话, 它应该叫做Network, cloudflare是支持国际化的, 普通话不标准的同学可以切换到英文界面

  2. 选择Network下的Tunnels隧道, 选择添加隧道(Add a tunnel)

    1752779584178

    TIP

    简单讲讲这里在干什么

    将本地服务与cloudflare连通, 可称之为隧道

    如此可以把本地服务的流量交给cf, 我们绑定域名后, 就可以通过域名访问本地服务, 中间由cf进行连通

  3. 隧道类型选择cloudflared, cf推荐的, 后续有时间研究下WARP

    1752780837368

  4. 为该隧道创建一个卓尔不群的名称

    1752781036590

配置隧道

  1. 添加完成后, 我们会进入一个配置页面, 意思是在我们的服务上, 创建cloudflared客户端进行隧道链接, 因为我们服务是Nas, 所以选择docker版本, Nas上面弄个docker很容易

    1752781414940

    WARNING

    注意: 保管好你的令牌 , 此令牌只会出现这一次

  2. 官方提供给我们的docker命令很简洁, 但是Nas上要使用docker命令来启动容器, 需要终端ssh的连接, 这里我们变通一下, 使用Nas上自带的docker可视化面板来进行操作, 首先我们来简单解读一下这条命令

    shell
    docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token 你的token
    # docker run (启动一个新的容器并运行指令
    # cloudflare/cloudflared:latest (镜像名
    # tunnel --no-autoupdate run --token 你的token (跟在镜像后边的是指令

    可以看出, 若想进一步设置的话, 我们可以在这条命令中添加一些配置, 比如

    • 容器总是自启动

      shell
      --restart always
    • 容器别名

      shell
      --name 我的容器名
    • 容器在后台启动

      shell
      -d
  3. 连起来就是(token需要替换为你的token)

    shell
    docker run -d --name cloudflared --restart always cloudflare/cloudflared:latest tunnel --no-autoupdate run --token 你的token
  4. 我所使用的Nas, 其docker控制面板有docker compose, 所以我们可以将其转成Docker Compose

  5. 首先创建docker-compose.yml, 编辑以下内容

    dockerfile
    version: '3'
    
    services:
      cloudflared:
        container_name: cloudflared
        image: cloudflare/cloudflared:latest
        command: tunnel --no-autoupdate run --token 你的token
        restart: always
  6. NasContainer Manager面板创建项目, 设置项目名称以及路径, 上传我们刚刚创建的docker-compose.yml然后一路下一步, 出现下面界面代表启动成功, 此时就可以关闭这个构建页面

    1752783873567

    1752783999228

  7. 如果启动失败, 请检查你的token有没有替换. 成功后我们回到cf控制台, 刚刚那个页面下方Connectors会显示已连接, 我们点击下一步

    1752784407549

为隧道绑定域名

TIP

这一步必须要有一个自己的域名, 且托管在cloudflare平台, 否则无法选中

我之前接触EdgeOne, 将自己的域名托管在了EdgeOne, 为的是以NS接入域名配置CDN加速方便, 且免费, 访问速度快

但, EO也有CF这么优秀的功能吗? 答案是否定的, CF唯一缺点就是国内访问需要加速器

这里我先使用一个白嫖一年的二级域名进行展示

  1. 为隧道添加子域(主机名), 比如: nas me personal等等, 路径不需要填, 我们默认使用根路径

  2. 服务类型: http就可以了, cloudflare建立的隧道很安全, 况且我们只访问一个5000端口

  3. URL: 你的Nas内网访问ip, 比如192.168.10.2:5000, 完成后保存设置即可

    1752785154283

  4. 此时我们可以看到隧道已经建立成功, 我们在浏览器输入刚刚绑定的域名就可以访问了

    1752785304397

    1752785331970

添加其他站点

Tunnels页面, 使用这一个隧道, 可以添加很多主机名映射, 后续我们可以将服务也连接到cloudflare, 不建议再打洞, 毕竟一个洞就需要一个cloudflared客户端

比较推荐:

  • Transmission或者qBittorrent 服务, 随时随地添加种子下东西
  • emby

速度可能慢了点, 但是重在安全! 免费!

1752790410167

上次更新于:

本站已运行: