Решено: убедитесь, что libnss-mdns установлен!
У меня проблемы с использованием SSH с моего нетбука на рабочий стол с использованием имени хоста .local. Время от времени мне приходится сбрасывать используемый маршрутизатор, который сбрасывает адреса, которые он выдает моим устройствам, поэтому некоторое время назад я настроил Avahi, чтобы обойти это *. Файл /etc/avahi/services/ssh.service является стандартным, скопированным из документации:
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<!-- See avahi.service(5) for more information about this configuration file -->
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_ssh._tcp</type>
<port>22</port>
</service>
</service-group>
Раньше это работало нормально, но теперь по какой-то причине, когда я пытаюсь выполнить ssh со своего нетбука на рабочий стол, я получаю следующее сообщение об ошибке (обратите внимание, что в этом выводе я изменил имя хоста моего компьютера):
user@netbook>> ssh pc.local -vvv
OpenSSH_6.2p2 Ubuntu-6ubuntu0.3, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /home/username/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
ssh: Could not resolve hostname pc.local: Name or service not known
Я могу ssh с моего нетбука на мой ПК, когда я вручную ввожу IP-адрес, и когда я правильно настроил / etc / hosts (так, что демон на моем ПК работает нормально), он перестает работать, только когда я пытаюсь используйте адрес .local. Работа SSH в другом направлении (ПК-> нетбук) работает нормально, даже при использовании имени хоста .local. Avahi также, кажется, работает нормально:
user@netbook>> avahi-browse -a -t+
+ wlan0 IPv6 netbook SSH Remote Terminal local
+ wlan0 IPv6 netbook [<MAC address>] Workstation local
+ wlan0 IPv6 netbook Remote Disk Management local
+ wlan0 IPv4 netbook SSH Remote Terminal local
+ wlan0 IPv4 netbook [<MAC address>] Workstation local
+ wlan0 IPv4 netbook Remote Disk Management local
+ wlan0 IPv4 pc SSH Remote Terminal local
+ wlan0 IPv4 pc [<MAC address>] Workstation local
+ wlan0 IPv4 pc Remote Disk Management local
+ wlan0 IPv6 pc SSH Remote Terminal local
+ wlan0 IPv6 pc [<MAC address>] Workstation local
+ wlan0 IPv6 pc Remote Disk Management local
Нетбук работает под управлением Lubuntu 13.10; обратите внимание, что я недавно перешел на Lubuntu, и я помню только то, что видел эту ошибку с Lubuntu, а не с простой Ubuntu. Мой рабочий стол работает под управлением Ubuntu 13.10.
Любая помощь будет оценена!
* Я знаю, что могу настроить мой маршрутизатор на постоянную выдачу заданных адресов обоим устройствам, и я сделаю это, если не смогу решить эту проблему, но я бы предпочел попытаться исправить это, а не обойти это.
ETA: Проверка связи компьютера с нетбуком с именем хоста .local не работает (неизвестный хост).
Изменить 2: Содержание /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
hosts: files mdns4_minimal dns [NOTFOUND=return] mdns4
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
источник
ssh user@hostname:/folder
?ping pc.local
?strace ssh user@foo
также покажет, что ssh связывается с avahi-daemon с просьбой разрешитьfoo
, что истекло ... В моем случае изменилось/etc/nsswitch.conf
: с "hosts: files mdns4_minimal [NOTFOUND=return] dns
" на "hosts: files dns mdns4_minimal
". Не уверен, почему демон avahi, как предполагается, НЕ запрашивает DNS-серверы, возможно, он должен что-то делать с несовместимостью между многоадресным DNS и DNS в локальной сети (см. Также: TLD .local ... в.local
любом случае это плохая практика)Ответы:
Ну,
*.local
не решены.Так на клиентской машине (ноутбуке)
устанавливать
avahi-dnsconfd
avahi-dnsconfd
слушает публикации и передает ихresolvconf
.Установить
libnss-mdns
(эта библиотека отсутствовала, ее установка устранила проблему в данном случае)Проверьте
/etc/nsswitch.conf
Должно быть
mdns4_minimal
илиmdns4
до,[NOTFOUND=return]
и до,dns
если у вас есть DNS-сервер, который настроил разрешение*.local
.Удалите,
wins
если вы не используете winbind / samba для разрешения имен хостов Windows.перезагружать
Отклоняющие намеки:
Клиентский компьютер (ноутбук)
Проверьте
avahi-dnsconfd
статус сервисаЗапустите
avahi-discover
, ваш рабочий стол должен быть указан в IPv4 → локальный → рабочая станцияПример на скриншоте
mx5
- мой компьютер, на которомsalah-Aspire-5738
находится другая машина.Посмотрим, сможет ли Avahi разрешить имена хостов
Пинг тест
Серверная машина (Desktop) , в случае, если
avahi-discover
на клиентской машине не указана запись Сервера.Подтвердите, что
avahi-daemon
установленоavahi-daemon
оказывать услуги издательского дела.Проверьте его сервисный статус
По умолчанию
avahi
публикуют_workstation._tcp
сервис. проверить использованиеavahi-discover
локально, если нет в списке попробуйте включить его/etc/avahi/avahi-daemon.conf
(удалить#
)Затем перезапустите демон:
Проверить снова.
источник
avahi-discover
иavahi-dnsconfd
не были установлены на моем нетбуке или ПК, поэтому я установил их на обоих. Я также отредактирован ,/etc/nsswitch
чтобы выглядеть как образец вы предоставили (ранее только записи были файлы и DNS) , но какping
и доavahi
сих пор дают ту же ошибку. Еще совет?wins
не помогло.avahi-dnsconf
это работает на нетбуке (хотя я должен был использоватьsudo service avahi-dnsconfd
в список, в противном случаеservice
будет реагировать с неизвестной работой).avahi-discover
(при запуске на моем нетбуке) выводит список рабочего стола (и правильно) как под заголовком «Рабочая станция», так и под заголовком «ssh». Тем не менее я все еще не могу пинговать или ssh на ПК, используя имена хостов .local. Я проверил демон на рабочем столе в любом случае, иavahi-daemon
это работает. Есть идеи? (кстати, спасибо за все ваши советы, я ценю это)avahi-resolve -4 --name yourdesktop.local
?