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. 在Nas的Container 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

上次更新于:

本站已运行: