Cloudflare Tunnel 是如何做到无开放端口而进行通信的?

2022-08-06 20:11:31 +08:00
 cocoking

介绍: https://www.cloudflare.com/zh-cn/products/tunnel/

Cloudflare 的一款免费的隧道软件,介绍中说不需要开放设备的任何一个端口,那如何通讯呢??

另外,用过的同学也可以分享一下跟 frp 相比效果怎么样?

5426 次点击
所在节点    程序员
14 条回复
miyuki
2022-08-06 20:23:54 +08:00
一端没公网那就另一端有公网呗
xmh51
2022-08-06 20:26:58 +08:00
Tunnel 后台程序在您的源 web 服务器和 Cloudflare 最近的数据中心之间创建一条加密隧道——无需打开任何公共入站端口。 这个说的很明白了吧。
eason1874
2022-08-06 20:28:52 +08:00
frp 内网穿透怎么通讯,它就怎么通讯,原理是一样的, 只是实现不一样

你的电脑 > (frp > 服务器) = Cloudflare Tunnel > 用户
Nitroethane
2022-08-06 20:34:32 +08:00
文档的意思是不需要向公网开放端口。部署并配置好 cloudflared 后,你的服务器会主动跟 cf 的服务器建立一条加密隧道,然后通过 cf 的网关将你内网的服务暴露到公网。
frp 跟 cf tunnel 的原理类似,只不过用 frp 的话,你得有一台拥有公网 IP 的服务器。而用 cf 的话就不需要,直接用的是 cf 的服务器。
这种模式在这两年开始流行主推的零信任中使用的比较多。
wslzy007
2022-08-06 22:05:23 +08:00
可以了解一下 SG 的原理:
内服务器和内客户端通过外网服务器建立加密 P2P 隧道,实现内网服务器和内网客户端间通讯,此时内网服务器和内网客户端都没有任何监听端口。
github.com/lazy-luo/smarGate
ZE3kr
2022-08-06 22:08:10 +08:00
多数情况下防火墙只会禁止流入的流量,但依然允许客户端主动开临时端口与外部建立连接(所以半开放了端口)。无论是你浏览网页还是 Tunnel 都是客户端临时开端口与外部建立 TCP 连接。要是真的不开所有端口那你都没法浏览网页
ZE3kr
2022-08-06 22:10:08 +08:00
此外原文其实说的很明白:“无需打开任何公共入站端口”,并不是你描述里说的“不需要开放设备的任何一个端口”
butanediol2d
2022-08-06 23:40:18 +08:00
Cloudflare Tunnel 好像是基于 wireguard 的?错了的话拍我

反正我体验下来国内是不咋好用
ZeroClover
2022-08-07 00:01:28 +08:00
@butanediol2d 你说的那是 Cloudflare WARP

Cloudflare Tunnel 是类似 GRE 的
momocraft
2022-08-07 00:14:56 +08:00
那句話的意思大概是不需要 listen 端口
ysc3839
2022-08-07 07:49:40 +08:00
意思应该是不需要外部主动连入你的设备,只需要你的设备主动连出,这样可以解决防火墙阻止外部连入的问题。
wwqgtxx
2022-08-07 08:11:19 +08:00
@ZeroClover 根据客户端可选参数,实际上目前能选择的是 http2 和 quic
totoro625
2022-08-07 10:11:37 +08:00
@butanediol2d #8 你可能需要在前面加个梯子,毕竟是国外的服务器,而且被用烂了
Lentin
2022-08-18 18:41:20 +08:00
@wwqgtxx 还有 h2mux 似乎是 cf 优化版的 h2

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/871142

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX