Описанная здесь проблема может вообще не относиться к DNS.
Вы должны знать, что Windows может преобразовать имя хоста Windows в его IP-адрес с помощью других механизмов, отличных от стандартного DNS: поиск NetBIOS, WINS, ...
Как вы сказали, на вашем Ubuntu установлена Samba, вероятно, именно это и происходит. На всех ваших компьютерах с Windows возможно, из коробки, преобразовать имя Windows в его IP-адрес. Поскольку Samba установлена на Ubunut, для вашего ПК с Windows они видят ПК с Ubuntu как ПК с Windows, и возможно такое же разрешение.
Вы говорите, что работаете net view
в Windows и видите свой Ubuntu PC, поэтому имя NetBIOS хорошо опубликовано в вашей сети, поэтому оно работает из Windows.
Чтобы добиться того же поведения в Ubuntu, что и в Windows, вам необходимо установить и настроить дополнительные части программного обеспечения. Вам нужно добавить библиотеку поиска, которая позволит Ubuntu преобразовывать имена NetBIOS в IP. Эта библиотека содержится в пакете libnss-winbind .
Как и любые другие пакеты Ubuntu, вы устанавливаете его, делая sudo apt-get install libnss-winbind
. Может быть, библиотека уже установлена, вы можете проверить ее наличие, выполнив dpkg -l|grep libnss-winbind
.
Как только библиотека установлена, вы должны включить ее в /etc/nsswitch.conf
файле. Этот файл является файлом конфигурации для NSS ( Name Service Switch ), который определяет, из каких источников Linux может разрешать имена хостов, имена пользователей, имена групп и так далее.
В этом файле у вас уже есть строка, начинающаяся с hosts:
, вероятно, выглядит так
hosts: files dns
Это говорит вашей системе сначала посмотреть в /etc/hosts
файл, а затем в настроенный DNS для разрешения имен хостов.
Вы должны изменить этот способ:
hosts: files dns wins
Обратите внимание, что порядок файлов слов , днс и побед важны. Сначала система проверит локальный файл на предмет разрешения, затем запросит DNS-сервер и, наконец, если он еще не найден, выполнит поиск NetBIOS.
После того, как это будет обновлено, для правильной работы вам также потребуется запустить службу winbind . Пакет, содержащий его, является зависимостью от libnss-winbind , поэтому он был установлен вместе с ним.
Делай, service winbind start
чтобы активировать его.