Подключить устройство к серверу Mac localhost? [закрыто]

103

Как разрешить любому устройству, например iPhone, подключаться через WLAN к локальному серверу Mac?

На моем Mac я запускаю HTTP- сервер «Hello World» Node.js, который обслуживает страницу, которую Safari успешно открывает, на http://localhost:1337. И, работая ipconfig getifaddr en1в Терминальных выходах 192.168.1.9.

Но Safari, как на iPhone, так и на Mac, отображает «Safari не может подключиться к серверу» при попытке открытия http://192.168.1.9:1337.

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

Связанный:

ma11hew28
источник
1
ответ на вопрос здесь stackoverflow.com/questions/9304058/…
Андреас Норман
Я был удивлен, не увидев такого ответа, который у меня сработал: stackoverflow.com/a/41857012/470749
Райан

Ответы:

58

У меня такая же проблема. Я выключил WI-FI на своем Mac, а затем снова включил, что решило проблему. Нажмите «Настройки»> «Отключить WI-FI».

Я протестировал его, зайдя в Safari на своем iPhone и введя имя хоста или IP-адрес. Например: http://<name>.localилиhttp://10.0.1.5

Джонниб
источник
как ни странно, у меня это сработало! Большое спасибо. Не понимаю почему.
Бьорн Гроссманн
4
плюс один за <name>.local- Больше никаких статических IP-адресов для тестирования!
Адам Картер,
Я потратил целый день, пытаясь понять это. Включение / выключение Wi-Fi на моем Mac исправило это. Странно.
oif_vet
Переключение Wi-Fi Mac также исправило это для меня. Интересно, проблема ли это Mac, проблема маршрутизатора или проблема nodejs. Любые идеи?
neoneye
2
http: // <name> .local работал у меня. Чтобы расширить ответ, <имя> вашего Mac можно найти в Системных настройках> Совместное использование . Под именем вашего компьютера: вы можете найти Компьютеры в вашей локальной сети могут получить доступ к вашему компьютеру по адресу: <имя> .local
Джон Лэй
44

Пусть ваш сервер слушает 0.0.0.0вместо localhost.

ma11hew28
источник
1
Ах, спасибо, у меня это сработало
акс.
1
Для тех, у кого есть проблемы с другими ответами - попробуйте!
Трент
5
В качестве альтернативы вы можете указать «0.0.0.0» для прямой привязки к локальному ip. Предотвратит проблемы, если вы переключите сети и не получите одинаковый ip.
Коул Мюррей
Извините, но как вы "заставляете свой сервер слушать"?
gmarais
@ColeMurray, извините за задержку с ответом. Благодарим за ваше предложение. Я только что обновил свой ответ.
ma11hew28
31

Я мог получить доступ только к своему iphone с помощью http://name.local:1337. Вы должны добавить ".local". Имя вашего компьютера можно найти в Системных настройках / совместное использование / "Имя компьютера".

Moeamaya
источник
Я пробовал использовать IP-адрес с брандмауэром и без него, а также предлагал много других решений, и это единственное, что сработало. Я запускаю сайт localhost на порту 3000 с экспресс-использованием node js.
lostAtSeaJoshua
Вы также можете найти свое «имя», набрав whoamiв консоли.
Jadam
2
@Jadam Этот метод не работает для меня. У меня два разных имени. В случае с локальным сервером работает «Имя компьютера».
moeamaya
1
Для меня я никогда ничего не добился, используя name.local, однако использование фактического IP-адреса сработало. Я бы сказал, что устраняйте неполадки с использованием конкретных фактических IP-адресов, а не с помощью чего-то вроде name.local, которое просто добавляет еще один уровень сложности.
MarsAndBack
1
Это должен быть принятый ответ. Он не требует дополнительной настройки или модификации текущего файла сервера Node.js. @ ma11hew28
BenS
15

Попробуйте включить общий доступ в Интернет:
Откройте Системные настройки -> Общий доступ. Установите флажок «Общий доступ в Интернет», чтобы включить его, вам будет предложено подтвердить ваше действие, выберите «ОК». Если ваш iPhone подключен через USB, iPhone USB отмечен в списке «Совместное использование вашего подключения» с правой стороны.
После этого попробуйте получить доступ к локальному серверу, используя свой IP-адрес Mac по Wi-Fi.

