DNS 组件方案
一句话版:端口负载均衡能把 6w 个身份端口"摊开扛",但 6w 这个墙还在。DNS 组件把"身份"从端口号搬到域名上——门牌号不用挤在端口里了,上限自然消失。
一、为 什么会有"6w 墙"
在纯端口模式下,隧道的身份 = 服务端实例的端口号:
身份 = 用户名 + 节点地址 + 端口号
端口号总共就 65535 个,扣掉系统占用,约 6w 可用。身份靠端口编号,端口数量就有天然硬顶——这不是多买几台机器能解决的,是"门牌号就这么多"。
二、DNS 组件的思路:换一种"门牌"
端口负载均衡只是让 6w 个端口分摊到更多入口去接待,数量墙本身没破。DNS 组件的思路是:别再让身份挤在端口里,给每条隧道一个"名字"(域名级身份)。
原来:身份 = ……:端口号 (端口号上限 ≈6w)
升级:身份 = ……:专属域名记录 (域名数量不受端口约束)
- 每条隧道/每个身份拿到独立域名记录;
- 用户访问时,先问 DNS 组件:"我要找的这个身份,现在该去哪个入口?";
- DNS 组件像一本动态电话簿:按身份查入口、按健康状态换入口、按负载引导入口。
三、它凭什么突破上限
| 端口模式 | DNS 模式 | |
|---|---|---|
| 身份载体 | 端口号 | 域名记录 |
| 数量上限 | 约 6w | 无上限(域名记录可无限建) |
| 找入口方式 | 固定端口/映射 | 每次解析实时告诉你去哪 |
| 单点风险 | 入口坏了要等切换 | 解析结果随时可换到健康入口 |
关键点:身份数量上限的本质约束从"端口空间"换成了"域名空间",而域名空间几乎无限——6w 这道墙就被拆掉了。
四、它和高可用怎么配合
- 实时指路:某个入口故障,DNS 组件立刻把新解析指向健康入口;
- 就近接入:同一身份在不同地区,可以解析到更近的集群/节点;
- 平滑扩容:加节点、加入口,只在 DNS 组件里登记即可,用户无感。
五、它和"域名访问"不是一回事
别混淆:
- HTTP 网关的域名访问:用户用域名访问网页,走 HTTP/HTTPS 协议;
- DNS 组件:管"身份 → 入口"的寻址,让任何协议(网页、数据库、游戏…)都能用名字找到路。
两者可以叠加:DNS 负责指路,HTTP 网关负责接网页客,各司其职。
六、小结
记住内网云:端口当身份,门牌就 6 万;DNS 当电话簿,身份用名字,墙拆了,容量随便长。