Como verificar portas abertas / fechadas no meu computador?


135

Como verificar as portas abertas / fechadas no meu computador?

Eu usei netstat -ana linha de comando.

  • O status da porta "LISTENING" indica que a porta está aberta?
  • Alguma porta, que não é mostrada na saída, está fechada?


2
@Justgivemeaname: nmapé uma ferramenta para verificar se há portas abertas em outro host. Se você pode rodar netstatem uma máquina, é muito mais rápido e confiável usá-la.
David Foerster

@ DavidFoerster: Não sabia netstat, então eu aprendi isso. Diz no link que ele deve ser usado em outro host. Obrigado!
Justgivemeaname

Respostas:


163

Existem alguns parâmetros netstatúteis para isso:

  • -lou --listeningmostra apenas os soquetes que estão ouvindo a conexão de entrada.
  • -aou --allmostra todos os soquetes atualmente em uso.
  • -tou --tcpmostra os soquetes tcp.
  • -uou --udpmostra os soquetes udp.
  • -nou --numericmostra os hosts e portas como números, em vez de resolver no dns e procurar no / etc / services.

Você usa uma mistura deles para conseguir o que deseja. Para saber quais números de porta estão em uso no momento, use um destes:

netstat -atn           # For tcp
netstat -aun           # For udp
netstat -atun          # For both

Na saída, todas as portas mencionadas estão em uso, ouvindo a conexão de entrada ou conectadas a um ponto ** todas as outras estão fechadas. As portas TCP e UDP têm 16 bits de largura (elas variam de 1-65535)

** Eles também podem ser conectados / desconectados do par.


71

Você pode usar este comando:

netstat -tulnp | grep <port no>

Se mostrar algum processo, é usado. Está fechado (não usado) se não houver saída.


20

Outra linha de comando alternativa fácil de usar para descobrir qual processo está usando uma porta:

lsof -n -i4TCP:$PORT | grep LISTEN

Eu adicionei a próxima função no meu .bash_profile,

function pslisten {
    echo `lsof -n -i4TCP:$1 | grep LISTEN`
}

e agora execute "pslisten 5060" para ver quem está pegando minha porta SIP.

Também funciona com o Apple Mac OS X.


13

O status da porta "LISTENING" indica que a porta está aberta?

Sim. Isso significa que algum serviço está ouvindo a porta do computador para conexão de entrada, ou seja, essa porta está aberta para o estabelecimento de novas conexões.

Alguma porta que não é mostrada na saída indica que está fechada?

Sim. Lembre- netstat -ase de mostrar todas as conexões ativas ( escutando ) e passivas ( sem escutar ), ou seja, as portas que atuam como servidor (alguns serviços estão escutando essas portas para conexões de uma máquina / processo diferente) e estabelecidas (as conexões são estabelecidas nesses portas, independentemente do fato de o host / serviço poder ser um servidor ou cliente)

Todas as portas TCP e UDP pertencem a uma categoria chamada soquetes e existem muitas. Para visualizar as informações do soquete, você pode verificar man ss.


Obrigado. você escreveu que -asignifica servidor e estabelecido. "Servidor" significa portas que estão sendo ouvidas por alguns serviços? "Estabelecido" significa portas nas quais existem conexões existentes, independentemente da porta de um cliente ou servidor? Então, que tipos de portas não -asão exibidas?
Tim

Não acho que a -aopção signifique soquetes "todos ativos"; apenas significa "tudo". O netstat mostra todos os soquetes ativos por padrão, mas deixa de fora os soquetes passivos (aberto, escutando). Usando a -aopção, soquetes ativos e passivos são mostrados.
Egon Olieux 22/09

@EgonOlieux Thanks. Eu estou corrigido; editou a resposta.
heemayl

@heemayl A segunda parte da sua resposta ainda não está correta. Um soquete TCP no estado "escutando" nunca pode ser uma conexão; não está conectado a nada, está apenas ouvindo. Os soquetes TCP de escuta também são chamados de soquetes passivos por causa disso. Se um cliente tentar se conectar a um soquete (de escuta) em um servidor, um novo soquete será criado no servidor para estabelecer uma conexão com o cliente. Um soquete que faz parte de uma conexão estabelecida é chamado de soquete ativo.
Egon Olieux 25/09/19

3

Outra opção é ss . É muito mais fácil de usar ....

O comando abaixo produzirá apenas uma lista dos soquetes de escuta atuais.

root@server:~# ss -l

    Netid  State      Recv-Q Send-Q                                     Local Address:Port                                                      Peer Address:Port   


u_dgr  UNCONN     0      0                                                      * 23353                                                                * 23352                
u_dgr  UNCONN     0      0                                                      * 568                                                                  * 362                  
u_dgr  UNCONN     0      0                                                      * 14836                                                                * 14837                
u_dgr  UNCONN     0      0                                                      * 20446                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 22877                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 504                                                                  * 347                  
u_dgr  UNCONN     0      0                                                      * 16298                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 23343                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 24125                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 24617                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 23352                                                                * 23353                
u_dgr  UNCONN     0      0                                                      * 23334                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 17113                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 16957                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 14793                                                                * 362                  
u_dgr  UNCONN     0      0                                                      * 23345                                                                * 362                  
u_dgr  UNCONN     0      0                                                      * 24070                                                                * 369                  
udp    UNCONN     0      0                                                      *:sunrpc                                                               *:*                    
udp    UNCONN     0      0                                                      *:981                                                                  *:*                    
udp    UNCONN     0      0                                                     :::sunrpc                                                              :::*                    
udp    UNCONN     0      0                                                     :::981                                                                 :::*                    
tcp    LISTEN     0      128                                            127.0.0.1:85                                                                   *:*                    
tcp    LISTEN     0      128                                                    *:ssh                                                                  *:*                    
tcp    LISTEN     0      128                                                    *:3128                                                                 *:*                    
tcp    LISTEN     0      100                                            127.0.0.1:smtp                                                                 *:*                    
tcp    LISTEN     0      128                                                    *:8006                                                                 *:*                    
tcp    LISTEN     0      128                                                    *:sunrpc                                                               *:*                    
tcp    LISTEN     0      128                                                   :::ssh                                                                 :::*                    
tcp    LISTEN     0      100                                                  ::1:smtp                                                                :::*                    
tcp    LISTEN     0      128                                                   :::sunrpc                                                              :::*                    

1
Eu não sabia sobre isso, graças zee
Nick Fox

2

Ou isso pode ajudar usando o watch e depois brincar com o que você deseja ver.

sudo watch -d -n0 "netstat -atnp | grep ESTA"

sudo watch -d -n0 "netstat -tulnp | grep ESTA"

1
-a entra em conflito com -l, -a pega tudo, seja ESTABELECIDO ou LISTENING, e -l apenas pega LISTENING, então, na realidade, é '-ltnp' tcp, '-lunp' udp ou '-ltunp' tcp + udp
ModerateJavaScriptDev

1

Na verdade, há uma maneira melhor de ver quais portas você abriu. O problema com netstatou lsofé que eles consultam a pilha de rede e, na verdade, não se conectam à máquina, mas tentam ver o que está em execução no sistema. A melhor abordagem é usar da seguinte nmapmaneira:

nmap -sT -O localhost

Para ver portas abertas.


0
  1. Tente isso para obter uma lista de portas abertas nesse intervalo.

    for p in {1..1023}
    do
       (echo >/dev/tcp/localhost/$p) >/dev/null 2>&1 && echo "$p open"
    done
  2. E este comando irá mostrar o que é!

    cat /etc/services | grep {PORTNumber}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.