基于Cloudflare的内网穿透解决方案详解
本文将深入探讨如何利用Cloudflare的Zero Trust(原Cloudflare Access)和Cloudflare Tunnel(原Argo Tunnel)功能实现内网服务的安全访问。通过配置安全认证和基于Cloudflare Worker的动态IP白名单,确保只有授权用户能够访问内网资源,同时适配不支持认证的客户端。以下是详细的步骤和说明:
前期准备
- Cloudflare账号及域名:确保您已经拥有Cloudflare账号并配置了相应的域名。
- Docker环境(可选):虽然不是必须的,但Docker环境可以帮助您更方便地部署和管理相关服务。
关联策略
将策略添加到刚刚创建的应用程序中,排名第1位。这样,IP在白名单中的请求将绕过认证直接访问内网服务。
IP白名单的注册鉴权(Token方式)
创建服务凭据
- 选择 Zero Trust > 访问控制 > 服务凭据 > 创建凭据
- 输入名称,创建后记下 Client ID 和 Client Secret
创建Worker应用程序
- 新建应用程序,名称自定义
- 公共主机名填写Worker脚本的域名(如
your-worker.your-domain.com)
创建SERVICE AUTH策略
- 创建新策略,名称自定义
- 操作选择 SERVICE AUTH
- 选择器类型选择 Service Token,值为刚创建的服务凭据名称
- 保存策略
关联策略
回到Worker的应用程序页面,选择现有策略,关联刚创建的策略。
IP白名单的注册鉴权(Email方式)
- 创建新策略,名称自定义
- 操作选择 Allow
- 选择器类型选择 Emails,值为允许注册的邮箱地址(可添加多个)
- 保存策略后,回到Worker的应用程序页面,关联刚创建的策略
使用说明
- 浏览器访问Worker脚本的域名,完成认证后,IP将被添加到白名单中,且在指定时间内有效。
- 对于不支持认证的客户端应用,可使用自动化任务(如iOS的快捷指令等)配置
CF-Access-Client-Id和CF-Access-Client-Secret请求头,实现自动认证。
注意
自动化任务可能无法指定请求时的IPv4/IPv6地址,因此可以尝试重复请求多次以确保IPv4和IPv6地址均被添加到白名单中。
如果您想了解更多关于基于Cloudflare的内网穿透解决方案的详细信息,可以访问基于Cloudflare的内网穿透解决方案(含安全认证及动态IP白名单)。希望这些信息能帮助您更好地理解和应用这一技术。
评论已关闭