2022-06-20 12:04:36
Cloudflared:一种简单易用的内网穿透方式
Cloudflared 是一种利用 Cloudflare 网络实现内网穿透的工具,它通过建立隧道的方式,使得公网用户能够访问到内网中部署的服务。
一、内网穿透的背景与需求
在IPv4协议下,由于IP地址资源有限,内网设备在访问外网时,通常会经过NAT(网络地址转换)过程。NAT使得内网设备能够共享一个公网IP地址,但这也带来了一个问题:NAT后的内网设备只能主动向外发起连接,而无法直接接收来自外网的主动连接。这限制了内网服务的访问范围,使得公网用户无法直接访问到内网中部署的服务。
为了解决这一问题,内网穿透技术应运而生。内网穿透技术通过一系列技术手段,使得公网用户能够绕过NAT限制,访问到内网中提供的服务。Cloudflared就是其中一种简单易用的内网穿透方式。
二、Cloudflared的工作原理
Cloudflared的工作原理基于TCP连接和Cloudflare的边缘网络。内网主机通过Cloudflared客户端主动向Cloudflare网络中提供隧道服务的服务器建立TCP连接,形成一个隧道。这个隧道相当于在互联网上建立了一个“桥梁”,使得公网用户能够通过Cloudflare的边缘网络访问到内网中部署的服务。
具体来说,当公网用户想要访问内网服务时,他们首先向Cloudflare的某个边缘节点发送请求。Cloudflare边缘节点接收到请求后,通过之前建立的隧道将请求转发给内网主机。内网主机处理完请求后,将响应通过隧道发送回Cloudflare边缘节点,再由边缘节点将响应发送回公网用户。
三、Cloudflared的部署与使用
下载与安装:用户首先需要下载Cloudflared的二进制可执行文件,并将其安装到内网主机上。
获取Token:在Cloudflare网站上注册并登录账号后,用户需要创建一个API Token,以便Cloudflared客户端能够与Cloudflare网络进行通信。
运行Cloudflared:以root权限运行Cloudflared程序,并传入之前获取的Token。Cloudflared首次建立隧道时,会在系统中安装systemd服务,以便后续自动管理隧道。
创建与配置隧道:在Cloudflare网站上创建一个新的隧道,并配置隧道的名称、内网服务的地址和端口等信息。然后,将隧道的配置信息同步到Cloudflared客户端。
访问内网服务:隧道建立完成后,用户可以通过Cloudflare提供的公共主机名(public hostname)来访问内网服务。这个公共主机名是在创建隧道时指定的,并且与Cloudflare的边缘网络相关联。
四、Cloudflared的优势与特点
简单易用:Cloudflared提供了简洁明了的命令行界面和配置流程,使得用户能够轻松部署和使用内网穿透服务。
全球覆盖:借助Cloudflare遍布全球的边缘网络,Cloudflared能够提供低延迟、高可靠性的内网穿透服务。
安全性高:Cloudflare提供了多种安全功能,如DDoS防护、TLS加密等,能够保护内网服务免受恶意攻击。
成本低廉:对于对延迟、吞吐和流量要求不高的用户来说,使用Cloudflared可以省去购买云主机等额外成本。
五、Cloudflared的应用场景
远程访问:用户可以通过Cloudflared建立的隧道远程访问内网中的服务器或设备,进行远程管理或维护。
内网服务公开:开发者可以将内网中部署的Web服务、数据库服务等公开给外部用户访问,促进团队协作或业务开展。
物联网设备接入:物联网设备通常部署在内网中,通过Cloudflared可以将这些设备接入到互联网中,实现远程监控和控制。
六、示例演示
以下是一个使用Cloudflared进行内网穿透的示例演示:
在内网中部署一个echo服务,该服务监听某个TCP端口,并对收到的数据流进行原样返回。
部署Cloudflared connector,并按照提示进行安装和配置。
在Cloudflare网站上创建一个新的隧道,并配置隧道的名称、内网服务的地址和端口等信息。
添加一个公共主机名,并填写域名和内网服务的内网地址。
通过公共主机名访问内网中的echo服务,验证内网穿透是否成功。





通过以上步骤,用户就可以成功使用Cloudflared实现内网穿透,并通过公网访问内网中部署的服务了。