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.
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ó.
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.
Tags networking mac-osx