Підключити пристрій до локального серверу Mac? [зачинено]


99

Як дозволити будь-якому пристрою, наприклад iPhone, підключитися через WLAN до локального сервера мого Mac?

На моєму Mac я запускаю сервер HTTP Node.js "Hello World", який обслуговує сторінку, на якій 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
Райан

Відповіді:


55

У мене була така ж проблема. Я вимкнув WI-FI на своєму Mac, а потім увімкнув його знову, що вирішило проблему. Клацніть Налаштування> Вимкніть WI-FI.

Я перевірив це, перейшовши на Safari на своєму iPhone та ввівши своє ім’я хоста чи IP-адресу. Наприклад: http://<name>.localабоhttp://10.0.1.5


як не дивно, це працювало для мене! Дуже дякую. Я не можу зрозуміти, чому.
Бьорн Гроссманн

3
плюс один для <name>.local- Немає більше статичних IP-адрес для тестування!
Адам Картер

Я цілий день пробував це з'ясувати. Увімкнення / вимкнення Wi-Fi мого Mac виправлено. Дивно.
oif_vet

Перемикання Wi-Fi для Mac також це виправило для мене. Цікаво, чи це проблема Mac чи проблема маршрутизатора, чи проблема nodejs. Якісь ідеї?
neoneye

1
http: // <name> .local працював у мене. Щоб розширити відповідь, <ім'я> вашого комп'ютера можна знайти у розділі Налаштування системи> Спільний доступ . Під назвою комп’ютера ви можете знайти Комп'ютери у вашій локальній мережі, щоб отримати доступ до вашого комп’ютера за адресою: <ім'я> .local
Джон Лей

42

Попросіть ваш сервер 0.0.0.0замість цього localhost.


1
Аааа, дякую, це у мене спрацювало
aks.

1
Для тих, хто має проблеми з іншими відповідями - спробуйте!
Трент

5
Крім того, ви можете вказати "0.0.0.0" для прив'язки безпосередньо до локального ip. Попередить проблеми, якщо ви перемикаєте мережі та не призначаєте один і той же ip.
Коул Мюррей,

Вибачте, але як ви точно "маєте, щоб ваш сервер прослуховував"?
gmarais

@ColeMurray, вибачте за затримку відповіді. Дякую за пропозицію Я щойно оновив свою відповідь.
ma11hew28

30

Я отримав доступ лише до свого iphone за допомогою http://name.local:1337. Ви повинні додати ".local" Ім'я комп'ютера можна знайти в розділі "Системні налаштування" / спільний доступ / "Ім'я комп'ютера".


Я спробував використовувати IP-адресу з брандмауером і без нього та багато інших запропонованих рішень, і це єдине, що працювало. Я запускаю сайт localhost на порт 3000 з експресом за допомогою вузла js.
програвAtSeaJoshua

Ви також можете знайти своє "ім'я", ввівши whoamiв консоль.
Ядам 26

1
@Jadam Ця методика не працює для мене. Я отримую два різні імена. Для ситуації на локальному сервері "Ім'я комп'ютера" - це те, що працює.
moeamaya

1
Для мене я ніколи не потрапляв за допомогою name.local, однак використовуючи фактичну IP-адресу. Я б сказав, що усунення несправностей з використанням конкретних IP-адрес на відміну від зручності чогось на зразок name.local, що просто додає ще один рівень ускладнень.
MarsAndBack

1
Це має бути прийнятою відповіддю. Це не вимагає додаткових налаштувань або модифікацій поточного файлу сервера Node.js. @ ma11hew28
BenS

14

Спробуйте ввімкнути Інтернет-обмін:
Відкрийте Налаштування системи -> Обмін. Установіть прапорець Internet Sharing, щоб увімкнути його, він підкаже вам підтвердити свою дію, виберіть добре. Якщо ваш iPhone підключений за допомогою USB, USB-USB iPhone перевіряється у списку "спільного доступу" у правій частині.
Після цього спробуйте отримати доступ до свого локального сервера за допомогою свого macs ip на wifi.


9

Моя проблема була та сама, але рішення стосувалося зміни налаштування брандмауера. Виявилося, що вузол встановлений для блокування вхідного трафіку. Я знав, що щось відбувається, тому що я раніше міг потрапити на мій сервер localhost зі свого телефону.

Перейдіть до Налаштування системи -> Безпека та конфіденційність -> Брандмауер -> Параметри брандмауера , а потім прокрутіть униз, поки не знайдете вузол і переконайтеся, що для параметра вузла встановлено значення Дозволити вхідні з'єднання .

Змінивши налаштування, я міг дістатися до локального сервера (порт 3000), що працює на моєму Mac, перейшовши на сторінку http://192.168.1.11:3000


Брандмауер був єдиним винуватцем. Все інше було добре.
mythicalcoder

о хлопче, ти мене врятував! Дякую!!
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-адресу, а також номер свого порту (наприклад, ваше ім’я.локальний: 8000) на вашому iPhone через те саме з'єднання Wi-Fi, що і ваш комп’ютер.


4
  1. Підключіть свій iPhone до Mac через USB.

  2. Перейдіть до утиліти Network (cmd + простір та введіть "утиліта мережі")

  3. Перейдіть на вкладку "Інформація"

  4. Клацніть на спадному меню з написом "Wi-Fi" та виберіть "iPhone USB", як показано тут:

    Фото для кроку 4

  5. Ви знайдете IP-адресу типу "xxx.xxx.xx.xx" або подібну. Відкрийте браузер Safari на своєму iPhone та введіть IP_address: port_number

    Приклад: 169.254.72.86:15000

[ПРИМІТКА: Якщо поле IP-адреси порожнє, переконайтеся, що ваш iPhone підключений через USB, вийдіть із Network Utility, відкрийте його ще раз і перевірте IP-адресу.]


3

Я пропоную використовувати ім’я комп’ютера, наприклад http://mymac:1337/. Мені ідеально підходить без необхідної конфігурації, і мені не потрібно піклуватися про зміну IP-адрес через DHCP.


3

переконайтеся, що телефон і комп'ютер підключений до комп'ютера, вони підключені до одного Wi-Fi, і ви добре будете перейти на свій http://<machine-name>.local


2

Після публікації я дотримувався відповіді moeamaya, але потрібно було трохи змінити її, щоб побачити свою роботу в каталозі Сайтів.

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

[ім'я] , як уже зазначено (Налаштування системи / спільний доступ / "Ім'я комп'ютера")

[ім'я користувача] знайдено за адресою:

/etc/apache2/users/username.conf

сподіваюся, що це допомагає!


Де я можу знайти файл username.conf на mac?
картопля

1
Подивіться у папці / Користувачі в корені @brumbrum
Альфред

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

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.