Language : 🇺🇸 English | 🇨🇳 简体中文
port-selector
是一个底层由 Rust 实现的跨平台 NodeJS 库, 主要提供端口可用性检查和根据条件筛选端口的功能.
- Node.js (>= 10.0.0 required, LTS preferred)
npm install port-selector
# or
yarn add port-selector
# or
pnpm i port-selector
import {
Selector,
isFree,
isFreeTcp,
isFreeUdp,
randomFreePort,
randomFreeTcpPort,
randomFreeUdpPort,
selectFreePort,
selectFromGivenPort
} from 'port-selector'
isFree · isFreeTcp · isFreeUdp · randomFreePort · randomFreeTcpPort · randomFreeUdpPort · selectFromGivenPort · selectFreePort
检查端口在 tcp && udp 上是否未使用
function isFree(port: number): boolean
检查端口在 tcp 上是否未使用
function isFreeTcp(port: number): boolean
检查端口在 udp 上是否未使用
function isFreeUdp(port: number): boolean
由系统随机分配可用 tcp && udp 端口
function randomFreePort(): number
由系统随机分配可用 tcp 端口
function randomFreeTcpPort(): number
由系统随机分配可用 udp 端口
function randomFreeUdpPort(): number
从 starterPort
开始检查, 返回第一个可用端口
如果 starterPort
可用, 则返回; 否则 starterPort += 1
, 直到端口可用
function selectFromGivenPort(starterPort: number): number
根据 Selector
参数约束获取一个满足条件的端口
function selectFreePort(selector?: Selector): number
export type Selector = {
// 是否检查端口在 tcp 上可用, 默认值 true
checkTcp?: boolean
// 是否检查端口在 udp 上可用, 默认值 true
checkUdp?: boolean
// 设置生成的端口范围, 起始值
// 默认值: 0
portFrom?: number
// 设置生成的端口范围, 结束值
// 默认值: 65535
portTo?: number
// 最大随机次数, 默认值 100
// 如果在最大随机次数的循环之内都没有找到可用端口号, 则返回 None
maxRandomTimes?: number
}