frp需要一台有公网IP的VPS做中转——如果你连这台VPS都不想买,Cloudflare Tunnel可能是更好的选择。免费、不需要公网IP、自带DDoS防护和HTTPS证书。本文讲清怎么把你的本地服务通过Cloudflare Tunnel暴露到公网。
和frp的核心区别
frp:需要一台VPS(有公网IP)做服务端→自己维护→自己管带宽→VPS月费几元到几十元。Cloudflare Tunnel:Cloudflare免费提供中转→不需要VPS→由Cloudflare管带宽和防护→零费用。但必须用你自己的域名且DNS托管在Cloudflare。
安装cloudflared客户端
# 在你要暴露服务的机器上(可以是家里的电脑)
# Linux
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflared
chmod +x cloudflared
sudo mv cloudflared /usr/local/bin/
# 登录Cloudflare账号
cloudflared tunnel login
# 浏览器会打开Cloudflare的授权页面→选你的域名→授权创建隧道并暴露服务
# 创建隧道
cloudflared tunnel create my-tunnel
# 配置要暴露的服务
nano ~/.cloudflared/config.yml
# 内容如下:
tunnel: UUID(创建隧道时显示的)
credentials-file: /root/.cloudflared/UUID.json
ingress:
- hostname: app.你的域名.com
service: http://localhost:8080 # 本地服务的端口
- hostname: nas.你的域名.com
service: http://192.168.1.100:5000
- service: http_status:404 # 兜底规则
# 启动隧道
cloudflared tunnel run my-tunnel
# 设为系统服务开机自启
cloudflared service install然后在Cloudflare DNS里把app.你的域名.com的CNAME指向隧道UUID.cfargotunnel.com。等几分钟DNS生效→外网访问app.你的域名.com等于访问localhost:8080。
适合什么场景
- 家里没有公网IP但想从外网访问NAS/内网服务
- 想在公网展示本地的开发项目给客户看
- 不想花钱买VPS搭frp
- 需要HTTPS和DDoS防护(Cloudflare自带)
不适合什么场景
- 大流量传输(Cloudflare Tunnel对流媒体等有大流量限制)
- 非HTTP服务(RDP、SSH、游戏服务器需要特殊配置,不如frp方便)
- 不想把域名放Cloudflare
常见问题
Cloudflare Tunnel免费版有流量限制吗?
官方没明确说但合理使用的流量Cloudflare基本不管。视频流和P2P大流量会被限制。日常网站和API没问题。
和ngrok有什么区别?
ngrok免费版限时和域名随机。Cloudflare Tunnel完全免费不限时、用你自己的域名。
安全吗?
Cloudflare Tunnel的流量经过Cloudflare的全球网络加密传输,自带HTTPS。比直接把路由器端口映射到公网安全得多。






