Имена хостов Windows / WINS не работают даже после установки winbind 16.04 - proUbuntu
1 голос
/

Раньше я мог получать имена хостов Windows в локальной сети, разрешая их из Ubuntu, выполняя sudo apt-get install winbind, а затем редактируя /etc/nsswitch.conf (добавляя wins в конец строки hosts:). Появляется в Ubuntu 16.04 (на самом деле используется Xubuntu 16.04), этого уже недостаточно.

Пример вывода:

me@myubuntumachine:~$ ping mywindowsmachine
ping: unknown host mywindowsmachine

(теги: NetBIOS WINS)

1 Ответ

1 голос
/

Я сам изучил это, и проблема, кажется, в отсутствующей библиотеке libnss_wins.so, и я проверил, как убедиться, что это существует на моей машине, и нашел sudo apt-get install libnss-winbind, и это немедленно решило проблему.

Дополнительная информация: я проверил, что происходит, захватывая выходные данные из strace ping mywindowsmachine, и проблему было легко обнаружить, поскольку программа пыталась найти файл, которого просто не было, libnss_wins.so.2. Это показало потенциальное решение простого обеспечения наличия файла. Ниже приведен усеченный вывод strace, показывающий только строки, относящиеся к поиску этого libnss_wins.so.2 файла, и здесь важно то, что каждая попытка найти файл терпит неудачу, вплоть до последней. На моей другой машине с Ubuntu я сравнил тот же результат strace, и там он преуспел на четвертой или пятой попытке:

open("/lib/x86_64-linux-gnu/tls/x86_64/libnss_wins.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64-linux-gnu/tls/x86_64", 0x7ffd56786e80) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/tls/libnss_wins.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64-linux-gnu/tls", 0x7ffd56786e80) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/x86_64/libnss_wins.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64-linux-gnu/x86_64", 0x7ffd56786e80) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libnss_wins.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64-linux-gnu", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
open("/usr/lib/x86_64-linux-gnu/tls/x86_64/libnss_wins.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64-linux-gnu/tls/x86_64", 0x7ffd56786e80) = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/tls/libnss_wins.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64-linux-gnu/tls", 0x7ffd56786e80) = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/x86_64/libnss_wins.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64-linux-gnu/x86_64", 0x7ffd56786e80) = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/libnss_wins.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64-linux-gnu", {st_mode=S_IFDIR|0755, st_size=69632, ...}) = 0
open("/lib/tls/x86_64/libnss_wins.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/tls/x86_64", 0x7ffd56786e80) = -1 ENOENT (No such file or directory)
open("/lib/tls/libnss_wins.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/tls", 0x7ffd56786e80)        = -1 ENOENT (No such file or directory)
open("/lib/x86_64/libnss_wins.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64", 0x7ffd56786e80)     = -1 ENOENT (No such file or directory)
open("/lib/libnss_wins.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/usr/lib/tls/x86_64/libnss_wins.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/tls/x86_64", 0x7ffd56786e80) = -1 ENOENT (No such file or directory)
open("/usr/lib/tls/libnss_wins.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/tls", 0x7ffd56786e80)    = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64/libnss_wins.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64", 0x7ffd56786e80) = -1 ENOENT (No such file or directory)
open("/usr/lib/libnss_wins.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
...