Ответы:
В современном linux используйте утилиту ss (socket stats).
$ ss -s
Total: 10160 (kernel 10262)
TCP: 10349 (estab 8886, closed 408, orphaned 0, synrecv 0, timewait 393/0), ports 3147
Transport Total IP IPv6
* 10262 - -
RAW 0 0 0
UDP 5 5 0
TCP 9941 9941 0
INET 9946 9946 0
FRAG 0 0 0
netstat -an | grep ESTABLISHED | wc -l
даст вам количество открытых портов, 32 в моем случае.
cat /proc/sys/net/ipv4/ip_local_port_range
Вернет что-то вроде:
32768 61000
что означает, 61000 - 32768 - $ OPENPORTS = AvailablePorts
На моей коробке вот это:
61000-32768-32 = 28200 доступных номеров портов.
Как уже упоминалось, netstat - это инструмент, используемый для определения того, какие порты используются в настоящее время. Что касается ограничений, то число доступных портов - это 16-битное целое число без знака, которое дает вам диапазон 0-65535. Порты, доступные приложениям для привязки, являются зарезервированными привилегированными / корневыми портами (0-1024) плюс все, что не охватывается вашим эфемерным диапазоном портов.
Вы можете просмотреть свои эфемерные порты, запустив cat /proc/sys/net/ipv4/ip_local_port_range
.
Чтобы это постоянно изменять, вам нужно добавить / изменить "net.ipv4.ip_local_port_range" в файле /etc/sysctl.conf или интерактивно с sysctl -n net.ipv4.ip_local_port_range="<start_port> <end_port>"
Лично я предпочитаю nmap. Вы можете узнать состояние всех портов, выполнив команду nmap -P 1-65535. В большинстве дистрибутивов этот пакет должен быть доступен через менеджер пакетов.
netstat позволит вам увидеть, какие порты открыты, выполните команду «netstat -», чтобы увидеть, что лучше всего соответствует вашим потребностям.
netstat --inet
поможет больше всего.
'nmap localhost' предоставит вам все ваши открытые порты и сервисы, работающие на них.
netstat -tulnp
Аргументы для программы netstat перечислены ниже:
*
t - Show TCP
*
u - Show UDP
*
l - Show only listening processes (netstat can show both listening and all established connections, i.e. as a client too)
*
n - Do not resolve network IP address names or port numbers
*
p - Show the process name that is listening on the port