Existe algum comando de linha de comando ou qualquer outra maneira de encontrar e listar os números de porta ocupados e gratuitos na minha máquina Linux?
fonte
Existe algum comando de linha de comando ou qualquer outra maneira de encontrar e listar os números de porta ocupados e gratuitos na minha máquina Linux?
O comando
netstat -antu
mostrará todas as portas tcp e udp em uso. A saída será mais ou menos assim:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:59753 0.0.0.0:* LISTEN
O número após os dois pontos no campo Endereço local mostra a porta em uso. Se o estado for "LISTEN", significa uma porta que está sendo usada para conexões de entrada. Se o endereço IP no Local Address
campo for 0.0.0.0
, significa que as conexões de entrada serão aceitas em qualquer endereço IP atribuído a uma interface - portanto, isso significa conexões originadas fora da sua máquina.
Se disse localhost
ou 127.0.0.1
estaria apenas aceitando conexões da sua máquina.
Além disso, se você adicionar o -p
parâmetro e executá-lo como root, ele mostrará o processo que abriu a porta:
$ sudo netstat -antup
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:59753 0.0.0.0:* LISTEN 860/rpc.statd
Qualquer coisa que não seja mostrada como sendo usada é gratuita, no entanto, os usuários (contas sem privilégios) só podem abrir portas acima de 1023.
-antu
pode ser escrito como-tuna
🐟Eu mesmo compilei uma pequena lista .
Alguns dos meus favoritos são:
fonte
Uma maneira boa e confiável de verificar se há portas abertas está usando
ss
(substituindo as obsoletasnetstat
), é utilizável em um script sem exigir privilégios elevados (ou sejasudo
).Uso: opção
-l
para escutar portas, opção-n
para ignorar a resolução DNS e o filtro na porta de origemNN
:src :NN
(substituaNN
pela porta que você deseja monitorar). Para mais opções, consulteman ss
Exemplos:
E em um script, usando grep, podemos testar se a saída contém a porta que solicitamos. Exemplo com a porta 80 em uso (veja acima):
Exemplo com a porta 81 não em uso (veja acima)
fonte
Outra maneira:
Se a porta estiver livre, você receberá um erro. Se a porta estiver em uso, o telnet se conectará.
(encontrado em http://www.unix.com/unix-for-dummies-questions-and-answers/8456-how-know-whether-particular-port-number-free-not.html )
fonte