Як локально перенаправити домен на інший?


26

Мій файл / etc / hosts виглядає так:

127.0.0.1       localhost
10.20.7.67      testsitealpha.dev
othersite.dev   testsitebeta.dev

Перші дві роботи. Останній ні. Чому ні? Як змусити його працювати? Причиною цього я є те, що у мене є тестовий сервер (othersite.com), який знаходиться в локальній мережі, але його ip може відрізнятися. наприклад 10.20.7.98 один день, 10.20.7.35 інший тощо.

Отже, як змусити мою систему завжди розв’язувати testitebeta.dev до того ж ip, що і othersite.dev?

Відповіді:


11

Як вже писав Кріс, проблема полягає в тому, що "othersite.dev" - це не число. Необхідний формат IP hostname1 [hostname2] [hostname3].

Однак більш глибокою проблемою є непорозуміння щодо файлу хосту та, можливо, взагалі про DNS. Фактично, хост-файл не був розроблений для переадресації. Це було просте рішення ще з тих пір, коли процесор цикла там, де дорого. У ньому бракувало таких функцій, як можливість підлаштовуватися під швидкі зміни IP-адрес без необхідності редагувати файл вручну. Ці проблеми були вирішені шляхом переходу з хост-файлу на мережеву систему роздільної здатності.

Тому справжньою відповіддю на вашу проблему є не використання /etc/hosts, а використання цієї ієрархічної системи розподілених імен . Це можна зробити кількома способами. Один із способів - CNAME, як запропонував Кріс. Іншим способом було б надати другому серверу фіксовану IP-адресу. Як реальна статична адреса, так і зробити бронювання на сервері DHCP.


1
Не та відповідь, яку я шукаю. Це для розвитку; Я не хочу змінювати інші машини, оскільки доменне ім'я (testingitebeta.dev) не потрібно бути доступним з будь-якого місця, крім моїх місцевих. Я просто хочу, щоб сказати своєму комп’ютеру "ставитись до імені X, як це було Y".
Benubird

3
У такому випадку ви хочете встановити локальний DNS-сервер і використовувати його як резолюцію.
Геннес

4
Локальний DNS-сервер, здається, є рішенням. Для майбутніх відвідувачів я вважаю це корисним: superuser.com/q/45789/75287
Benubird

@Benubird: Я також шукаю те саме рішення. Але не міг її отримати. Чи можете ви пояснити трохи далі, як налаштовуєте?
Джей Чакра

3

Формат / etc / hosts - "IP" "Hostname" - як 127.0.0.1 localhost

Вам потрібен CNAMEлокальний сервер DNS, щоб досягти того, що вам потрібно. Ви можете отримати IP-адресу "othersite.dev" і пов'язати його з "testitbeta.dev", як ви робили з "testitalpha.dev", але коли цей IP-адрес зміниться, вам доведеться також змінити /etc/hostsфайл.


1

Якщо othersite.com має динамічний IP, але він завжди доступний по імені, ви повинні покладатися на його зареєстрований DNS, завжди посилаючись на його ім’я.

Ваше рішення - зробити testitebeta.dev URL-адресою для перенаправлення для othersite.com.

Перенаправлення ServerName testingitebeta.dev / http://othersite.com

Таким чином othersite.com завжди працює (не порушуючи це з неправильним записом хоста), а testingitebeta.dev завжди переспрямовується на othersite.com шляхом вирішення імені на потрібний IP.

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