Как/etc/hosts соответствует работе?

su доступно в большинстве систем Unix и должен работать:

su root -c 'echo "add this line to the code" >> fileName'
4
06.07.2013, 16:36
3 ответа

Как/etc/hosts соответствует работе?

Это, зависят от /etc/nsswitch.conf и /etc/host.conf решить, считать ли информацию в /etc/hosts

Как @msw сказал обработанный libc, библиотекой пространства пользователя, он считал nsswitch.conf и считал Тег "хосты: файлы DNS", затем чтение средств файла /etc/hosts и средства DNS /etc/resolve.conf

Теперь предположите удар http://www.google.com в Firefox,

  1. затем Firefox, сначала собирающийся разрешить google.com со справкой локального сопоставителя (libresolve.so), затем
  2. это - первая проверка приоритет файла и DNS,
  3. в случае по умолчанию это будет искать в "/etc/hosts" средств файла,
  4. в случае, если, если google.com не является соответствием затем, оно отошлет "/etc/resolv.conf", в этом файле это - проверка nameserver отметьте, если это не, настраивают затем сопоставитель, отправляют запрос DNS localhost на порте 53,
  5. если сервер имен определяет, предполагают nameserver 8.8.8.8, затем это отправит запрос в, например. dig google.com @8.8.8.8. конечно, теперь мы можем получить ответ запроса из лобкового DNS.

ОТРЕДАКТИРУЙТЕ 1, Также пользователи могут поддержать свой собственный файл hosts с помощью переменной "HOSTALIASES", таким образом, это сначала проверит этот файл, прежде, чем считать/etc/hosts.

Напр.

echo "fb  www.fb.com" >> ~/my_hosts
echo "export HOSTALIASES=~/my_hosts" >> ~/.bashrc
source ~/.bashrc 
3
27.01.2020, 20:47

В соответствии с Linux,/etc/hosts анализируется до соответствия для разрешения записей. Это также, как это было обработано в выпуске 1983 года 4.3 BSD, который был первым широким прокатом современного стека IP Unix.

Важно помнить, что во время 4.3 BSD, весь список Интернета соединился, хосты был сохранен в централизованном Сетевом информационном центре и пронумерован только приблизительно 325. Связанный хост получил бы список каждого хоста в Интернете от NIC, и линейный поиск через несколько сотен строк был достаточно хорош. Примерно в это время IETF понял, что это не выходило на более высокий уровень хорошо, таким образом, предложил Систему доменных имен. После этого, если у Вас было больше чем несколько сотен строк в/etc/hosts, Вы "делали его неправильно".

Обратите внимание также, что/etc/hosts обрабатывается libc, библиотекой пространства пользователя. Ядро понятия не имеет, что что-либо существует кроме a sockaddr. Таким образом, этот ответ применяется только к обработке/etc/hosts и конкретно игнорирует всеобъемлющие системы определителя имен, которые значительно различаются в их поведениях кэширования и сложностях времени.

8
27.01.2020, 20:47
  • 1
    +1 для движения к источнику (буквально) и уроку истории. Был бы upvote это дважды, если я мог. –  a CVn 06.07.2013, 23:17

2 функции, в которых Вы нуждаетесь, gethostbyname() и gethostbyaddr(), описанный в http://linux.die.net/man/3/gethostbyname, Если Вы все еще имеете nslookup доступный, попытайтесь использовать его на, например. nslookup www.google.com. Вы видите, что одно имя может привести к различным IP-адресам. Другой путь также нормален, тот же IP-адрес может указать на различные имена хостов. Для проверки этого просто добавьте IP-адреса и имена хостов к/etc/hosts и проверьте его с упомянутыми функциями.

0
27.01.2020, 20:47

Теги

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