Подключить устройство к серверу 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-сервер был доступен только частным образом, а не публично.

Связанный:


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.


1
Ах, спасибо, у меня это сработало
акс.

1
Для тех, у кого есть проблемы с другими ответами - попробуйте!
Трент

5
В качестве альтернативы вы можете указать «0.0.0.0» для прямой привязки к локальному ip. Предотвратит проблемы, если вы переключите сети и не получите одинаковый ip.
Коул Мюррей

Извините, но как вы "заставляете свой сервер слушать"?
gmarais

@ColeMurray, извините за задержку с ответом. Благодарим за ваше предложение. Я только что обновил свой ответ.
ma11hew28

31

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


Я пробовал использовать 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

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-адрес.]


3

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


3

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

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

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

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

/etc/apache2/users/username.conf

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


Где я могу найти файл username.conf на Mac?
potato

1
Загляните в свою папку / Users в корне @brumbrum
Альфред

1
Также можно написать whoamiв терминале
Альфред

3

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


1

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


0

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

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


Вы можете попробовать, но это не сработает при любых обстоятельствах. Вы сделали предположение, которое я не вижу в вопросе, о конфигурации сети.
benc

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

-1

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.