使用Cloudfare Zerotrust进行内网穿透

技术 · 01-06 · 587 人浏览

使用Cloudflare Tunnel配合Loon或者Surge安全访问家里的网络

内网穿透的方案很多,Cloudflare的ZeroTrust产品中Tunnel的功能也是比较常用的那种,虽然速度不快,但是稳定性还可以。本篇记录一下我如何使用Cloudflare tunnel进行内网穿透。

Tunnel的穿透功能主要有两种,一种是public host,即将服务暴露在公网,简单方便添加,默认支持HTTPS访问,应急使用一下还是不错的。另一个是Private network,即私密网络,需要安装Cloudflare WARP客户端(1.1.1.1)才能访问。

image

一、安装Cloudflared

访问zerotrust,点击create tunnel 按照其中指引在本地设备例如NAS或者openwrt路由器上安装

image

以下是我的compose文件,供参考

version: "3"
services:
  tunnel:
    container_name: cloudflared-tunnel
    image: cloudflare/cloudflared
    network_mode: host
    restart: unless-stopped
    command: tunnel run
    environment:
      - TUNNEL__TOKEN=粘贴你的token
      - no-autoupdate=true

安装注册后,看到添加tunnel为health状态即可下一步。

二、Public Host,公开访问

前置条件

  1. 在Cloudflare中添加有域名,并且有开通Zerotrust
  2. 在内网环境安装Cloudfared

添加服务配置

在Zerotrust的Tunnels下面选择public hostname 这样配置内网的服务地址

cloudflare-tunnel-public-host.jpg

这样可以通过外网进行访问内网的服务,无需任何配置。

💡 敏感服务谨慎通过该方式直接暴露地址到外网。

三、Private Network 功能,私有网络

前置条件

  1. 有通过surge或者loon获取到WARP team的wireguard连接信息,参见该教程
  2. 有surge或者Loon,Clash.meta或者Stash理论上应该也可以,未测试过。

在tunnel中添加一个private network

添加private network时,ip-cidr填写家里的网络CIDR。

家里一般是192.168.X.X的,填写 192.168.X.0/24 表示 192.168.X.0-192.168.X.255 都可以通过tunnel进行访问。

image

配置Loon或者Surge访问策略

在配置文件中,找skip-proxy配置项,将其中192.168.0.0/16 删除掉,这样取消192.168开头的IP跳过代理。

image

添加一个SSID策略,让家里wifi走DIRECT,默认走WARP的wireguard代理。

image

我现在策略组名是 HOME ,你可以修改成其他名称。

在配置文件中添加规则,注意下方的 192.168.2 改成自己家网段。

[Rule]
IP-CIDR,192.168.2.0/24,HOME,no-resolve  #要放在前面,2改成自己网段
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve #放在上面一行的后面

经过如上配置后,连上家里wifi时,访问家里设备直连。在外面的时候,如果你和我一样,总是保持surge或者loon是连接上的,那么可以直接通过 192.168.X.X 访问家里的网络。

Homelab selfhost
Theme Jasmine by Kent Liao