Como posso ver quais portas estão abertas na minha máquina?

148

Gostaria de ver quais portas estão abertas na minha máquina, por exemplo, quais portas minha máquina está ouvindo. Por exemplo, porta 80 se eu tiver instalado um servidor web, e assim por diante.

Existe algum comando para isso?

Jonas
fonte

Respostas:

113

nmap Instalar nmap

O Nmap ("Network Mapper") é um utilitário gratuito e de código aberto para exploração de rede ou auditoria de segurança

nmap 192.168.1.33 PC interno ou nmap external ip address

Mais Informações man nmap

hhlp
fonte
11
Obrigado, nmap localhostfuncionou muito bem.
Jonas19 /
11
Lembre-se que há uma diferença entre nmap localhoste nmap 192.168.0.3(ou o que quer que você IP da máquina é)
LassePoulsen
6
Eu acho que o netstat é uma resposta melhor para isso. O netstat listará o que o sistema está ouvindo diretamente, e sem usar um aplicativo adicional ou fazer chamadas desnecessárias no host local ou na rede.
Mathieu Trudel-Lapierre
2
Isso é estúpido. Se você tiver acesso ao computador, basta usar netstat -ln. Você verá instantaneamente todas as portas abertas.
Alexis Wilke
1
nmap localhostnão encontrou serviços vinculados apenas ao localhost. Por exemplo, eu corro influxdcom bind-address:localhost:8086. Isso não apareceu sudo nmap localhost, mas apareceu sudo netstat -tulpn.
Dan Dascalescu 18/01/19
279

Eu sempre usei isso:

sudo netstat -ntlp | grep LISTEN
SiLeNCeD
fonte
4
sudo netstat -ntlp | grep LISTEN... use de sudooutra forma ... pid não será impresso.
Rafaf Tahsin 28/08/19
6
-ljá filtra para ouvir. grep LISTENnão ajudará além de ocultar duas linhas de informações do cabeçalho.
Dan Dascalescu 18/01/19
3
-t: tcp,: -lsocket de escuta -p,: mostra o nome do pid e do programa,: -nimprime em 127.0.0.1:80vez de localhost:http. Referência: linux.die.net/man/8/netstat
Rick
1
instalar netstatcomsudo apt-get install net-tools
RichArt 28/10
2
O comando expandido é sudo netstat --tcp --listening --programs --numeric. Não há necessidade de usar, a grepmenos que você queira eliminar os cabeçalhos das colunas.
Patrick Dark
60

Outras boas maneiras de descobrir quais portas estão listando e quais são suas regras de firewall:

  • sudo netstat -tulpn

  • sudo ufw status

nathwill
fonte
Eu mudo a resposta nmapnovamente, a usabilidade de netstaté uma porcaria.
Jonas
2
@ Jonas: veja meu comentário sob a resposta nmap. Ele não listará os serviços vinculados apenas ao host local.
Dan Dascalescu 18/01/19
27

Para listar portas abertas, use o netstatcomando

Por exemplo:

    $ sudo netstat -tulpn | grep LISTEN
    tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      5452/dnsmasq    
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1037/cupsd      
    tcp6       0      0 ::1:631                 :::*                    LISTEN      1037/cupsd

No exemplo acima, três serviços estão vinculados ao endereço de loopback.

Os serviços IPv4 vinculados ao endereço de loopback "127.0.0.1" estão disponíveis apenas na máquina local. O endereço de loopback equivalente para IPv6 é ":: 1". O endereço IPv4 "0.0.0.0" significa "qualquer endereço IP", o que significa que outras máquinas podem se conectar a qualquer uma das interfaces de rede configuradas localmente na porta específica.

Outro método é usar o lsofcomando:

    $ sudo lsof -nP -i | grep LISTEN
    cupsd     1037   root    9u  IPv6  11276      0t0  TCP [::1]:631 (LISTEN)
    cupsd     1037   root   10u  IPv4  11277      0t0  TCP 127.0.0.1:631 (LISTEN)
    dnsmasq   5452 nobody    5u  IPv4 212707      0t0  TCP 127.0.0.1:53 (LISTEN)

Para mais detalhes, consulte man netstatou man lsof.

inetpro
fonte
3
Eu pensei que a -lopção era listar LISTENportas. Então o grep seria supérfluo aqui ?!
Alexis Wilke
24

Isso é suficiente para mostrar que há um processo atendendo no endereço IP 0.0.0.0(necessário para responder a qualquer solicitação) na porta 80 (número da porta padrão do servidor da web). No meu caso, isso mostra que é o servidor weblighttpd

$ sudo netstat -ntlp | grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN          2495/lighttpd

Se você quiser mais tarde certificar-se de que a única coisa que você permite através do firewall é a porta 80, geralmente uso o ShieldsUp do www.grc.com para realizar um teste de firewall.

rstonehouse
fonte
11

sudo iptables -Lirá listar as regras de porta para o seu PC. Observe que, se você estiver usando firewalls ufw ou shorewall, talvez seja difícil ler a saída. Nesse caso, use, sudo ufw statuspor exemplo.

Isso não é muito útil por si só, pois mesmo que uma porta esteja aberta, o acesso ainda será negado se não houver processo atendendo nessa porta.

Ciaran Liedeman
fonte
4

Se você procura monitoramento contínuo de portas para máquinas servidores ou locais, acho que também pode usar a versão gráfica do nmap, ou seja, o Zenmap para uma versão mais detalhada

O Zenmap é a interface gráfica oficial do usuário (GUI) do Nmap Security Scanner.

Suporte disponível (Linux, Windows, Mac OS X, BSD, etc.)

Veja esta visualização da ferramenta:

insira a descrição da imagem aqui

Vishal G
fonte