Сделать `http-сервер` видимым в сети - PullRequest
0 голосов
/ 11 апреля 2020

Запуск npm http-server иногда запускает сервер, доступный с (мобильного) устройства в той же сети.

> http-server
Starting up http-server, serving ./
Available on:
  http://127.0.0.1:8080
  http://10.0.1.7:8080
  http://123.456.78.90:8080
Hit CTRL-C to stop the server

, а иногда запускает сервер, который виден только с того же desktop.

> http-server
Starting up http-server, serving ./
Available on:
  http://127.0.0.1:8080
  http://10.0.1.7:8080
Hit CTRL-C to stop the server

Как использовать http-server для запуска веб-сервера, видимого с любого устройства в той же сети? Наличие http://10.0.1.7:8080 само по себе должно указывать на то, что сервер виден через сеть, нет? Почему третий адрес http://123.456.78.90:8080 появляется только иногда. Оба запуска идентичны.

Все это, конечно, следует npm install -g http-server.

Обновление 1:

http-server -a 0.0.0.0 по умолчанию. (Следовательно, указывать его не нужно.)

Обновление 2:

Использование

python3 -m http.server --bind 0.0.0.0

более предсказуемо / надежно, но тогда нужно иметь go заглянуть в вывод ifconfig, чтобы найти IP, который так хорошо раскрывается npm http-server.

Ответы [ 2 ]

1 голос
/ 11 апреля 2020

Он всегда должен быть доступен любому, кто находится в той же сети, что и ваш компьютер, по IP-адресу вашего компьютера, за которым следует порт.

Третий адрес, как я полагаю, появляется, потому что в то время, когда вы были подключены к двум локальным сети в то же время, чтобы http-сервер был доступен по этому IP-адресу, который также является IP-адресом вашего компьютера, но во второй сети.

Короче говоря:

  • http://127.0.0.1:8080 - это IP-адрес, который используется для подключения к серверу из-под машины, на которой он работает.
  • http://10.0.1.7:8080, а любой последующий IP-адрес - это IP-адрес, используемый для подключения к серверу с любого устройства, которое находится в той же сети. Появляется столько IP-адресов, сколько локальных сетей, к которым вы подключены.

Это не имеет ничего общего с npm, просто работает сеть. Http-сервер Python просто не отображает IP-адреса для вас.

0 голосов
/ 12 апреля 2020

Давайте попробуем исключить некоторые очевидные случаи:

  • Какое сообщение об ошибке вы получаете? Вы видите страницу тайм-аута подключения в вашем браузере?
  • Ваш мобильный телефон подключен к тому же маршрутизатору, что и сервер http-сервера?
  • Какой IP-адрес вашего мобильного телефона? (я вижу это, например, в моем роутере)
  • Вы не используете vpn на своем другом устройстве, не так ли?
  • Видите ли вы правильный результат, когда вызываете его локально?
  • Можете ли вы пропинговать сервер http-сервера с любого устройства в вашей сети?
  • Вы пытались использовать другой порт, например 80?
...