这是一个帮助管理本地TCP端口的工具。它可以找到一个未使用的TCP localhost端口并记住这个关联。
项目描述
port-for 是一个命令行工具和 Python 库,用于帮助管理本地 TCP 端口。
它可以找到一个未使用的 TCP localhost 端口并记住这个关联。
$ sudo port-for foo 37987
当您安装一个由多个部分组成且需要端口号的软件栈时,这可能很有用。
port-for 在寻找和返回一个新未使用的端口时遵循一些规则
端口必须是未使用的:port-for 通过尝试连接到该端口并绑定到它来检查这一点。
端口必须是 IANA 未分配的,并且在其他方面不是众所周知的:这是通过维护未分配端口列表(从 IANA 和维基百科解析)来实现的。
端口不应位于临时端口范围内。这很重要,因为来自临时端口范围的端口可能被操作系统临时分配(例如,通过机器的 IP 栈),这可能在某些情况下阻止服务重启。port-for 不会返回当前机器配置的临时端口范围内的端口。
还应用了一些启发式规则:port-for 尝试从较大的端口范围返回一个端口;它也不返回太靠近知名端口的端口。
安装
使用 easy_install 系统范围内(应已安装类似于 python-setuptools 的软件)
sudo pip install port-for
或者
sudo easy_install port-for
或者在一个虚拟环境中
pip install port-for
脚本用法
port-for <foo> 脚本寻找一个未使用的端口并将其与 <foo> 关联。后续调用将返回相同的端口号。
此实用程序实际上不会绑定端口或以其他方式阻止其他软件占用端口。它尝试选择一个不太可能被其他软件使用的端口(当然,在调用时该端口是未使用的)。实用程序还确保 port-for bar 不会返回与同一台机器上的 port-for foo 相同的端口号。
$ sudo port-for foo 37987 $ port-for foo 37987
您可能需要制定一些命名约定(例如,在应用程序名称前加前缀)以使同一服务器上的多个站点能够运行
$ sudo port-for example.com/apache 35456
请注意,port-for 脚本需要读取和写入 /etc/port-for.conf 的权限。这通常意味着普通用户可以读取端口号值,但需要 sudo 权限来关联新的端口号。
列出所有关联的端口
$ port-for --list foo: 37987 example.com/apache: 35456
删除一个关联
$ sudo port-for --unbind foo $ port-for --list example.com/apache: 35456
库用法
>>> import port_for >>> port_for.select_random() 37774 >>> port_for.select_random() 48324 >>> 80 in port_for.available_good_ports() False >>> port_for.get_port() 34455 >>> port_for.get_port("1234") 1234 >>> port_for.get_port((2000, 3000)) 2345 >>> port_for.get_port({4001, 4003, 4005}) 4005 >>> port_for.get_port([{4000, 4001}, (4100, 4200)]) 4111
更多内容请查看源代码。
贡献
开发发生在 github 上:https://github.com/kmike/port-for/
发布
首先安装 pipenv 和 -dev 依赖项,然后运行
pipenv run tbump [NEW_VERSION]
port_for-0.7.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2d597e5854a1b323b17eba8ae0630784c779857abde5e22444c88d233a60f953 |
|
MD5 | 9212bda9196260bfe5d8157876bfffe2 |
|
BLAKE2b-256 | a5d55ccbaad9c76fc1ea18644b2ec9493788a7be0bf0c3d1a0ac760fde6c388f |
port_for-0.7.3-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 786fa1171cee23093a475d65228b4a9877d249827ceb7cd2362cb7b80d0c69d4 |
|
MD5 | 339fee2fc04974aef607536c92af0007 |
|
BLAKE2b-256 | c2c5ec81f8d21589c9e3f662e4f60ac9cc68fa6fcd9f650d883c12ca490dadff |