Respostas:
No linux moderno, use o utilitário 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
lhe dará o número de portas abertas, 32 no meu caso.
cat /proc/sys/net/ipv4/ip_local_port_range
Retornará algo como:
32768 61000
o que significa que 61000 - 32768 - $ OPENPORTS = AvailablePorts
Na minha caixa, isso é:
61000-32768-32 = 28200 números de porta disponíveis.
Como outros já mencionaram, o netstat é a ferramenta a ser usada para determinar quais portas estão em uso atualmente. Quanto aos limites, o número de portas disponíveis é um número inteiro sem sinal de 16 bits, que fornece o intervalo de 0 a 65535. As portas disponíveis para conexão aos aplicativos são as portas privilegiadas / raiz reservadas (0 a 1024), mais o que não estiver coberto pelo seu intervalo de portas efêmero.
Você pode visualizar suas portas efêmeras executando cat /proc/sys/net/ipv4/ip_local_port_range
.
Para modificar isso persistentemente, você teria que adicionar / modificar "net.ipv4.ip_local_port_range" no arquivo /etc/sysctl.conf ou interativamente com sysctl -n net.ipv4.ip_local_port_range="<start_port> <end_port>"
Pessoalmente, eu prefiro o nmap. Você pode encontrar o estado de todas as portas emitindo o nmap -P 1-65535 target. A maioria das distribuições deve ter esse pacote disponível por meio do gerenciador de pacotes.
O netstat permitirá que você veja quais portas estão abertas, faça "netstat -" para ver o que melhor se adapta às suas necessidades.
netstat --inet
vai ajudar mais.
O 'nmap localhost' fornecerá todas as suas portas e serviços abertos em execução neles.
netstat -tulnp
Os argumentos para o programa netstat estão listados abaixo:
*
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