Подтвердить что ты не робот

Не удается получить доступ к локальному серверу Sinatra с другого компьютера в той же сети

У меня есть простой сервер Sinatra, который я запускаю через textmate, но я не могу получить доступ с другого компьютера в той же сети.

Я запускаю Ruby 1.9.3p327 и Sinatra 1.4.1 на Mac OS 10.8.3. Брандмауэр отключен.

Я тестировал один и тот же сценарий в разных сетях и компьютерах.

Компьютер реагирует на простые пинги, но когда я пытаюсь подключиться к telnet-порту 4567, я не могу установить соединение.

4b9b3361

Ответ 1

Недавно была зафиксирована фиксация Sinatra, которая изменила адрес прослушивания по умолчанию на localhost из 0.0.0.0 в режиме разработки из-за проблем с безопасностью.

Чтобы явно разрешить доступ из сети, вам нужно либо запустить приложение в другом режиме (например, производство), либо установить параметр bind 0.0.0.0.

Вы можете сделать это из командной строки, используя встроенный сервер, используя опцию -o:

$ ./my_sinatra_file.rb -o 0.0.0.0

Ответ 2

Убедитесь, что сервер synatra не прослушивает только адрес localhost (127.0.0.1).

Ответ 3

Я читаю немного дополнительной информации, которая может помочь людям вроде меня ударить головой о стену.

Я нахожусь на компьютере с Windows, а не на Mac, и мне пришлось открыть порт, который я использовал (по умолчанию для Sinatra - 4567) для публики (даже если я нахожусь в университетской сети).

Для этого в Windows 10:

  • Нажмите клавишу Windows
  • Поиск брандмауэра и нажмите enter
  • Перейдите к дополнительным настройкам
  • Нажмите на входящие правила в левом верхнем углу
  • Нажмите новое правило в правом верхнем углу
  • Выберите опцию порта
  • Введите свой порт (возможно, 4567 для Sinatra)
  • Далее
  • И теперь выберите из домена/частного/публичного.

Теперь еще одна вещь, которую следует учитывать, - это доступ к вашему веб-серверу. Если вы хотите кого-то, тогда выберите общественность. Я не знаю точно (и хотел бы, чтобы другие входные данные), как подключить только одну и ту же сеть общего пользования. Вы также можете разрешать определенные IP-адреса, но для этого я предлагаю сделать некоторые исследования самостоятельно.