Запуск проекта ruby on rails на моем mac. Мне нужно протестировать его на моем телефоне Android. Есть ли способ просмотреть мой mac localhost на моем Android-телефоне?
Localhost работает на Mac. Могу ли я просмотреть его на своем Android-телефоне?
Ответ 1
Имя "localhost" - это всего лишь петля на ваш собственный компьютер. Чтобы получить доступ к нему на вашем Android, вам нужно найти IP-адрес компьютера.
Самый общий способ найти эту информацию, которая работает как на Mac, так и на Linux, - это войти в терминал и ввести ifconfig
. Ищите "en0" или "en1", и под этой записью найдите список "inet". Это будет нечто вроде "192.168.1.100". Когда вы найдете этот адрес, это то, что вы хотите поместить в адресную строку вашего браузера.
(На Mac в частности вы можете перейти на панель "Совместное использование" в "Системные настройки", и он скажет вам там.)
Ответ 2
Здесь быстро сделайте, чтобы ваш локальный хост был доступен для тестов на других устройствах:
1) определить IP-адрес вашего Android: выберите Wi-Fi, с которым вы подключены (то же, что и тот, на котором включен Mac), на нем будет указан IP-адрес). Например: предположим, что ваш Android-адрес IP: 192.168.0.10
2) откройте оболочку на вашем Mac и отредактируйте хост:
sudo nano /etc/hosts
3) отредактируйте файл следующим образом:
127.0.0.1 192.168.0.10
4) Определите свой Mac IP: (как @Chuck прекрасно объяснил) (в вашей оболочке):
ifconfig
5) Откройте свой любимый веб-браузер, который вы используете на своем телефоне, и подключитесь к вашему IP-адресу Mac (при необходимости с портом) с помощью чего-то вроде:
http://192.168.x.x:8000/
6) Наслаждайтесь своим испытанием:)
Обратите внимание, что вы можете сделать это для каждой поддержки, подключенной к вашему Wi-Fi.
Ответ 3
Ответ на вопрос правилен, если ваше мобильное устройство и ваш компьютер находятся в одной сети. Однако, если вы хотите, чтобы ваш сервер localhost был видимым для более широкого Интернета (например, для тестирования через 3G, разработки веб-узлов или совместной работы с удаленным коллегой/клиентом), требуется больше, чем локальные адреса (начиная с 10. * или 192.168. * ) не видны более широкому Интернету.
Традиционным решением для этого является перенаправление портов и динамический DNS, но в последнее время появилось несколько служб, целью которых является упрощение этого процесса (отказ от ответственности: я являюсь автором одного из них, PageKite).
Эти службы предоставляют вам общедоступное DNS-имя и программное обеспечение, которые соединяют ваш "localhost" с сервером ретрансляции в облаке (a.k.a. обратный прокси). Например, если вы используете PageKite, вы можете запустить следующую команду в терминале:
$pagekite.py 80 yourname.pagekite.me
... создать сопоставление от http://yourname.pagekite.me/
к веб-серверу, работающему на http://localhost:80
. Пока программа запущена, ваш сайт localhost будет виден остальной части Интернета. Чтобы сделать его снова закрытым, вы просто отключите программу-коннектор pagekite.py.
Для полноты, вот некоторые из туннельных служб localhost, о которых я знаю:
- PageKite - это бесплатное программное обеспечение (Python) с услугой онлайн-оплаты "платите за вас". Вы можете создать столько долгоживущих поддоменов, сколько хотите, включен сертификат SSL wildcard, а интерфейсные реле выполняются в нескольких географических точках, чтобы обеспечить избыточность и отзывчивость.
- Localtunnel - это бесплатное (спонсируемое Twilio) решение Ruby, которое дает временные имена соединений. Обратите внимание, что имена переработаны, поэтому вы можете увидеть неожиданный трафик, пока соединение находится в режиме реального времени.
- Showoff.io и Tunnlr.com - это проприетарная платная услуга, сопоставимая с Localtunnel, основанная на той же базовой технологии (ssh-туннели).
(Извините, что не ссылался на последние два, SO-защита от спама мешает мне быть справедливым для моих конкурентов. -)
Ответ 4
Нашел этот отличный бесплатный инструмент сегодня - очень легко настроить и работает как шарм! Также доступны версии для Mac OS, Linux и Windows.
(я никак не связан с ним)
Ответ 5
Это работало для меня для доступа к серверу rails с IP-адресом по локальной сети:
- Брандмауэр должен быть отключен.
-
/etc/hosts должны иметь следующую запись:
127.0.0.1 192.168.100.12
где 192.168.100.12 - это IP-адрес, который может быть найден командой ifconfig в терминале.
-
Запустите сервер рельсов с помощью этой команды:
rails server -b 0.0.0.0 -p 8080
Мне удалось получить доступ к моему локальному хосту через http://192.168.100.12:8080/
Ответ 6
после прочтения этой темы (и предложений, работающих!) Я собрал единственное руководство для решения этой проблемы. Эта ссылка на это руководство, в котором есть скриншоты для каждого шага и где искать. Или текст будет вставлен ниже. Спасибо за помощь!
Прежде всего, ваш телефон и ноутбук должны быть подключены к той же сети WiFi. Если вы используете мобильный телефон для мобильных телефонов, он все равно будет работать. Однако перед тем, как двигаться вперед, обязательно подключите оба устройства к одной сети.
Затем заберите свой IP-адрес телефона. Для этого я использую приложение Network Info II. Существует определенно другой способ добиться этого. Однако Network Info II работает по мере необходимости и является документом для этого руководства.
Теперь откройте терминал на своем компьютере (не беспокойтесь о том, в каком каталоге вы находитесь) и запустите команду sudo nano/etc/hosts/. После ввода системного пароля вы увидите в верхней части терминала строку чисел со следующим словом localhost. Localhost на самом деле является просто псевдонимом для вашего собственного адреса сервера, так что, когда вы переходите на localhost в браузере, он просто перенаправляет HTTP-запрос на ваш локальный компьютер. Чтобы связать ваш телефон с этим контуром, введите его IP-адрес прямо между строкой чисел и Localhost.
Чтобы сохранить это, нажмите control + X, а затем Y, когда будет предложено сохранить. После этого клавиша ввода вернет вас к стандартной командной строке.
Откройте вторую вкладку в терминале и запустите локальный сервер. Я тестировал это только с помощью простого сервера python, который может запускаться на терминале python -m SimpleHTTPServer 8000. Тем не менее, я предполагаю, что вы можете запустить любой локальный сервер, который вам нравится, поскольку все, что вам нужно для ссылки - номер порта. Если вы используете простой сервер python, этот номер порта составляет 8000.
Запустите ifconfig в терминале. Это приведет к появлению большого количества информации, на которую вы должны прокручиваться примерно на полпути. То, что вы ищете, представляет собой строку чисел, которые следуют после inet и перед сетевой маской внутри ключа en0: или en1:.
Готово! На вашем Android откройте браузер и посетите номер inet, затем двоеточие (:) и номер порта.
Ответ 7
Хотя один ответ принят, но это сработало для меня:
- Убедитесь, что ваш компьютер и устройство Android находятся в одной сети.
- получить адрес вашего компьютера. (в случае макроса типа
ifconfig
внутри терминала и поискатьen0/en1 -> inet
он должен быть чем-то вроде19*.16*.1.4
.) -
Откройте настройки своего мобильного телефона и перейдите в сеть → долгое время нажмите Wi-Fi-сеть → измените сеть → прокрутите вниз до дополнительных параметров → выберите руководство прокси-сервера и в прокси-хосте введите ваш адрес, т.е.
19*.16*.1.4
внутренний порт введите свой порт. и сохраните его. -
найдите
what is my ip
в google chrome и получите свой ip, скажем, что это1**.1**.15*.2**
- попробуйте получить доступ к
1**.1**.15*.2**:port/
с вашего мобильного устройства.
Это так же просто, как это.