使用 crypto.getRandomValues 在本地生成——绝不外传。
功能说明
从你选择的端口段中生成随机 TCP/UDP 端口号。工具在页面载入时和每次选项变化时生成。选择范围(Registered、Ephemeral 或 Any),设置数量为 1 到 1,000,并在端口不得重复时开启唯一开关。单个值以大号字体显示;批量则以列表呈现。随机性来自本地 crypto.getRandomValues。
使用方法
- 选择范围。Registered(1024-49151)是默认值,也是最常用的选择。
- 设置数量(1 到 1,000)。
- 如果端口必须互不相同,开启唯一。
- 复制结果。
示例
来自 Registered 段的五个唯一端口:32764、21044、48812、18377、40291。
来自 Ephemeral 段的三个端口:52143、49872、61009。
两份列表中的每个值都落在各自的段内。这就是工具唯一的职责,而“唯一”开关还保证它们绝不重复。
TCP 端口的工作原理
端口是一个 16 位数字:1 到 65535。IANA 把这段空间分成三个段:
| 段 | 范围 | 数量 | 用途 |
|---|---|---|---|
| Well-known(熟知端口) | 1-1023 | 1,023 | 系统服务:HTTP 80、HTTPS 443、SSH 22、DNS 53 |
| Registered(注册端口) | 1024-49151 | 48,128 | 在 IANA 注册的应用:MySQL 3306、PostgreSQL 5432 |
| Ephemeral(临时端口) | 49152-65535 | 16,384 | 客户端出站连接,由操作系统挑选 |
为什么开发者给本地服务选 Registered 段:
- 低于 1024 时,绑定需要 root 或管理员权限。为开发服务器动用
sudo是一笔错误的交易。 - 在 49152-65535 内,操作系统随时可能把你的端口分给任何一个出站连接。你的监听器于是与系统赛跑,可能绑定失败。
- Registered 中段默认很安静:48,128 个值里只有知名守护进程会占用少数几个。随机挑一个,避开最出名的几个(3306、5432、6379、8080),冲突就消失了。
唯一的工作方式。 工具对整个段做部分 Fisher-Yates 洗牌,取前 count 个结果——每个端口在构造上就互不相同,无需拒绝循环。上限是算术性的:Ephemeral 段只有 16,384 个值,因此请求 20,000 个唯一的 Ephemeral 端口是不可能的。当数量超过段的容量时,生成失败,工具清空结果。扩大范围或调低数量。
补充说明
- 唯一没有代价,直到你超出段的容量;那时它会明确报错,而不是悄悄重复。
- 一个端口,一个协议。 同号的 TCP 端口和 UDP 端口是两个独立的端点;本工具生成的是数字,不是绑定。
- 私密: 随机性来自本地
crypto.getRandomValues。 - 相关工具: MAC Address Generator、
ULIDULIDA 128-bit identifier like a UUID, but timestamp-prefixed and Crockford-base32 encoded — so it sorts by creation time and is shorter to read.
Generator。