Як налаштувати хост для IP-відображення на не вкоріненому Android?


10

У мене на комп’ютері працює веб-сайт, і я хочу перевірити його на своєму планшеті Nexus 7. Тобто через локальну мережу WiFi. Якщо я ввожу IP-адресу, вона підключається, але показує неправильний веб-сайт, оскільки я використовую віртуальний хостинг.

Отже, що я хочу зробити - це змогти набрати mysite.localв Chrome / Firefox на Nexus, змусити їх перетворити їх у 10.1.2.3(або що б не було місцевої IP-адреси), а потім зателефонувати на 10.1.2.3сервер, який надає mysite.localхосту запит.

Моє запитання: Чи має планшетний ПК Android 4.x /etc/hostsфайли чи еквівалент, які я можу редагувати? (Без необхідності викорінювати планшет або щось подібне.)

На своїх комп’ютерах Linux я це роблю, додаючи запис у /etc/hosts:

10.1.2.3  mysite.local

(Або Windows\System32\drivers\etc\hostsна машині Windows робить те саме.)

До речі, це напівдублікат Ручного встановлення імені хоста для IP-адреси (тобто / etc / hosts equiv.?) , Але це питання було для Android 2.2, де, мабуть, це було неможливо. (Однією з альтернативних ідей, запропонованих, було налаштувати DNS на локальному маршрутизаторі, але, наскільки я можу сказати, мій маршрутизатор не робить DNS локально, тому не має такої можливості. Я міг би створити власний сервер DNS для цього, але це відчувається як рішення великої роботи.)


Це швидше питання про помилку сервера або суперкористувача . І вам слід встановити ці хости імена з вашим локальним сервером (який подається вашим сервером DHCP як вузол DNS).
Іззі

1
@Izzy Спасибі Izzy, але я знаю, як налаштувати / etc / hosts на сервери. Що я не знаю, як зробити, це знайти / редагувати еквівалент на планшеті Android 4.x (або навіть якщо є еквівалент, не вкорінюючи його). (Схоже, мій сервер DHCP, тобто wifi-маршрутизатор, не пропонує варіантів додавати власні імена. У мене є можливість вказати користувальницький DNS-сервер, але це грязний пул, до якого я дуже не хотів прикладати руки. )
Даррен Кук

Ви неправильно зрозуміли, Даррен: Я не пропонував редагувати /etc/hosts, але налаштувати ваш "сервер імен" (наприклад, DNSMasq або все, що ви використовуєте). Ваш маршрутизатор може дати вам місце для цього. /etc/hostsпотрібно редагувати на кожній машині інакше - і відповідний файл на Android можна редагувати лише з "root root" (я не знаю його точного розташування поза головою, але це десь усередині /data/systemAFAIR). Див.: Як редагувати файл etc / hosts
Izzy

Відповіді:


6

Ви не можете просто редагувати файл хостів на Android, оскільки він розташований у файловій системі лише для читання: /system/etc/hostsдив.

Альтернативи:

  • використовуйте DNS-сервер, як DNSMasq у вашій локальній мережі, щоб піклуватися про це "центрально"
  • використовувати "root повноваження" для примусового редагування системного файлу, як описано вище
  • встановіть на локальному пристрої Android "локальний сервер DNS", щоб використовувати це, наприклад DNS-сервер

ей Іззі, я намагався використовувати сервер DNS для вирішення цього питання, оскільки у мене немає кореневого доступу до телефону; Я додав просте правило, яке перенаправляє ім'я хоста на відповідний ip .., але воно не працює .. що я роблю неправильно?
Джордж Катсанос

DNS-сервер повинен обслуговувати інші пристрої у вашій мережі (як зазначено в описі, для цього потрібно додатково використовувати переадресацію портів). Для цього завжди потрібні ці пристрої (включаючи ваш Android-пристрій), налаштовані на його використання. Я не використовував жодного такого DNS-сервера на своїх пристроях Android, тому не перевіряв, що саме тут потрібно робити; але, швидше за все, вам потрібно буде відрегулювати записи DNS у налаштуваннях вашої мережі (довго натискайте запис WiFi мережі, вибравши "Розширений" та налаштуйте перший запис DNS - другий залиште як "для резервного копіювання").
Іззі

@GeorgeKatsanos Можливо, вас зацікавить це: stackoverflow.com/a/14211550/1768141
Vinayak

2

Як згадував lzzy, для цього можна використовувати сервер DNSMasq . Але Chrome використовує власний процес вирішення DNS, і цей метод може не працювати.

Для запуску сервера використовуйте таку команду:

sudo /usr/local/sbin/dnsmasq -d \
                             --no-hosts \
                             --no-resolv \
                             --conf-file=/dev/null \
                             --server=8.8.8.8 --server=8.8.4.4 \
                             --address=/example.com/192.168.0.101
  • sudo потрібно прив’язати до порту 53
  • -d запустити сервер на передньому плані
  • --no-hosts не використовувати локальний файл хостів
  • --conf-file=/dev/null не використовувати жоден конфігураційний файл
  • --server=8.8.8.8 --server=8.8.4.4 адреси серверів висхідного рівня (у цьому прикладі Google DNS)
  • --address=/example.com/192.168.0.101господарів, щоб перекрити. Вам потрібно додати хостів у цьому рядку. Ви також можете додати туди кілька хостів.

Потім змініть DNS-сервер на пристрої. Це легко зробити за допомогою програми DNS Changer .

Після цих кроків запити до цих хостів слід надсилати на ваші адреси.


0

Найпростіший спосіб визначити хост для IP-відображення - це hostsфайл, оскільки в основному DNS-роздільники шанують цей файл . Але, як згадується в інших відповідях, редагувати /etc/hostsбез вкорінення пристрою Android неможливо . Доступ до веб-сервера з IP-адресою також не працюватиме для вас через віртуальний хостинг. Ось кілька варіантів, з якими ви можете скористатися на неприкореневих пристроях:

  • Використовуйте додаток VPN, яке перехоплює DNS-трафік і шукає користувальницький hostsфайл перед тим, як робити запити для налаштованого вище сервера DNS.
  • Запустити DNS-сервер; вони можуть бути налаштовані для повернення заздалегідь визначеної IP-адреси для конкретного імені. Наприклад, якщо використовується dnsmasq, додайте address=/mysite.local/10.1.2.3до "dnsmasq.conf" . Або dnscrypt-proxyдодати mysite.local 10.1.2.3в "cloaking-rules.txt" .
  • Налаштуйте телефон для використання проксі-сервера або VPN, а потім додайте запис 10.1.2.3 mysite.localдо hostsфайлу на проксі-сервері або запустіть локальний DNS-сервер на VPN-сервері.
  • Якщо завантажувач не відкривається, відредагуйте hostsфайл із спеціального відновлення.

Детальніше дивіться у розділі: Як завжди дозволити доменне ім'я до фіксованого IP без вкорінення?


ПОВ'ЯЗАНІ:

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.