Pode ser que a porta 8080 esteja vinculada em algum outro lugar?
Em uma máquina host?
De qualquer forma, mostrar sua configuração de rede, máquinas viruais em uma ponte?
Eu tenho uma máquina CentOS virtualizada com um software que está escutando na porta 8080. Eu desliguei o SELinux e limpei todos os iptables (então agora não há regras definidas). Eu verifiquei com netstat -nap | grep 8080
que a porta está realmente aberta e é. O endereço IP é 192.168.1.3.
Da minha outra máquina, gostaria de me conectar a essa porta com um programa, mas ele falha. Ao executar nmap -p 8080 192.168.1.3
, a porta está fechada!
Quando eu verifico com o Wireshark, posso ver que o computador de conexão está enviando o pacote SYN, mas o computador que está respondendo (com IP 192.168.1.3) responde com um SYN / RESET e interrompe a conexão e não responde com um SYN / ACK e assim continua a transmissão. O número de seqüência está correto, o computador de envio envia 0 e o receptor recebe 1.
O estranho é que outras portas podem ser detectadas como abertas pelo Nmap a partir da máquina cliente, mas não 8080.
O que pode estar errado?
EDIT :
Ok, não sei em que acreditar agora. Isto é o que eu descobri:
O porgram que está escutando 8080 na "máquina do servidor" (vamos chamá-lo assim) é um webservice customizado construído em Java (usando bibliotecas de terceiros como EclipseLink etc). Ao fazer nmap localhost
na "máquina do servidor", ele pode encontrar a porta aberta. Ao fazer nmap 192.168.1.3
da "máquina cliente", ele encontra a porta fechada (conforme descrito acima).
E a nova descoberta: acabei de criar um aplicativo java simples que usa apenas a classe ServerSocket para escutar 8080 e ENTÃO a porta pode ser descoberta a partir da "máquina cliente". Então, é algo com o aplicativo webservice? Por que a porta pode ser descoberta a partir da "máquina do servidor" (ao verificar ela mesma, localhost), mas não da "máquina cliente" ao executar o serviço da Web? E por que a porta 8080 pode ser descoberta a partir de AMBAS máquinas ao executar o aplicativo java simples que escuta no 8080?
netstat -ntpl
tcp 0 0 ::ffff:127.0.0.1:8080 :::* LISTEN 3481/java
EDIT 2 :
Estúpido eu! Agora eu vejo, ::ffff:127.0.0.1:8080
significa que o programa só é acessível a partir do localhost! :-D
Onde eu mudo para que ele ouça de todos?
Se é uma versão antiga do centos, pode ser um problema com "/etc/hosts.{allow,deny}", mas se ele tiver iptables, provavelmente não os está usando. Verifique se esses arquivos existem.