Ubuntu не может пропинговать имя хоста, но может пинговать IP?

14

ну, я просто отправился в мир Ubuntu для администрирования. Я обнаружил похожие потоки, за исключением того, что я могу пропинговать свое собственное имя хоста и IP-адрес, и мои окна могут пропинговать мое имя хоста linux, но Ubuntu не может пропинговать имя хоста windows.

Проблема:

  • У меня есть 4 компьютера с Windows, и у меня есть 1 компьютер с Ubuntu
  • Мой компьютер с Windows может пропинговать Ubuntu по имени хоста и IP-адресу. Кроме того, Net View (приглашение cmd) отображает имя хоста Ubuntu Computer.
  • Ubuntu Computer может пинговать только по IP-адресу, но не по имени хоста. Я также установил Samba.
  • Ubuntu Computer может пропинговать себя по IP-адресу и имени хоста
  • Я могу использовать команду arp и отображать IP всех компьютеров в сети, но только по IP-адресу.

Как получается, что я могу пинговать только по IP-адресу, а не по имени хоста на компьютерах с Windows? Но Ubuntu может пропинговать себя по IP-адресу и имени хоста, а компьютеры Windows могут пинговать Ubuntu по имени хоста?

user2805313
источник
Попробуйте имя хоста во ВСЕХ КАПЛЯХ. это может быть уловка.
JRG
Да, я пробовал это, но не повезло. = (Кто-то сказал добавить .local в конце. Мои коллеги сказали, что я должен настроить сеть так, чтобы она указывала на маршрутизатор, чтобы он понял. Поэтому я попробую это, и если это сработает, я пойду вперед и опубликовать ответ
user2805313
Это может быть проблема DNS-сервера. Правильно настройте параметры DNS-сервера. Может быть, эти два источника могут помочь вам. serverfault.com/questions/389522/… . askubuntu.com/questions/23011/… .
Росомаха

Ответы:

22

Описанная здесь проблема может вообще не относиться к 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чтобы активировать его.

Benoit
источник
Не забудьте использовать sudo с командой запуска winbind службы.
Тристан
0

Преобразование имен хостов в IP может произойти, если:

-Вы объявляете их в файле / etc / hosts (не рекомендуется)

Вы получаете его с DNS-сервера.

Я бы сказал, что ваша проблема может заключаться в том, что в конфигурации вашего сетевого интерфейса нет DNS-сервера или используется не тот, который используется в Windows Если они используют конфигурацию интерфейса DHCP, чаще всего включается конфигурация DNS, и если в вашей сети есть сервер домена Windows, они, скорее всего, используют его в качестве основного DNS.

Попробуйте: 'nslookup some_machine_name' в командной строке, чтобы увидеть, что происходит. Он скажет вам, какой сервер вы используете, если таковой имеется.

НТН

огненосные щелкуны
источник