Como encontrar o número de portas abertas no linux?

17

Como encontrar o número de portas abertas no linux? Quero ver se estou ficando sem portas. Além disso, como vejo o limite do meu sistema operacional?

erotsppa
fonte
2
O que você está fazendo e tem medo de ficar sem portas?
MDMarra

Respostas:

27

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        
Curtis Doty
fonte
9
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.

Grizly
fonte
o -a46 não funcionou. Qualquer ajuda?
Erotsppa
que distro você está correndo? (que funciona no servidor ubuntu 10.04 LTS). Obviamente, se você não possui o ipv6 instalado, basta usar o netstat -a.
Grizly
Testado na minha caixa do CentOS, parece que ele trava se você não usar "-n" para interromper a resolução de nomes. (netstat -an | grep ESTABELECIDO | wc -l)
Grizly
Só vi "ss" abaixo, isso é incrível, não sabia disso .. muito melhor! Use o ip_local_port_range para determinar o que seu linux está configurado para permitir, mas isso mostra o que você está usando atualmente em um formato muito mais acessível!
Grizly
8

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>"

Alex
fonte
1
nit picking, mas não é exatamente um limite de ipv4. É um limite tcp / udp. e aqueles executados independentemente do ipv4. (ex ipv6 não faz nada para a camada de transporte.)
Joel K
Aaah, você está certo. Eu removi a referência IPV4 na minha resposta.
Alex
1

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.

ThaKidd KG5ORD
fonte
1

Experimentar

# lsof -n -i -P 

Por uma questão de completude :)

Yuri
fonte
0

O netstat permitirá que você veja quais portas estão abertas, faça "netstat -" para ver o que melhor se adapta às suas necessidades.

jer.salamon
fonte
1
netstat --inetvai ajudar mais.
Paul Tomblin
Eu quis dizer -? personagem ausente.
jer.salamon
ou leia a página de manual
MDMarra
Inclua também --inet6 (abreviação de ambos: -4 -6), para obter soquetes IPv6 e soquetes ip-agnósticos (o último sendo o padrão em hosts de pilha dupla, consulte a seção 3.7 da rfc 3493).
Tobu
0

O 'nmap localhost' fornecerá todas as suas portas e serviços abertos em execução neles.

Vivek Varghese Cherian
fonte
1
não realmente, ele vai apenas portas de digitalização para 127.0.0.1, não para qualquer wan IP
Lucas Kauffman
0

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
Rajat
fonte
0

use o seguinte comando no terminal para verificar todas as portas

netstat -lntu

Para ver um status de portas específico, use o seguinte comando

netstat -an | grep ':6060'

substitua 6060 pelo seu número de porta específico.

Samuel
fonte