树洞剪藏#剪藏#树洞剪藏

Cloudflare Zero Trust:Cloudflare Tunnel使用教程 - 资源荟萃 - LINUX DO

2024 年 11 月 15 日1 分钟
分享Twitter / XTelegram微博

同步来源:树洞剪藏 源站剪藏 ID:77 原文地址:https://linux.do/t/topic/3628

打开原文 · 打开源站剪藏快照


Cloudflare Zero Trust:Cloudflare Tunnel使用教程 - 资源荟萃 - LINUX DO

跳到主要内容

话题

我的帖子

关于

友链

文档

更多

外部链接

Status

Connect

Channel

Telegram

Shared Chat

类别

开发调优

资源荟萃

文档共建

跳蚤市场

前沿快讯

福利羊毛

搞七捻三

运营反馈

深海幽域

所有类别

标签

抽奖

公告

精华神帖

快问快答

人工智能

所有标签

消息

收件箱

频道

常规频道

直接消息

聊天

真诚 、 友善 、 团结 、 专业 ,共建你我引以为荣之社区。 《常见问题解答》

Cloudflare Zero Trust:Cloudflare Tunnel 使用教程

资源荟萃

Cloudflare

1月 26 日

1 / 144

1月 27 日

返回

10 天

热门回复

前排围观支持一下 感谢分享大佬厉害啊 有点厉害支持~~

Zhile 龙行龘龘

1 1月 26 日 #1

Cloudflare 是什么应该不用过多介绍了,本帖聊一下 Cloudflare Tunnel 的用法。

cf tunnel 是什么?

Cloudflare Tunnel 为您提供了一种安全的方式,将您的资源连接到 Cloudflare,而无需公共可路由的 IP 地址。使用 Tunnel,您不会将流量发送到外部 IP 地址,而是在您的基础设施中创建一个轻量级的守护程序,仅向 Cloudflare 的全球网络创建出站连接。Cloudflare Tunnel 可以安全地将 HTTP Web 服务器、SSH 服务器、远程桌面和其他协议连接到 Cloudflare。这样,您的源站可以通过 Cloudflare 提供流量,而不会容易受到绕过 Cloudflare 的攻击。

(摘自官方文档)

有什么用?

tunnel 字面意思一根加密隧道直接从 Cloudflare 网络插到你的服务器,提供 webui 页面方便管理域名与服务器上部署的项目之间的绑定。

项目部署上线更简单,只需建立好隧道,然后设置域名指向项目暴露的本地地址和端口即可。

无需编写任何 Nginx 配置,非常适合像我这样的懒人或小白用户。

无需配置证书,使用加密隧道,项目不会直接暴露到公网上,从而增强了安全性。 (ps: 需开启防火墙)

如何工作的?

大致流程为:

用户 —> cf 服务器 —> cf 侧 tunnel 设置入口 --(加密)–> 服务器侧的 tunnel 出口 → 本机项目

0 1768×1102 86.3 KB

开始搭建

  1. 在 Cloudflare 的侧边栏中,找到并点击 Zero Trust 菜单。如果是首次使用,需要进行订阅,选择免费套餐进行开通。

1 288×534 14.9 KB

  1. 在进入 Zero Trust 面板后,从侧边栏中找到并点击 Tunnel 菜单。

  2. 创建一条隧道(cf 侧)

3 925×479 45.4 KB

3.1 隧道类型选 Cloudflared

4 935×788 53.5 KB

3.2 设置隧道名,名字随便取,我个人习惯于取能够辨识服务器的名称。

5 924×638 36.2 KB

3.3 安装环境选 Docker ,记得复制 docker 的安装命令以备后用。

6 926×1122 69.5 KB

3.4 不用点下一步,直接在左上角点击返回,即可确认隧道已成功创建。

7 920×872 56.4 KB

8 925×520 49.6 KB

  1. 服务器侧隧道设置

在第 3.3 节中,我们获得了一个类似于以下的 docker 命令:

docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token eyJhIjoiMjQ4MmIzM2Y3Njc3YWE5OWE5NThiZjcxNTdkMzU1ZmYiLCJ0IjoiOTFmYzdhOWQtYThiZC00MmY2LThlOTEtMDMwYWZjNDA3MjRmIiwicyI6IlkyRm1OamM0TXpZdE1qVTBaaTAwTTJZNUxUZ3hOV1V0TXpOaE9XVmpNV1F4Wm1ZeCJ9

