Como dois processos poderiam se ligar à mesma porta?

1

Acabei de encontrar um problema em que uma solicitação feita para localhost:8080 do curl estava atingindo um servidor diferente do mesmo pedido feito dentro do Node. lsof -i :8080 revelou que dois processos estavam ligados na mesma porta:

COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
node    51961 mball   14u  IPv4 0xd980e0df7f175e13      0t0  TCP *:http-alt (LISTEN)
java    62704 mball  320u  IPv6 0xd980e0df7fe08643      0t0  TCP *:http-alt (LISTEN)

Como isso é possível? Eles estavam ligados a interfaces diferentes? Ou foi o IPv4 vs 6?

Se você está curioso, o nó estava atingindo o outro processo do nó, o curl estava atingindo o processo java. O processo java foi iniciado após o processo do nó.

    
por Matt Ball 07.11.2013 / 03:43

1 resposta

3

Eles podem ser a mesma porta, mas eles não são o mesmo endereço - ou até mesmo a mesma família de endereços! Sim, o IPv4 versus o IPv6 é importante.

Para corrigir o problema, o processo desejado é vinculado às famílias de endereços IPv4 e IPv6.

    
por 07.11.2013 / 03:48