Cloudflare Access 提供了一种机制,允许最终用户使用其单点登录 (SSO) 提供商进行身份验证,并在不使用虚拟专用网络 (VPN) 的情况下通过任意 TCP 连接到资源。
- Cloudflare 账户
- 在 Cloudflare 上处于活动状态的站点
- 在主机和客户端机器上安装的
cloudflared守护程序
Cloudflare Access 要求您首先将 添加站点 ↗ 添加到 Cloudflare。您可以使用已注册的任何站点;该站点不需要与您用于客户流量的站点相同,也不需要与您内部 DNS 中的站点匹配。
将站点添加到 Cloudflare 需要将您域名的权威 DNS 更改为指向 Cloudflare 的名称服务器。配置完成后,对该主机名的所有请求都将首先发送到 Cloudflare 的网络,并在那里应用 Access 策略。
Cloudflare 守护程序 cloudflared 将维持从机器到 Cloudflare 的安全、持久、仅出站的连接。任意 TCP 流量将使用 Cloudflare Tunnel ↗ 通过此连接进行代理。
按照这些说明在托管资源的机器上下载并安装 cloudflared。
运行以下命令以将 cloudflared 身份验证到您的 Cloudflare 账户。
cloudflared tunnel logincloudflared 将打开一个浏览器窗口,并提示您登录您的 Cloudflare 账户。如果您在没有浏览器的机器上操作,或者浏览器窗口未启动,您可以从命令行输出中复制 URL,并在任何机器上的浏览器中访问该 URL。
登录后,Cloudflare 将显示您已添加到账户中的站点。选择您要创建代表该资源的子域名的站点。例如,如果您计划在 tcp.site.com 共享服务,请从列表中选择 site.com。
选择后,cloudflared 将为该站点下载通配符证书。此证书将允许 cloudflared 为该站点的子域名创建 DNS 记录。
接下来,使用 Cloudflare Access 策略保护您计划注册的子域名。按照这些说明构建新策略以控制谁可以连接到 该资源。
例如,如果您在 tcp.site.com 共享资源,请构建策略以仅允许您的团队成员连接到该子域名。
cloudflared 可以代理到非标准端口的连接。
运行以下命令以将资源连接到 Cloudflare,将 tcp.site.com 和 7870 值替换为您的站点和端口。
cloudflared tunnel --hostname tcp.site.com --url tcp://localhost:7870cloudflared 将确认连接已建立。需要将该进程配置为保持运行和自启动。如果该进程被终止,最终用户将无法连接。
按照上述相同步骤在将连接到资源的客户端桌面上下载并安装 cloudflared。需要在每个将要连接的用户设备上安装 cloudflared。
运行以下命令以创建从设备到 Cloudflare 的连接。可以指定任何可用端口。
cloudflared access tcp --hostname tcp.site.com --url localhost:9210此命令可以封装为桌面快捷方式,这样最终用户就无需使用命令行。
将客户端应用程序指向所选端口。
当客户端启动时,cloudflared 将启动一个浏览器窗口,并提示用户使用您的 SSO 提供商进行身份验证。
常见问题
- 确保机器的防火墙允许在端口 80 和 443 上出站,否则
cloudflared将返回错误。