先别着急用,需要添加几个 docker 参数, 注意 network 需要设置为 host 。讲一下我之前遇到的坑,docker 启动容器默认会使用桥接模式(bridge),在后面域名绑定时, 127.0.0.1:port 是 cloudflared 这个容器内部的地址,如果你的项目也是使用 docker 的桥接模式启动的,那么就无法找到对应的服务。当然也可以用 172.17.0.1:port 这个地址进行绑定,但还是建议让 cloudflared 容器以 host 模式启动。

docker 启动命令

docker run -d --restart always --network host --name cloudflared cloudflare/cloudflared tunnel --no-autoupdate run --token eyJhIjoiMjQ4MmIzM2Y3Njc3YWE5OWE5NThiZjcxNTdkMzU1ZmYiLCJ0IjoiOTFmYzdhOWQtYThiZC00MmY2LThlOTEtMDMwYWZjNDA3MjRmIiwicyI6IlkyRm1OamM0TXpZdE1qVTBaaTAwTTJZNUxUZ3hOV1V0TXpOaE9XVmpNV1F4Wm1ZeCJ9

or

docker-compose 配置

version: '3'

services: cloudflared: image: cloudflare/cloudflared container_name: cloudflared restart: always network_mode: host command: tunnel --no-autoupdate run --token eyJhIjoiMjQ4MmIzM2Y3Njc3YWE5OWE5NThiZjcxNTdkMzU1ZmYiLCJ0IjoiOTFmYzdhOWQtYThiZC00MmY2LThlOTEtMDMwYWZjNDA3MjRmIiwicyI6IlkyRm1OamM0TXpZdE1qVTBaaTAwTTJZNUxUZ3hOV1V0TXpOaE9XVmpNV1F4Wm1ZeCJ9

  1. 配置域名和部署项目的绑定

5.1 点击前面创建的隧道 Configure

9 920×639 52.5 KB

5.2 添加 Public Hostname

10 929×716 31.9 KB

5.3 配置域名与服务器上的项目端口,类型有很多可选的,选 http 即可。

11 1148×695 39.1 KB

5.4 配置完成后,尝试访问你的域名以确认是否设置成功。

2 个回复

heart

+1

confetti_ball

298

回复

【Cloudflare系列教程】汇总帖 138 我提议--发掘一下Cloudflare 89 家里有一台NAS,只有动态公网IPV6,如何让所有设备都能访问到NAS上的服务 57 腾讯云VPS能否绕过备案 31 阿里云新用户大学生300劵是买香港轻量服务器还是大陆服务器 22 其他 14 个

13.1k

浏览量

451

12

链接

103

用户

9

5

5

4

3

阅读时间

10 分钟

热门回复

BenSu 大预言家

1月 27 日 #2

学习了下…

4 回复

腾讯云VPS能否绕过备案 7

ko0 种子用户

1月 27 日 #3

学到了 佬

2 回复

Linux root

1月 27 日 #4

3 回复

印亭 坡 moshen 种子用户

1月 28 日 #5

那么,登录方式是怎么做到呢 1 个回复

1 回复

陈窜稀 linyongcheng 浴火重生

1月 28 日 #6

大佬牛逼。

3 回复

lao niuda123 龙行龘龘

1月 28 日 #7

这样是不是相当于内网的端口直接用域名就可以访问了?

ddns 和内网穿透这些都不用管,路由器上做个端口映射就行了?

赶紧试试

2 回复

lao niuda123 龙行龘龘

1月 28 日 #8

version: '3' services: cloudflared: image: cloudflare/cloudflared:latest container_name: cloudflared restart: always network_mode: host command: tunnel --no-autoupdate run --token **************

出现这样的提示:

Incorrect Usage: flag provided but not defined : -token

1 个回复

2 回复

上次访问

Zhile 龙行龘龘 lao 1月 28 日 #9

检查一下 cloudflare/cloudflared 这个镜像有没有拉下来 1 个回复

1 回复

lao niuda123 龙行龘龘

1 Zhile 1月 28 日 #10

Incorrect Usage: flag provided but not defined: -token NAME: cloudflared tunnel run - Proxy a local web server by running the given tunnel USAGE: cloudflared tunnel run [command options] TUNNEL-ID OPTIONS: --force, -f By default, if a tunnel is currently being run from a cloudflared, you can't simultaneously rerun it again from a second cloudflared. The --force flag lets you overwrite the previous tunnel. If you want to use a single hostname with multiple tunnels, you can do so with Cloudflare's Load Balancer product. (default: false) --help, -h show help (default: false)

docker 容器 输出的日志是这样的。

镜像拉下来了

用命令和 docker-compose 部署了几次,都是这个提示:

Incorrect Usage: flag provided but not defined : -token

