Como verificar se uma porta está aberta num host remoto ou local?
sobes.tech IA
Resposta da IA
Para verificar se uma porta está aberta num host remoto ou local, pode usar os seguintes métodos:
-
netcat(nc): Ferramenta universal para trabalhar com ligações de rede.- Host local:
nc -zv localhost <porta> - Host remoto:
nc -zv <host_remoto> <porta>
As opções
-z(modo zero-I/O) e-v(detalhado) são usadas para escanear sem enviar dados e para mostrar informações detalhadas. - Host local:
-
telnet: Protocolo para controlo remoto, que pode ser usado para verificar a ligação na porta especificada.- Host local:
telnet localhost <porta> - Host remoto:
telnet <host_remoto> <porta>
Se a ligação for estabelecida (geralmente aparece um aviso ou linha vazia), a porta está aberta. Pode fechá-la pressionando
Ctrl+], depoisquiteEnter. - Host local:
-
nmap: Scanner de portas potente. Requer instalação.- Host local:
nmap -p <porta> localhost - Host remoto:
nmap -p <porta> <host_remoto>
A saída mostrará o estado da porta:
open,closedoufiltered. - Host local:
-
< /dev/tcpou< /dev/udp(no Bash): No Bash, pode usar descritores de ficheiro para criar ligações TCP ou UDP.- Host local (TCP):
timeout 1 bash -c "cat < /dev/tcp/localhost/<porta>" 2>/dev/null && echo "Porta <porta> está aberta" || echo "Porta <porta> está fechada" - Host remoto (TCP):
timeout 1 bash -c "cat < /dev/tcp/<host_remoto>/<porta>" 2>/dev/null && echo "Porta <porta> está aberta" || echo "Porta <porta> está fechada"
timeouté usado para evitar bloqueios se a porta estiver fechada.2>/dev/nulloculta erros. Este método não funciona para UDP. - Host local (TCP):
-
Python: Uso de sockets para verificar.
import socket def check_port(host, port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(1) # Definir timeout try: s.connect((host, port)) print(f"Porta {port} em {host} está aberta") except (socket.timeout, ConnectionRefusedError): print(f"Porta {port} em {host} está fechada ou filtrada") finally: s.close() # Exemplo de uso check_port("localhost", 80) # Verificação do host local check_port("google.com", 443) # Verificação do host remoto
A escolha do método depende das ferramentas disponíveis, do sistema operativo e da natureza da tarefa. netcat e nmap são algumas das ferramentas mais flexíveis e informativas.