惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
腾讯CDC
WordPress大学
WordPress大学
爱范儿
爱范儿
GbyAI
GbyAI
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
Google DeepMind News
Google DeepMind News
Recent Announcements
Recent Announcements
Latest news
Latest news
Last Week in AI
Last Week in AI
V2EX - 技术
V2EX - 技术
I
InfoQ
N
News | PayPal Newsroom
SecWiki News
SecWiki News
Microsoft Azure Blog
Microsoft Azure Blog
美团技术团队
T
Troy Hunt's Blog
H
Hacker News: Front Page
S
SegmentFault 最新的问题
TaoSecurity Blog
TaoSecurity Blog
V
Visual Studio Blog
Martin Fowler
Martin Fowler
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园_首页
S
Security @ Cisco Blogs
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
小众软件
小众软件
L
LangChain Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tor Project blog
L
LINUX DO - 热门话题
月光博客
月光博客
S
Schneier on Security
Y
Y Combinator Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
P
Proofpoint News Feed
Forbes - Security
Forbes - Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hugging Face - Blog
Hugging Face - Blog
A
Arctic Wolf
Webroot Blog
Webroot Blog
博客园 - 叶小钗
F
Fortinet All Blogs
S
Securelist
AI
AI
B
Blog RSS Feed
Security Latest
Security Latest

博客园 - 悠哉大斌

AI Agent 安全沙箱技术对比:E2B、Cube Sandbox 与 Docker Sandboxes linux 升级 claude code的坑 debian(WSL) apt 代理配置 linux内核之Namespaces、Cgroups、Capabilities、Seccomp和Landlock 大语言模型推理中的隐藏瓶颈及其解决方法 Docker Sandboxes 技术是什么,和docker容器有什么区别 什么是 Docker Agent以及一个Docker Agent示例 windows wsl 安装 Temurin® JDK claude Code 和 codex 作为编程代理,前者使用typescript开发,后者使用rust,他们的决策依据是什么 Java 并发编程发展史与 java.util.concurrent 全景解析 LLM 真的改变了编码风格吗? 如果人工智能会犯错且不精确,为什么它正在改变世界? Python 的协程模型和 JavaScript 的 async/await python闭包和function.__closure__特殊属性 python 的 dunder name和 sunder name 基于nodejs设计REST API的知名开源框架 windows上使用node-oracledb Thick 模式连接 Oracle 11g Claude Code CLI连接 DeepSeek V4模型后调用报400错误 python里对象(object)到底是什么 Python 泛型演变史 Python 类型别名的演变 Python 类型提示的演变史 PEP 593 新增的Annotated 类型 Alibaba AgentScope 和 microsoft agent framework 详细对比分析 spring AI Alibaba Agent Framework 和 agentscope有什么区别和联系 AI Agent协作模式以及主流开源框架对协作模式的支持 Tailscale 是如何接管 DNS 的? Agent = Model + Harness 使用rust编写typescript编译器的难点在什么地方,哪些数据结构是rust不擅长的? TypeScript/JavaScript 中的异步迭代语句 js中的生成器函数 openclaw gateway的网络绑定模式 websocket协议和http协议有何依赖关系? MCP通信的双方是谁? claude code MCP 安装范围 如何在wsl2环境下给claude code cli 配置 playwright-mcp wsl的网络模式有哪几种,有哪些区别? AI Agent memory是什么? ai agent skills是什么? Go测试生态系统工具与最佳实践深度调研(聚焦认证授权系统) 线性代数中常见矩阵类型的概念关系思维导图 三种主流授权策略
Tailscale Serve and Funnel
悠哉大斌 · 2026-02-02 · via 博客园 - 悠哉大斌

Tailscale Serve 和 Funnel 是一对用于网络共享的核心功能,它们由零信任网络服务提供商 Tailscale 开发。简单来说,Serve 用于内部安全共享,而 Funnel 用于安全地公开服务

为了能快速理解并选择合适的功能,它们的核心区别总结如下:

特性 Tailscale Serve Tailscale Funnel
核心用途 在 Tailscale 内部网络(Tailnet)中安全共享本地服务。 将本地服务安全地公开到整个互联网
访问范围 仅限于你的 Tailnet 内的设备或用户(包括已接受共享的外部用户)。 对互联网上的任何人开放(需在 ACL 中明确允许)。
典型场景 内部协作、开发测试预览、私有文件共享。 公开演示、临时分享给无 Tailscale 账户的客户。
身份验证 自动且强认证。通过 Tailscale 网络加密,并可为后端服务提供用户身份头信息。 依赖 Tailscale 的网络层安全,公开访问时不附带用户身份头信息。
URL 格式 https://<设备名>.<你的tailnet>.ts.net https://<设备名>.<你的tailnet>.ts.net:端口 (需显式指定端口)。
HTTPS 证书 由 Tailscale 自动签发和管理,使用你的 Tailnet 专属域名。 由 Tailscale 自动签发和管理,使用你的 Tailnet 专属域名。

🛠️ 主要功能与应用场景

Tailscale Serve 的主要作用是将运行在你设备上的服务变成你整个Tailnet内可访问的“内部网站”。其常见用途包括:

  • 共享本地开发服务器:例如,将运行在 localhost:3000 的开发网页应用分享给同事预览。
  • 搭建临时文件服务器:快速分享一个文件夹内的文件,比传输文件更高效。
  • 绑定内部服务:将设备的SSH等服务绑定到Tailscale IP,便于内部安全访问。
  • 共享稳定节点:可以设置一个固定名称的节点(如 demo-server.your-tailnet.ts.net),供多人轮流共享其上的服务,保持URL不变。

Tailscale Funnel 则是在 Serve 的基础上,在 Tailnet ACL 策略允许的前提下,为指定的服务开启一个面向公网的“漏斗”,使其能被互联网上的任何人访问。这是一个让你能随时、可控地将内部服务公开的理想工具。

⚙️ 基本使用方法与安全特性

两者的基本命令格式都非常直接。

Serve 的基础命令tailscale serve <目标>。其中<目标>可以是端口号(如 3000)、本地文件路径或静态文本。

Funnel 的基础命令tailscale funnel <端口号>。该命令会将指定端口对应的 Serve 服务开放到公网。

一个重要且方便的特性是,无论是 Serve 还是 Funnel,Tailscale 都会为你的设备自动生成一个唯一的、基于 TLS 的 HTTPS 域名(格式如 your-device.your-tailnet.ts.net),你无需自己配置 SSL 证书。

在安全方面,Serve 在为内网流量转发请求时,会向后端服务添加包含请求者身份(如登录邮箱、显示名)的 HTTP 头信息(如 Tailscale-User-Login),方便后端进行精细的权限控制。

⚠️ 关键限制与注意事项

在使用时,有几个重要的限制需要了解:

  1. 端口互斥同一个端口不能同时用于 Serve(仅内网)和 Funnel(公开)。最后执行的命令决定该端口的状态(serve 使端口完全私有,funnel 使端口完全公开)。
  2. macOS 文件共享限制:由于 macOS 应用沙盒限制,通过 Mac App Store 等安装的 Tailscale 客户端无法使用 Serve 共享文件和目录,只能共享端口。如需此功能,需使用开源版本。
  3. Funnel 默认开启:Funnel 功能在设备上是默认启用的。如果你确定不需要,可以手动关闭它以简化配置。
  4. 网络依赖:使用 Funnel 公开服务时,你的设备需要保持在线并与 Tailscale 网络连接。

💡 总结与如何选择

总的来说,Tailscale Serve 和 Funnel 让你能以前所未有的简便和安全方式分享网络服务:

  • 对内协作,需要与团队、同事安全地共享开发环境或文件,优先使用 Serve
  • 对外公开,需要临时将演示版、测试链接分享给没有 Tailscale 账户的外部人员,就使用 Funnel

它们的结合覆盖了从私有到公开的完整服务暴露需求,核心优势在于 自动化(HTTPS证书、域名)安全性(基于零信任网络)

Tailscale Serve 例子

# 检查本主机 tailscale 服务是否正常(可以访问 https://login.tailscale.com/admin/machines 登录查看已经加入网络的主机)
sudo tailscale status

# 主机启动 Serve
sudo tailscale serve --bg http://127.0.0.1:3000

# 启动完毕后会返回一个https访问地址,将这个地址在另外一台主机上打开即可(两台主机必须是同一个tailscale网络,否则打不开)
https://xxx.tailxxx.ts.net (tailnet only)
|-- / proxy http://127.0.0.1:3000

# 查看所有已配置的 Serve 服务
sudo tailscale serve status

# 停止共享服务
sudo tailscale serve reset