1 回复

Zhile 龙行龘龘 印亭 坡 1月 28 日 #11

域名绑定后,可以在 cf 域名解析看到多了一条 cname 记录,指向 991dc231-3165-xxxx-xxxxx-xxxxxxxxxxxx.cfargotunnel.com 这个地址,前面一长串 id 是创建的隧道的 id,简单理解为域名到隧道入口这个过程。

Screenshot_20240128_131200 841×398 31.3 KB

1 个回复

1 回复

lao niuda123 龙行龘龘

1 Zhile 1月 28 日 #12

嗯,这个也有了

image 1034×298 25.4 KB

这里显示的意思是没有连上吧

1 个回复

1 回复

Zhile 龙行龘龘 lao 1月 28 日 #13

应该是镜像不是最新的,试试 docker pull cloudflare/cloudflared:2024.1.5 1 个回复

3 回复

lao niuda123 龙行龘龘 Zhile 1月 28 日 #14

好了。

重新拉取了镜像以后就 ok 了

谢谢大佬

奇怪的是用 latest 标签为啥拉取不到最新的镜像。

拉到 2020 年的

1 个回复

3 回复

Zhile 龙行龘龘 lao 1月 28 日 #15

时常抽风

3 回复

tingtao xiaobai 浴火重生

1月 29 日 #16

这个 tunnel 和使用 cloudflare 的源服务器证书 (SSL), 有什么区别?我还是有点不懂,都是通过 cf 加密访问。

2 回复

Ray ZN100K 种子用户

2月 4 日 #17

非常有帮助的教程,刚才通过这种方式连接到家里的 Portainer.

刚开始 502 报错,实测把 TLS 验证关闭即可.

谢谢! 1 个回复

1 回复

根儿🛡️ rooter 幸运佬

2月 5 日 #18

中午成功了, 但是现在日志报错如下, 这个咋解决呢

2024 -02 -05 T07: 24 : 11 Z ERR Unable to establish connection with Cloudflare edge error= "TLS handshake with edge error: EOF" connIndex= 0 event = 0 ip= 198.41 .200 .23 2024 -02 -05 T07: 24 : 11 Z ERR Serve tunnel error error= "TLS handshake with edge error: EOF" connIndex= 0 event = 0 ip= 198.41 .200 .23 2024 -02 -05 T07: 24 : 11 Z INF Retrying connection in up to 1 m4s connIndex= 0 event = 0 ip= 198.41 .200 .23

2 个回复

回复

根儿🛡️ rooter 幸运佬

根儿🛡️ 2月 5 日 #19

现在又变成 dgraded 状态了

1 个回复

回复

鹿目 まどか Advanced PlayMcBKuwu 银笔杆

2月 5 日 #20

Zhile:

  1. 服务器侧隧道设置

在第 3.3 节中,我们获得了一个类似于以下的 docker 命令:

docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token eyJhIjoiMjQ4MmIzM2Y3Njc3YWE5OWE5NThiZjcxNTdkMzU1ZmYiLCJ0IjoiOTFmYzdhOWQtYThiZC00MmY2LThlOTEtMDMwYWZjNDA3MjRmIiwicyI6IlkyRm1OamM0TXpZdE1qVTBaaTAwTTJZNUxUZ3hOV1V0TXpOaE9XVmpNV1F4Wm1ZeCJ9

先别着急用,需要添加几个 docker 参数, 注意 network 需要设置为 host 。讲一下我之前遇到的坑,docker 启动容器默认会使用桥接模式(bridge),在后面域名绑定时, 127.0.0.1:port 是 cloudflared 这个容器内部的地址,如果你的项目也是使用 docker 的桥接模式启动的,那么就无法找到对应的服务。当然也可以用 172.17.0.1:port 这个地址进行绑定,但还是建议让 cloudflared 容器以 host 模式启动。

docker 启动命令

docker run -d --restart always --network host --name cloudflared cloudflare/cloudflared tunnel --no-autoupdate run --token eyJhIjoiMjQ4MmIzM2Y3Njc3YWE5OWE5NThiZjcxNTdkMzU1ZmYiLCJ0IjoiOTFmYzdhOWQtYThiZC00MmY2LThlOTEtMDMwYWZjNDA3MjRmIiwicyI6IlkyRm1OamM0TXpZdE1qVTBaaTAwTTJZNUxUZ3hOV1V0TXpOaE9XVmpNV1F4Wm1ZeCJ9

Docker 命令那段是不是暴露 Token 了

1 个回复

1 回复

开始阅读 启用自动点赞

楼主

等级

相关文章