首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >免公网IP、自动HTTPS!手把手教你用 Tailscale Funnel 一键安全发布内网服务

免公网IP、自动HTTPS!手把手教你用 Tailscale Funnel 一键安全发布内网服务

作者头像
用户12547393
发布2026-06-26 20:26:19
发布2026-06-26 20:26:19
2270
举报
Tailscale Funnel 封面
Tailscale Funnel 封面

[!NOTE] 很多做微信小程序开发、Web 前端联调或者自己折腾私有云的小伙伴,都遇到过需要把本地服务“临时暴露”给外网用户的需求。以往我们需要公网 IP 并在路由器上做复杂的端口映射。今天老周手把手教大家使用 Tailscale Funnel(沙漏服务),无需任何公网 IP 和端口映射,也不需要自己申请和配置 SSL 证书,一键就能安全地把本地网页端口安全地映射到公网,并自动获得安全的 HTTPS 链接!本教程仅用于个人多设备互联与合规的远程办公场景。


亲爱的读者,欢迎回到 老周的AI进化实验室

在前面的文章中,老周分享了许多关于自建自连虚拟网络的实战。但很多小伙伴给老周留言:“老周,自建组网固然好用,但前提是我的设备必须安装 Tailscale 客户端。如果我要写个小程序测试接口,需要微信官方的服务器来回调我本地的网页;或者要临时把写好的前端 Demo 网页发给客户审查,对方根本没装客户端,这该怎么破?”

答案很简单:使用 Tailscale Funnel

这是 Tailscale 官方提供的一个极其优雅的网络沙漏(Funnel)暴露功能。它允许您无需在公网配置任何防火墙端口映射,就可以直接将本地运行的某个端口(如 8080),安全地对外暴露成一个具有 Let's Encrypt 证书保护的公网 HTTPS 链接(如 https://your-node.tailnet-xxxx.ts.net)。

今天,老周就手把手带大家玩转这个开发调试与合规办公的神器。


⚖️ 为什么选择 Tailscale Funnel?

对比传统的端口映射或自建穿透,Tailscale Funnel 有以下几个无法抗拒的优势:

  • 零配置自动 HTTPS 证书:你不需要去买域名、不需要在本地配置 Nginx 并去申请 Let's Encrypt 证书。一旦开启,Tailscale 会自动在云端网关为您完成域名的 TLS 证书解析和签发。
  • 无需公网 IP 和端口映射:即使你处于最复杂的运营商多重 NAT 宽带网关内,也能直接暴露成功。
  • 安全可控:这是临时开发联调的绝佳工具。它仅仅将本地的一个特定网页服务端口露出来,比直接在路由器上做 DMZ 映射宿主机要安全得多,且可以随时一键关闭。

⚠️ 法律与安全合规提示: 根据国内网络安全法律规范,面向公众的长期商业网站和 Web 业务必须在云服务商处进行 ICP 备案。因此,老周在这里严肃提醒:Tailscale Funnel 仅适用于开发调试、接口临时联调、以及合规的远程个人办公协作。请勿将其用于搭建任何长期的、非法的公共商业网站或分发未经授权的内容。


🛠️ 第一步:在控制台开启 Funnel 准入权限

出于安全考虑,Tailscale 默认是不允许任何节点直接开启 Funnel 暴露服务的。我们需要先在管理员控制台授予相关权限。

  1. 登录您的 Tailscale 后台控制面板。
  2. 导航到 Access Control (访问控制) 选项卡。
  3. 在 ACL 策略 JSON 配置文件中,检查并添加 nodeAttrs 属性以允许您的设备(或带特定标签的设备)启用 funnel。例如(默认配置中通常已包含这一段,如果没有,请手动补齐):
代码语言:javascript
复制
"nodeAttrs":[{"target":["member"],"attr":["funnel"],},]

点击 Save 保存配置。


🐋 第二步:使用 tailscale serve 绑定本地服务

在开启 Funnel 暴露到公网前,我们首先需要配置本地的 tailscale serve

tailscale serve 的作用是将您本地设备上运行的服务(例如运行在 127.0.0.1:8080 上的 Web 前端测试网页),映射到 Tailscale 客户端的本地虚拟域名接口上。

我们以本地运行在 8080 端口的网页服务为例,在终端中运行以下命令:

代码语言:javascript
复制
tailscaleservehttps:443/http://127.0.0.1:8080 

命令原理解析: 这条命令告诉本地的 Tailscale 客户端,在本地的 Tailscale 虚拟网段里监听 HTTPS 443 端口,并将收到的请求转发给本地回环地址运行在 8080 端口上的 Web 服务。由于 Tailscale 自动处理了证书,您在本机直接访问输出的虚拟域名即可实现本地 HTTPS 加密访问。


🚀 第三步:一键开启 Funnel 暴露到互联网

当本地 serve 配置成功,且能够通过 Tailscale 内网访问后,我们就可以执行最核心的命令,将其推送到公网了!

在终端运行以下命令:

代码语言:javascript
复制
tailscalefunnel443on 

执行后,客户端会输出一段您的公网访问域名,例如:

代码语言:javascript
复制
https://my-macbook.tailnet-xxxx.ts.net/ 

此时,任何人在任何互联网网络下(无需安装 Tailscale 客户端),在浏览器中直接打开这个链接,就能安全地访问到您本地正在开发调试的 8080 端口服务了!

📌 如何检查暴露状态?

您可以随时通过以下命令查看当前本地的映射以及 Funnel 状态:

代码语言:javascript
复制
tailscalefunnelstatus 

🔒 第四步:临时使用完后,一键关闭

作为极客,我们必须保证最小化暴露原则。当我们完成微信小程序接口调试,或者客户看完了前端 Demo 网页之后,务必第一时间关闭 Funnel 通道

仅关闭 Funnel 公网暴露(依然保留内网 Tailscale 访问)bash tailscale funnel 443 off

彻底关闭本地 serve 映射bash tailscale serve reset


💡 老周总结

Tailscale Funnel 是一项极具生产力的网络工具。它避开了繁琐的公网映射与证书申请流程,为开发工程师、设计师和远程办公人群提供了一条极度安全、随开随关、防线清晰的“网络临时通道”。

如果在配置 Funnel 权限或命令执行中遇到阻碍,欢迎在留言区给老周留言,我们一起探讨解决!


[!TIP] 觉得本期教程实用?别忘了点击“关注”老周的AI进化实验室,并把文章分享给身边同样饱受远控限速折扰的极客朋友们!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老周的AI进化实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ⚖️ 为什么选择 Tailscale Funnel?
  • 🛠️ 第一步:在控制台开启 Funnel 准入权限
  • 🐋 第二步:使用 tailscale serve 绑定本地服务
  • 🚀 第三步:一键开启 Funnel 暴露到互联网
    • 📌 如何检查暴露状态?
  • 🔒 第四步:临时使用完后,一键关闭
  • 💡 老周总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档