内网穿透是帮助用户将本地服务暴露到互联网的一种方式,使得外部用户能够通过公共网络访问内部资源。使用Cloudflare进行内网穿透,可以实现更高的安全性、性能优化和更简便的配置。
Cloudflare内网穿透是一种利用Cloudflare的服务,通过其隧道功能(Cloudflare Tunnel,原Argo Tunnel)将内网中的服务安全地暴露到公网的解决方案。与传统的端口映射或NAT相比,Cloudflare内网穿透具有以下优势:
在开始配置前,需要准备以下资源和工具:
cloudflared
的工具,用于建立隧道。如果尚未将域名接入Cloudflare,可以按照以下步骤操作:
cloudflared
是Cloudflare Tunnel的客户端工具,用于本地建立隧道。以下是安装步骤:cloudflared
Windows版本:。cloudflared.exe
放到一个可执行路径,例如 C:\Program Files\Cloudflared
。cloudflared --version
使用包管理器安装:
sudo apt update
sudo apt install cloudflared
验证安装:
cloudflared --version
brew install cloudflared
cloudflared --version
登录Cloudflare账户,进入“Zero Trust”控制台。
在左侧菜单中选择 Access > Tunnels,点击“创建隧道”。
my-tunnel
。系统会生成一个命令,用于认证本地客户端和Cloudflare账户,例如:
cloudflared login
运行该命令并完成认证。
在本地运行以下命令以创建隧道:
cloudflared tunnel create my-tunnel
系统会生成隧道的ID和认证密钥,请妥善保存。
https://subdomain.yourdomain.com
:cloudflared tunnel route dns my-tunnel subdomain.yourdomain.com
cloudflared
配置文件(路径通常为 /etc/cloudflared/config.yml
或 C:\ProgramData\cloudflared\config.yml
),内容如下:tunnel: my-tunnel
credentials-file: /path/to/credentials.json
ingress:
- hostname: subdomain.yourdomain.com
service: http://localhost:8000
- service: http_status:404
hostname
:外部访问的域名。service
:本地服务的地址,例如 http://localhost:8000
。cloudflared tunnel run my-tunnel
https://subdomain.yourdomain.com
,验证服务是否正常运行。cloudflared
为服务:sudo cloudflared service install
sudo systemctl start cloudflared
cloudflared tunnel run my-tunnel --loglevel debug
通过Cloudflare内网穿透,可以轻松地将本地服务安全地暴露到互联网,无需复杂的网络配置,同时享受Cloudflare提供的性能和安全加持。