Перейти к содержимому

Начало работы

К концу страницы у тебя будет конфиг, одна запись в нём и эта запись в /etc/hosts — причём всё, что уже было в файле, останется на месте.

  • Linux или macOS. hostsctl построен вокруг /etc/hosts, libc и системного сброса DNS-кеша, поэтому сборки под Windows нет.
  • sudo для команд, которые пишут в /etc/hosts. Всё остальное работает от обычного пользователя.
Terminal window
brew install jtprogru/tap/hostsctl

Остальные способы — crates.io, скрипт установки, архив релиза — на странице Установка.

Terminal window
hostsctl init

Создаётся ~/.config/hostsctl/config.yaml. Больше пока ничего не происходит: init не трогает /etc/hosts.

Terminal window
hostsctl config-path # где конфиг лежит на самом деле
Terminal window
hostsctl add 127.0.0.1 k8s.orb.local --comment orbstack

Запись попадает в группу local, которая создаётся при первом использовании. Сейчас она в конфиге, но ещё не в /etc/hosts.

Terminal window
hostsctl list
Terminal window
hostsctl diff

diff собирает то, что дал бы apply, и показывает unified diff относительно текущего файла. Он ничего не пишет и не требует root — поэтому это первая команда, когда неясно, что изменение сделает.

Terminal window
hostsctl check

check — линтер: показывает то, что /etc/hosts молча проигнорирует. Wildcard, порт в имени хоста, адрес, который не адрес. Ошибки дают код выхода 3 и блокируют apply, предупреждения — нет. Все правила перечислены в правилах проверки.

Terminal window
sudo hostsctl apply

hostsctl показывает diff, спрашивает подтверждение (-y пропускает вопрос), снимает бэкап текущего файла, пишет атомарно и сбрасывает DNS-кеш.

Terminal window
hostsctl status

status показывает конфиг, состояние управляемого блока, все группы и бэкапы. Если файл разъехался с конфигом — скажет об этом и на сколько строк.

Три уровня, от мягкого к жёсткому:

Terminal window
hostsctl disable k8s.orb.local && sudo hostsctl apply # оставить, но не использовать
sudo hostsctl off # убрать весь блок
sudo hostsctl backup restore # откатить файл

off не трогает конфиг — он только убирает управляемый блок из /etc/hosts, поэтому следующий apply вернёт всё обратно.

Руководства, по одной задаче на страницу:

Справочник, когда нужен точный ответ: