port-for is a command-line utility and a python library that helps with local TCP ports management.
It can find an unused TCP localhost port and remember the association::
$ sudo port-for foo 37987
This can be useful when you are installing a stack of software with multiple parts needing port numbers.
There are several rules port-for is trying to follow to find and return a new unused port:
Port must be unused: port-for checks this by trying to connect to the port and to bind to it.
Port must be IANA unassigned and otherwise not well-known: this is acheived by maintaining unassigned ports list (parsed from IANA and Wikipedia).
Port shouldn't be inside ephemeral port range. This is important because ports from ephemeral port range can be assigned temporary by OS (e.g. by machine's IP stack) and this may prevent service restart in some circumstances.
port-fordoesn't return ports from ephemeral port ranges configured at the current machine.
Other heuristics are also applied:
port-fortries to return a port from larger port ranges; it also doesn't return ports that are too close to well-known ports.
|Package Version||Update ID||Released||Package Hub Version||Platforms||Subpackages|
|0.4-bp154.1.21 info||GA Release||2022-05-09||15 SP4||
|0.4-bp153.1.16 info||GA Release||2021-03-06||15 SP3||
|0.4-bp152.1.10 info||GA Release||2020-04-17||15 SP2||