Eu tenho meu mac mini executando um servidor nodejs na porta 8000. No mac, eu posso atingi-lo em 127.0.0.1:8000/something. Eu recebo um tipo de resposta "hello world".
Na mesma rede, de uma máquina diferente, não consigo acessar este servidor no mac. Estou recebendo tempo limite. Eu tenho puxado meu cabelo tentando entender o porquê.
-
Eu verifico a máquina na rede local. Por exemplo, 192.168.1.7:8000 deve resolver para essa máquina e porta de outra máquina. Esgota-se.
-
Eu tenho uma página de administração do NAS em 192.168.1.200:5000 (desculpem o erro antes) e ela é resolvida lindamente. A porta 5000 é encaminhada para o NAS a partir do roteador.
-
Eu configurei as regras de firewall (no roteador) exatamente da mesma maneira para os nodejs, como fiz para o NAS. O NAS está disponível fora da minha rede por meio de uma regra de roteador e um mapeamento de DNS dinâmico no-ip. O servidor nodejs é encaminhado da mesma maneira. Nenhum dado, expira.
Alguma ideia? Eu não tenho firewall (que eu possa detectar) no mac. Eu posso ver o servidor ouvindo 8000 no mac. Funciona localmente.
O que estou fazendo de errado aqui?
ATUALIZAÇÕES com respostas a perguntas.
Obrigado a todos pelo feedback. Aqui estão as respostas para as suas perguntas.
Saída do netstat.
netstat -anp tcp | grep 8000
tcp4 0 0 *.8000 *.* LISTEN
Eu não tenho o firewall mac em execução (pelo menos nas configurações do sistema, quero dizer). Já vi postagens sobre algo chamado IPFW, mas não tenho ideia do que é isso.
No mac, quando eu clico em 192.168.1.7:8000 eu recebo:
Hello World
Meu entendimento de nodejs é que eu apenas "vinculo" a uma porta. Aqui está o código, direto do seu exemplo.
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(8000);
console.log('Server running at http://127.0.0.1:8000/');