AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 309052
Accepted
James Anderson
James Anderson
Asked: 2011-09-08 09:24:24 +0800 CST2011-09-08 09:24:24 +0800 CST 2011-09-08 09:24:24 +0800 CST

Verifique se a porta está aberta ou fechada em um servidor Linux?

  • 772

Como posso verificar se uma porta está escutando em um servidor Linux?

linux port telnet
  • 7 7 respostas
  • 1235909 Views

7 respostas

  • Voted
  1. Best Answer
    joschi
    2011-09-08T09:31:43+08:002011-09-08T09:31:43+08:00

    Você pode verificar se um processo escuta em uma porta TCP ou UDP com netstat -tuplen.

    Para verificar se algumas portas são acessíveis externamente (provavelmente é isso que você deseja), você pode usar um scanner de portas como o Nmap de outro sistema. Executar o Nmap no mesmo host que você deseja verificar é bastante inútil para o seu propósito.

    • 236
  2. Adrian Macneil
    2011-09-08T09:33:22+08:002011-09-08T09:33:22+08:00

    A maneira mais rápida de testar se uma porta TCP está aberta (incluindo qualquer firewall de hardware que você possa ter) é digitar, de um computador remoto (por exemplo, seu desktop):

    telnet myserver.com 80
    

    Que tentará abrir uma conexão com a porta 80 nesse servidor. Se você obtiver um tempo limite ou negar, a porta não está aberta :)

    • 129
  3. cjc
    2011-09-08T12:01:52+08:002011-09-08T12:01:52+08:00

    OK, em resumo, você tem um servidor no qual pode fazer login. Você quer ver se algo está escutando em alguma porta. Como root, execute:

    netstat -nlp
    

    isso mostrará uma lista de processos que escutam nas portas TCP e UDP. Você pode digitalizá-lo (ou grep) para o processo em que está interessado e/ou os números de porta que espera ver.

    Se o processo que você espera não estiver lá, você deve iniciar esse processo e verificar o netstat novamente. Se o processo está lá, mas está escutando em uma interface e porta que você não esperava, então há um problema de configuração (por exemplo, ele pode estar escutando, mas apenas na interface de loopback, então você veria 127.0.0.1:3306 e nenhuma outra linha para a porta 3306, no caso da configuração padrão para MySQL).

    Se o processo estiver ativo e estiver escutando na porta que você espera, você pode tentar executar um "telnet" para essa porta do seu Macbook em seu escritório/casa, por exemplo,

     telnet xxxxxxxxxxxx.co.uk 443
    

    Isso testará se (assumindo portas padrão) que há um servidor web configurado para SSL. Observe que este teste usando telnet só funcionará se o processo estiver escutando em uma porta TCP. Se for uma porta UDP, você também pode tentar com qualquer cliente que você usaria para se conectar a ela. (Vejo que você usou a porta 224. Este é o masqdialer e não tenho idéia do que seja).

    Se o serviço estiver lá, mas você não puder acessá-lo externamente, há um firewall bloqueando você. Nesse caso, execute:

     iptables -L -n
    

    Isso mostrará todas as regras de firewall definidas em seu sistema. Você pode postar isso, mas, geralmente, se você não estiver permitindo tudo na cadeia INPUT, provavelmente precisará permitir explicitamente o tráfego na porta em questão:

     iptables -I INPUT -p tcp --dport 224 -j ACCEPT
    

    Ou algo nesse sentido. Não execute seus comandos de firewall cegamente com base no que algum estranho lhe disse na Internet. Considere o que você está fazendo.

    Se o seu firewall na caixa está permitindo o tráfego que você deseja, sua empresa de hospedagem pode estar executando um firewall (por exemplo, eles estão permitindo apenas SSH (22/tcp), HTTP (80/tcp) e HTTPS (443/tcp) e negando todos os outros tráfegos de entrada). Nesse caso, você precisará abrir um ticket de suporte técnico com eles para resolver esse problema, embora eu suponha que possa haver algo no seu cPanel que possa permitir isso.

    • 40
  4. warren
    2016-03-29T11:32:19+08:002016-03-29T11:32:19+08:00

    Eu uso a combinação de netstate lsof:

    netstat -an | grep <portnumber>
    lsof -i:<portnumber>
    

    Para ver se a porta está sendo usada e o que a está usando.

    • 20
  5. user9517
    2011-09-08T09:57:04+08:002011-09-08T09:57:04+08:00

    Se você estiver conectado ao sistema e puder executar um comando como root, poderá verificar a saída do iptables

    iptables -L -vn
    

    isso listará as regras de firewall e quais portas são alvos abertos ACCEPTe quaisquer portas explicitamente fechadas alvo REJECT.

    • 10
  6. pgs
    2016-01-26T13:45:20+08:002016-01-26T13:45:20+08:00

    lsof -i :sshlistará todos os processos com a porta ssh aberta, tanto as conexões de escuta quanto as ativas.

    • 7
  7. Alexis Wilke
    2020-03-08T10:13:36+08:002020-03-08T10:13:36+08:00

    Se você precisar fazer um script desse tipo de teste, a solução de Serhii Popov (veja o comentário da pergunta) é provavelmente a melhor, pois ncé capaz de procurar na pilha TCP por uma porta aberta³ em vez de tentar uma conexão real.

    A forma mais simples é:

    nc -z <ip> <port>
    

    O comando retorna true se encontrar o <ip>:<port>combo especificado como sendo aberto (ou seja, um de seus serviços está escutando).

    Então agora você pode escrever um script para esperar até que a porta seja aberta:

    while ! nc -z <ip> <port>
    do
        sleep 1
    done
    

    Nota 1: tentei a -wopção de linha de comando e isso não parecia fazer nada. De qualquer forma, o comando retorna imediatamente. Eu acho que o -wnão é útil com -z.

    Nota 2: para ajudar a depurar, tente com a -vopção de linha de comando.

    Nota 3: nc -z ...na verdade cria um socket()e depois tenta bind()e connect(). Se isso funcionar, ele considera a porta aberta.

    • 6

relate perguntas

  • Protegendo um novo servidor Ubuntu [fechado]

  • (Soft) RAID 6 no Ubuntu 7.10, devo migrar para 8.10?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Resolver o nome do host do endereço IP

    • 8 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve