Вопрос или проблема
В файле /etc/hosts
я добавил следующую строку:
github.com git.hub
В браузере Chrome, когда я ввожу адрес git.hub
, он не перенаправляет на github.com
, а вместо этого выполняет поиск.
В терминале Linux (например, bash), когда я ввожу команду ping git.hub
, выводится git.hub: Имя или служба не известны
.
В моем файле /etc/nsswitch.conf
конфигурация hosts
выглядит так:
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
Я полагаю, это означает, что сначала проверяется /etc/hosts
, а затем DNS.
Так почему git.hub
не может стать псевдонимом для github.com
после моей конфигурации?
И есть ли способ это осуществить, не изменяя записи DNS?
Файл /etc/hosts
не связывает имя хоста с другим именем хоста таким образом, как вы пытаетесь это сделать. Он связывает имя хоста с IP-адресом, и точка. IP-адрес указывается в первом (левом) поле строки. Имя хоста находится во втором поле строки.
Вы можете включить третье, четвертое поле и т. д. в строке, каждое с альтернативным именем хоста, но эти имена будут связаны с IP-адресом первого поля, а не с любыми именами хостов в других полях.
Это может дать вам короткий список имен, которые все достигают одной и той же цели, но целью является IP-адрес. Если сайт, который вы хотите достичь, такой же, как Github, его IP-адрес будет изменяться время от времени. Когда он изменяется, все имена в строке не будут работать.
Ранее я использовал такое привязывание в своем файле /etc/hosts
, но это стало слишком разрушительным, потому что сайты в Интернете слишком часто меняли свои IP-адреса.
Ответ или решение
Ваша ситуация связана с неправильным использованием файла /etc/hosts
. Давайте разберём детали и предложим решение вашей задачи.
Описание проблемы
Вы добавили следующую строку в файл /etc/hosts
:
github.com git.hub
Это не сработает так, как вы ожидаете, поскольку файл /etc/hosts
фактически связывает IP-адреса с доменными именами, а не одно доменное имя с другим. Формат, который вы используете, является некорректным. В данном случае строка должна выглядеть примерно так:
<IP-адрес> git.hub github.com
Решение
Чтобы сделать git.hub
псевдонимом для github.com
, вам нужно определить IP-адрес GitHub в файле /etc/hosts
. Однако учтите, что IP-адреса крупных сервисов, таких как GitHub, могут изменяться. Вы можете использовать команду ping
для получения текущего IP-адреса:
ping github.com
Допустим, вы получили IP-адрес, например 140.82.112.3
. Теперь вы можете обновить файл /etc/hosts
, добавив следующую строку:
140.82.112.3 git.hub github.com
После этого, если вы введёте git.hub
в браузере или выполните команду ping git.hub
, она должна распознаваться и перенаправляться на GitHub.
Важно
Имейте в виду, что этот способ может привести к проблемам, если IP-адрес GitHub изменится. Поэтому рекомендуется использовать этот подход только для локальных тестов или когда у вас есть контроль над IP-адресом хостинга. В противном случае лучше всего полагаться на DNS.
Заключение
Если вы хотите, чтобы ваши сетевые запросы через git.hub
направлялись на GitHub, добавьте строку с IP-адресом и альтернативными именами в файл /etc/hosts
. Однако учитывайте потенциальные проблемы с изменением IP-адресов и пользуйтесь данным подходом с осторожностью.