你的浏览器地址栏里,http://grafana.local 旁边那个刺眼的"不安全"警告,是不是已经看腻了?这是家庭服务器玩家的共同痛点——本地服务好用,但一涉及外网访问,要么暴露端口赌运气,要么花钱买证书折腾反向代理。
Cloudflare Tunnel提供了一条完全不同的路:服务器主动向外建立加密连接,路由器上零端口开放,还能白嫖正规HTTPS证书。配合Zero Trust的权限管控,你的家庭服务既能安全触达公网,又不会裸奔在互联网上。
![]()
整个方案的核心在于"出站优先"架构。传统做法需要路由器开放80/443端口,让外部流量打进来;而Cloudflare Tunnel在服务器本地运行一个叫cloudflared的轻量程序,主动连接到Cloudflare的边缘网络。流量方向反过来,攻击面就趋近于零——你的路由器对公网完全隐身。
准备工作只需要一个公开域名。尼泊尔公民有个隐藏福利:.com.np域名终身免费注册,个人项目完全够用。拿到域名后,在Cloudflare控制台进入Zero Trust菜单,免费开通服务,设置团队名称(比如my-lab),系统会生成专属登录地址。
隧道创建在Networks > Tunnels页面完成。选择Cloudflared作为连接器类型,命名后进入部署环节。控制台会提供一条docker run命令,里面嵌着唯一密钥——但别急着复制粘贴,改成docker-compose.yml更利于长期维护。
配置的关键在于网络衔接。假设你之前用Nginx Proxy Manager(本系列第二部分部署的),cloudflared容器必须接入npm_default网络,才能与NPM互通。compose文件结构很简单:cloudflare/cloudflared:latest镜像,tunnel --no-autoupdate run --token <密钥> 作为启动命令,外加external: true引用外部网络。docker compose up -d启动后,控制台Connectors区域应显示Healthy状态。
接下来是流量路由的设计。Cloudflare Tunnel负责把公网请求送进你的服务器,但具体转发到哪个内部服务、怎么做域名映射,需要配合Nginx Proxy Manager完成。这种分层架构让证书管理和访问控制可以解耦处理——Tunnel保连接,NPM做网关,Zero Trust管身份。
最终效果:grafana.your-domain.com这样的子域名指向完全私有的本地服务,浏览器显示绿色锁标,路由器防火墙日志里找不到任何异常入站连接。对于想把家庭服务器从"局域网玩具"升级为"可靠基础设施"的人来说,这是目前零成本方案里工程化程度最高的一条路径。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.