Очень часто домены или поддомены привязываются к некоторым IP-адресам.
Однако я хотел бы сделать наоборот:
Я хотел бы связать IP-адрес 42.42.42.42 с поддоменом, например, с test.example.com, чтобы при посещении 42.42.42.42 мне показывалось содержимое test.example.com.
Я пробовал редактировать /etc/hosts, но это не сработало. Похоже, что нельзя указать IP-адрес поддомена.
Есть идеи? Все мои поиски в Google приводят меня к руководствам, объясняющим, как перенаправить домен на IP... Но мне нужно просто обратное.
обновление: я не владею IP и не владею доменным именем
решение1
Для этого вам не нужен DNS.
Просто добавьте IP-адрес в качестве псевдонима в test.example.com
блоке сервера в конфигурации вашего httpd.
Пример для Apache:
<VirtualHost *:80>
DocumentRoot "/www/example1"
ServerName test.example.com
ServerAlias 42.42.42.42
# Other directives here
</VirtualHost>
решение2
Указать [под]домен на IP-адрес легко, поскольку преобразование имени хоста в IP-адрес является частью обычной процедуры установления HTTP-соединения.
Указание IP-адреса на другое доменное имя действительно потребует введения еще одного раунда разрешения DNS в процесс. Это можно сделать на уровне протокола HTTP: это то, что такое HTTP-перенаправление... но это потребует управления целевой системой по IP-адресу 42.42.42.42. Любые более низкие уровни протокола на самом деле не имеют возможности ввести еще один раунд разрешения DNS. Но если вы посмотрите IP-адрес test.example.com заранее, подстановка его IP-адреса вместо 42.42.42.42 возможна.
Если вы хотите перенаправить IP-адрес, вам, по сути, нужно будет контролировать либо клиентскую систему, либо ее сеть, либо систему, содержащую IP-адрес, который вы хотите перенаправить. Поскольку вы сказали, что не контролируете целевой IP-адрес, вам нужно будет сделать это на стороне клиента.
Если вы контролируете клиентскую систему, вы можете использовать iptables
правило DNAT в цепочке правил OUTPUT для перенаправления трафика с 42.42.42.42 на целевой FQDN. Если вы это сделаете, разрешение имени для целевого FQDN произойдет только один раз, когда вы настроите правило: поэтому перенаправление фактически заменяет один IP-адрес на другой. Правило на клиенте будет таким:
iptables -t nat -A OUTPUT -p tcp -d 42.42.42.42 --dport 80 -j DNAT --to-destination test.example.com:80
Если вы контролируете сеть клиента, то у вас также есть возможность выполнить перенаправление через обычный WWW-прокси (если клиент настроен на использование прокси-сервера, которым вы можете управлять) или через прозрачный прокси (если в клиенте нет явной конфигурации прокси-сервера).