Макбул
источник
10

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

Перейдите в Системные настройки -> Безопасность и конфиденциальность -> Брандмауэр -> Параметры брандмауэра , а затем прокрутите вниз, пока не найдете узел и убедитесь, что для параметра узла установлено значение Разрешить входящие подключения .

После изменения настройки я мог подключиться к серверу localhost (порт 3000), работающему на моем Mac, перейдя по адресу http://192.168.1.11:3000.

Дэвид Райкок
источник
Брандмауэр был единственным виновником. В остальном все было хорошо.
мифический
о мальчик, ты спас меня! Благодарность!!
GoOlga
7

Решаю аналогичную проблему.

  • подключили Mac и iPhone к одному Wi-Fi
  • измените настройку iPhone Wi-Fi, установите http-прокси на ручной, измените сервер на свой IP-адрес Mac и настройте порт. Мой порт - 80.

изображение один

изображение два

  • вы можете ввести http://<Mac ip>:<your customer server port>в сафари iPhone
HasjOH
источник
5

Пользователи MacOS Sierra могут найти свой автоматически сгенерированный персональный URL, перейдя System Preferences > Sharingи проверив текст под полем «Имя компьютера». Чтобы получить к нему доступ, введите этот URL-адрес и номер вашего порта (например, your-name.local: 8000) на вашем iPhone через то же соединение Wi-Fi, что и ваш компьютер.

брокер
источник
5
  1. Подключите iPhone к Mac через USB.

  2. Перейдите в Сетевая утилита (cmd + пробел и введите «сетевая утилита»)

  3. Перейдите на вкладку «Информация»

  4. Щелкните раскрывающееся меню с надписью «Wi-Fi» и выберите «iPhone USB», как показано здесь:

    Фото для шага 4

  5. Вы найдете IP-адрес, например «xxx.xxx.xx.xx» или аналогичный. Откройте браузер Safari на своем iPhone и введите IP_address: port_number.

    Пример: 169.254.72.86:3000

[ПРИМЕЧАНИЕ. Если поле IP-адреса пусто, убедитесь, что ваш iPhone подключен через USB, выйдите из Network Utility, снова откройте его и проверьте IP-адрес.]

arjunkm
источник
3

Предлагаю использовать имя компьютера, например http://mymac:1337/. У меня работает идеально без какой-либо конфигурации, и мне не нужно беспокоиться об изменении IP-адресов из-за DHCP.

Стиебитцхофер
источник
3

Как и было опубликовано, я следил за ответом moeamaya, но мне нужно было немного его изменить, чтобы увидеть свою работу в каталоге Sites.

http://[name].local.~[username]/

[имя] уже указано (Системные настройки / общий доступ / «Имя компьютера»)

[имя пользователя] находится по адресу:

/etc/apache2/users/username.conf

надеюсь это поможет!

naiJenn
источник
Где я могу найти файл username.conf на Mac?
potato
1
Загляните в свою папку / Users в корне @brumbrum
Альфред
1
Также можно написать whoamiв терминале
Альфред
3

убедитесь, что ваш телефон и компьютер Mac подключены к одному и тому же Wi-Fi, и вы готовы к работе. http://<machine-name>.local

Мухаймин
источник
1

Пробовал все на этой странице, но http://<name>.local:<PORT>работал на моем iPhone только после того, как я вышел и перезапустил Safari ...

физика AI
источник
0

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

Например, в моем случае это: 10.0.0.5

Edgarascom
источник
Вы можете попробовать, но это не сработает при любых обстоятельствах. Вы сделали предположение, которое я не вижу в вопросе, о конфигурации сети.
benc
Что ж, это предположение помогло мне вчера решить мою аналогичную проблему. Я не мог найти IP для подключения. Команды терминала не работали. Что сработало, так это IP в настройках сети. (Я использую локальный сервер Apache на Mac)
edgarascom
-1

также убедитесь, что сервер прослушивает ваше мобильное устройство! например, по умолчанию jekyll отвечает только на запросы, сделанные хост-машиной. это решило мою проблему:

Подключитесь к локально созданному серверу Jekyll с помощью мобильных устройств в локальной сети

Том
источник