У меня есть мой Mac Mini с сервером nodejs на порту 8000. На Mac я могу поразить его в 127.0.0.1:8000/something. Я получаю ответ типа "привет мир".
В той же сети, с другой машины, я не могу подключиться к этому серверу на Mac. Я получаю тайм-ауты. Я вырывал свои волосы, пытаясь понять, почему.
Я проверяю машину в локальной сети. Например, 192.168.1.7:8000 должен разрешить эту машину и порт с другой машины. Время вышло.
У меня есть страница администратора NAS по адресу 192.168.1.200:5000 (извините за ранее опечатку), и она прекрасно решается. Порт 5000 перенаправляется на NAS от маршрутизатора.
Я настроил правила брандмауэра (на маршрутизаторе) для nodejs точно так же, как для NAS. NAS доступен за пределами моей сети через правило маршрутизатора и динамическое сопоставление DNS без ip. Сервер nodejs пересылается таким же образом. Нет кубиков, тайм-аут.
Какие-нибудь мысли? У меня нет брандмауэра (который я могу обнаружить) на Mac. Я вижу сервер, слушающий 8000 на Mac. Работает локально.
Что я здесь не так делаю?
ОБНОВЛЕНИЯ с ответами на вопросы.
Спасибо всем за отзывы, вот ответы на ваши вопросы.
Выход из netstat.
netstat -anp tcp | grep 8000
tcp4 0 0 *.8000 *.* LISTEN
У меня не работает брандмауэр Mac (по крайней мере, в настройках системы я имею в виду). Я видел сообщения о чем-то под названием IPFW, но я понятия не имею, что это такое.
На Mac, когда я нажимаю 192.168.1.7:8000, я получаю:
Hello World
В моем понимании nodejs я просто "привязываю" его к порту. Вот код, прямо из их примера.
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/');