Tailscale Funnel 与 Tailscale SSH:公网暴露安全实践

摘要 Tailscale Funnel(公网 HTTPS 暴露)和 SSH(ts ssh Tailscale 托管 SSH)是两种核心公网暴露机制。Funnel 通过 --funnel CLI 实现公网反代,自动 Let’s Encrypt 证书;SSH 利用 Node Key 绕过传统公钥认证,依赖 ACL/Grants 细粒度控制。零信任原则:默认拒绝,ACL/Grants 显式授权。 1. Tailscale Funnel:公网 HTTPS 暴露核心 Funnel (tailscale funnel <target>) 将本地服务/文件暴露至公网 HTTPS,TLS 终止于 Tailscale Daemon。关键约束: 端口限制:仅 443/8443/10000。 Target 类型: 类型 示例 行为 HTTP 反代 tailscale funnel localhost:3000 公网 → ts.net → 127.0.0.1:3000 (HTTP) 文件/目录 tailscale funnel /path/to/dir 目录列表 + 文件服务 静态文本 tailscale funnel 'text:Hello World' 纯文本响应 TLS 终止 TCP --tls-terminated-tcp=443 localhost:8443 TCP 转发 + TLS 卸载 CLI 示例(持久化 --bg): s # # u d 状 关 o 态 闭 : : t a t t i a a l i i s l l c s s a c c l a a e l l e e f u f f n u u n n n e n n l e e l l - s 4 b t 4 g a 3 t u o - s f h f t t - p j s s = o 4 n 4 3 l o c a l h o s t : 8 0 8 0 DNS:稳定 node.ts.net 子域,自动 CNAME 管理。 PROXY Protocol:--proxy-protocol=2 保留客户端真实 IP(后端可见原 IP/端口)。 2. Tailscale Serve vs Funnel:内部 vs 公网对比 维度 Serve (tailscale serve) Funnel (tailscale funnel) 范围 Tailnet 内(MagicDNS/100.x IP) 公网(ts.net HTTPS) TLS 可选 Let’s Encrypt 强制,Daemon 自动颁发/续期 端口 任意本地端口转发 限 443/8443/10000 用例 内网调试/协作 临时公网 Demo/Webhook 测试 风险 Tailnet ACL 隔离 公网暴露,强制 ACL + Lock 3. Tailscale SSH:托管 SSH 机制 tailscale ssh [user@]host 利用 WireGuard Node Key 双层加密,绕过传统 ~/.ssh/authorized_keys: ...

April 3, 2026