Проблема с именем хоста в Ubuntu

3291
botismarius

после обновления до Ubuntu 10.10 настройки имени хоста перестали быть правильными. Содержимое / etc / hosts при каждом запуске изменяется на что-то вроде:

127.0.0.1 mariusbotis localhost.localdomain localhost :: 1 mariusbotis localhost6.localdomain6 localhost6 10.8.3.105 mariusbotis mariusbotis.office 

У вас есть идеи, как избавиться от первых двух строк? Простое редактирование их не поможет: после следующего перезапуска строки вернутся туда. Проблема в том, что теперь сеть разрешает мое имя хоста на 127.0.0.1 вместо 10.8.3.105:

~: $ ping mariusbotis PING mariusbotis (127.0.0.1) 56 (84) байт данных. 64 байта от mariusbotis (127.0.0.1): icmp_req = 1 ttl = 64 время = 0,022 мс 64 байта от mariusbotis (127.0.0.1): icmp_req = 2 ttl = 64 времени = 0,023 мс 64 байта от mariusbotis (127.0.0.1): icmp_req = 3 ttl = 64 времени = 0,021 мс 64 байта от mariusbotis (127.0.0.1): icmp_req = 4 ttl = 64 времени = 0,022 мс 
2

2 ответа на вопрос

2
Tronic

Это на самом деле ожидаемое и предполагаемое поведение. Вы хотите, чтобы соединения с вашего собственного хоста проходили через петлевой интерфейс (интерфейс, связанный с вашим собственным хостом), который по умолчанию имеет IP 127.0.0.1 (в IPv4) и :: 1 (в IPv6). Если ваша внешняя сеть была недоступна, вы больше не могли бы получать доступ к службам на своем компьютере, включая, помимо прочего, X-сервер и другие демоны.

Обратите внимание, что файл / etc / hosts используется только на вашем компьютере. Если у вас есть файлы хостов (или DNS), настроенные на других хостах в вашей сети, вы все равно получите доступ к вашему компьютеру под именем «mariusbotis».

Может быть, вы могли бы уточнить, почему mariusbotis разрешается до 127.0.0.1 для вас.

[1] http://en.wikipedia.org/wiki/Hosts_file

Обратная петля (localhost) должна быть разрешена до 127.0.0.1. У меня есть приложение, которое просто не работает из-за этих настроек, я пока не уверен, почему. В любом случае, 127.xyz должен быть только адресом обратной связи. botismarius 14 лет назад 0
Возможно, ваше приложение явно прослушивает только 10.8.3.105 и соответствующий сетевой интерфейс. Возможно, вы сможете изменить настройки и заставить его прослушивать все интерфейсы. Можете поделиться, какое приложение доставляет вам неприятности? Tronic 14 лет назад 1
Мое приложение находит имя хоста, сопоставляет его с IP-адресом и прослушивает этот адрес (в моем случае приложение будет прослушивать 127.0.0.1, который явно не будет доступен с других компьютеров). К сожалению, я не могу изменить поведение приложения ... botismarius 14 лет назад 0
Правильно ли я понимаю, что приложение автоматически находит имя хоста, а также выполняет поиск IP? Просто некоторые идеи: попробуйте удалить не всю строку, а только имя вашего хоста "mariusbotis" из первой строки. Если вы используете DHCP, это может переписать файл -> изменить на статический IP. Но опять же, я бы рассмотрел эти хаки / обходные пути .. Tronic 14 лет назад 0
Что ж, очень странно, что по умолчанию Ubuntu делает это. Попробуйте на своей машине проверить связь с вашим именем хоста, 127.0.0.1 отвечает на запрос или другой IP? В случае, если что-то не работает, как ожидалось, решение, если таковое есть, не должно считаться хаком. botismarius 14 лет назад 0
На всех машинах с Ubuntu, которые я только что проверил, он отвечает "from" `127.0.0.1`. Это действительно настройка по умолчанию. Но это не должно мешать любому приложению прослушивать другой интерфейс. Tronic 14 лет назад 0
1
James Royer

Чтобы добавить к обсуждению, я только что обновил Ubuntu 10.04 до Ubuntu 10.10, и у меня возникла та же проблема, что и у botismarius. Я разрабатываю веб-приложения на своем ноутбуке и использую псевдонимы в файле / etc / hosts, которые используются apache2 в качестве имени виртуального хоста.

Файл / etc / hosts не был перезаписан в 10.04, но теперь он перезаписывается в 10.10. Я просто хочу вставить «test1.local» в конец строки localhost, но он теряется при каждой перезагрузке.

Обновление: я выяснил, как сохранить NetworkManager от перезаписи изменений. Не добавляйте псевдонимы в строку localhost, добавьте их в строку «127.0.1.1 your-machine-name».

Джейми

интересно. Интересно, почему в этом случае ping на ваше имя машины не отвечает из 127.0.1.1 (IP-адрес, который тоже из интерфейса обратной связи) botismarius 14 лет назад 0
NetworkManager добавляет запись в верхней части файла с назначенным DHCP-адресом и связывает ее с именем хоста. Я предполагаю, что это подхватывает первое, которое это находит. James Royer 14 лет назад 0

Похожие вопросы