Если я использую Ubuntu или Linux Mint (только два варианта, которые я пробовал и знаю наверняка, работают), я могу запустить что-то вроде этого:
wayne@myhost$ ssh wayne@otherhost.local
И имя автоматически разрешается в зависимости от того, какой IP-адрес другого хоста находится в моей локальной сети.
Я решил начать разветвляться на другие дистрибутивы, и у меня на ноутбуке работает Arch - но если я попытаюсь использовать предыдущую команду, я получу Could not resolve hostname otherhost.local: Name or service not known
Что нужно для того, чтобы добиться такого рода автоматического разрешения имен (?)?
networking
arch-linux
hostname
Уэйн Вернер
источник
источник
avahi
а такжеnss-mdns
- для более подробной информации взгляните на Arch WikiОтветы:
Собственный ответ Уэйна к настоящему времени уже устарел. С тех пор Arch переключился на использование systemd вместо сценариев инициализации. Страница Avahi Arch wiki обновлена и содержит подробную информацию о том, почему необходимы следующие шаги. Вкратце: Avahi - это инструмент zeroconf, то есть сам по себе не требует настройки для работы после установки на всех компьютерах вашей локальной сети, но вы должны сконфигурировать оставшуюся часть программного обеспечения, чтобы он действительно запрашивал информацию у Avahi.
Запустите их как пользователь root или добавьте их,
sudo
если необходимо, в терминале и заменитеnano
выбранным редактором.pacman -S avahi nss-mdns
Устанавливает демон служб Avahi и распознаватель многоадресной DNS.nano /etc/nsswitch.conf
Этот файл сообщает библиотеке C, как получить информацию службы имен.hosts: files dns myhostname
наhosts: files mdns_minimal [NOTFOUND=return] dns myhostname
, сохраните и выйдите.systemctl start avahi-daemon
Запускает службу Avahi вручную, так как мы уже загружены. Ищите ошибки)systemctl enable avahi-daemon
Включает службу Avahi при загрузке.Я только что выполнил эти шаги на ноутбуке Arch, и не было необходимости перезапускать какие-либо другие службы или интерфейс Wi-Fi, чтобы мои другие машины обнаружили его в течение нескольких секунд, и чтобы мой ноутбук обнаружил их службы.
Поскольку я пока не могу комментировать ответ ggg, я просто хотел бы указать здесь, что нет необходимости делать это в скрипте запуска - для этого и нужна поддержка сервиса в systemd. Сделай это один раз и забудь об этом.
источник
systemctl enable avahi-daemon --now
. Он запускает и активирует сервис немедленно, вместо ожидания следующего запуска.Благодаря указателю на статью Arch Wiki об Avahi от Ульриха Дангела, я сделал следующее:
$ sudo pacman -S avahi nss-mdns
/etc/rc.d/avahi-daemon start
в конецrc.local
dhcpcd
,/etc/dhcpcd.conf
я закомментировалnoipv4ll
строку.$ sudo /usr/sbin/avahi-autopid -D wlan0
. Поскольку я не люблю перезапуск, я не уверен, был ли необходим шаг 3./etc/nsswitch.conf
I установить линию для чтенияhosts: files mdns4_minimal dns mdns4
.$ sudo /etc/rc.d/dbus restart
чтобы перезапустить dbus.После этого просто заниматься
ssh wayne@other.local
просто получалось.источник
Я не думаю, что нам нужно
avahi-daemon
бегать, чтобы использовать.local
. Вот то, что я имею в моем сценарии запуска. Это намного проще по сравнению с методом Arch Wiki.источник