Как перенаправить домен на другой домен локально?


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 другой и т. д.

Итак, как мне заставить мою систему всегда разрешать testsitebeta.dev к тому же ip, что и othersite.dev?

Ответы:


11

Как уже писал Крис, проблема в том, что "othersite.dev" - это не число. Формат вам нужен IP hostname1 [hostname2] [hostname3].

Более глубокая проблема, однако, заключается в неправильном понимании файла хоста и, возможно, DNS в целом. В основном файл хоста не был предназначен для перенаправлений. Это было простое решение, когда процессор работал слишком дорого. В нем отсутствовали такие функции, как возможность настраиваться на быстро меняющиеся IP-адреса без необходимости редактирования файла вручную. Эти проблемы были решены путем переключения с файла хоста на сетевую систему распознавания.

Поэтому реальный ответ на вашу проблему - не использовать /etc/hosts, а вместо этого использовать эту иерархическую систему распределенных имен . Вы можете сделать это несколькими способами. Одним из способов является CNAME, предложенный Крисом. Другим способом было бы дать второму серверу фиксированный IP-адрес. И реальный статический адрес, или зарезервируйте на DHCP-сервере.


1
Не тот ответ, который я ищу. Это для развития; Я не хочу изменять какие-либо другие машины, так как доменное имя (testsitebeta.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, всегда ссылаясь на него по имени.

Ваше решение состоит в том, чтобы сделать testsitebeta.dev перенаправляющим URL для othersite.com.

Имя_сервера testsitebeta.dev Redirect / http://othersite.com

Таким образом, othersite.com всегда работает (не нарушая его при неверном вводе хоста), и тестыitebeta.dev всегда перенаправляются на othersite.com путем преобразования имени в правильный IP-адрес.

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