hostname & DNS-разрешение
Тема дорожной карты · Linux & Unix Fundamentals
Идентификатор компьютера в сети — это hostname, который задается постоянно через команду hostnamectl set-hostname (управляемая systemd) или записывается в файл /etc/hostname. Разрешение DNS настраивается через файл /etc/resolv.conf, который часто управляется сервисами systemd-resolved, NetworkManager или resolvconf. Файл конфигурации /etc/nsswitch.conf определяет порядок источников информации для разрешения, включая файлы и DNS. Для диагностики используются команды dig (рекомендуется за подробный и скриптуемый вывод), host (краткий) или nslookup; команда getent hosts показывает реальный результат резолвера, включая переопределения из файла /etc/hosts.
Как это работает
Hostname и DNS-разрешение настраиваются через команды ip (управление интерфейсами, маршрутами и соседями — современная замена ifconfig/route), ss (управление сокетами — современная замена netstat), dig/host/nslookup (диагностика DNS), curl/wget (запросы HTTP), ping/traceroute/mtr (диагностика доступности), tcpdump/wireshark (захват и анализ пакетов), nc (netcat — универсальный инструмент для работы с TCP/UDP), iptables/nftables/ufw/firewalld (управление сетевыми фильтрами). В облачных виртуальных машинах некоторые команды могут работать по-другому, но базовые принципы остаются теми же.
Когда применять
Команды ss -tnlp ("какой порт открыт и кто слушает?") и ip a ("какой у меня IP?") являются первыми инструментами отладки. Команда mtr лучше сочетает в себе функциональность ping и traceroute с непрерывной выборкой данных. tcpdump используется для захвата пакетов, когда подозревают, что пакеты не доходят до цели; захваченные данные можно сохранить и разобрать в Wireshark на ноутбуке. ufw (Ubuntu) или firewalld (RHEL) предпочтительнее использования сырого iptables, пока не упрётесь в сложные случаи.
Типичные ошибки
Типичные ловушки при работе с hostname и DNS-разрешением включают в себя правку firewall-правил по SSH и блокировку себя (использование screen-сессии и задержанного восстановления); nslookup может давать другой ответ, чем dig, из-за использования разных резолверов; открытый порт 22 в интернет без fail2ban или key-only auth может стать целью атаки ботнета; путаница проблем маршрутизации и DNS (curl http://example.com работает, curl http://192.0.2.1 нет — это проблема маршрутизации, а не DNS).