4

Я использую виртуальную машину Centos, размещенную на OSX с использованием Vagrant, и не могу подключиться к Node.js, работающему на гостевой машине Centos.

Я установил оба Nginx и Node.js и перенаправил порты с хоста на гостя для них обоих.

config.vm.network :forwarded_port, guest: 8080, host: 8080 
config.vm.network :forwarded_port, guest: 8124, host: 8124

После запуска Node.js я могу получить к нему доступ локально в виртуальной машине с помощью wget 127.0.0.1:8124, но с хост-машины, которая не работает.

Я могу получить доступ к экземпляру Nginx через порт 8080 с хост-машины без проблем. Хотя я планирую запустить Node.js на порту 8124, остановка Nginx и последующий запуск Node.js на порту 8080 (который определенно пересылается на виртуальную машину Centos) по-прежнему не работает.

Я остановил службу Iptables, поэтому не думаю, что это будет блокировать какие-либо запросы.

Что мне нужно сделать, чтобы Node.js принимал запросы от хоста, когда он запущен в гостевой виртуальной машине Centos?

Скрипт Node, который я запускаю, это https://github.com/guzzle/guzzle/blob/master/tests/Guzzle/Tests/Http/server.js, однако я не думаю, что это актуально, поскольку запросы достигают узла сервер.

1 ответ1

5

https://github.com/guzzle/guzzle/blob/master/tests/Guzzle/Tests/Http/server.js#L132

Смотри строку 132. Ваше приложение привязано только к петлевому интерфейсу. Быстрый netstat должен подтвердить это.

$ sudo netstat -ltpn | grep 8124
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:8142            0.0.0.0:*               LISTEN      node

Выходные данные вышеприведенной команды должны показать процесс узла на порту 8142, привязанный к 0.0.0.0, а НЕ к 127.0.0.1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .