Как заставить Windows видеть имена хостов Linux и наоборот?

7

У меня Windows и Linux машины в одной подсети. Моя конфигурация маршрутизатора правильно сообщает мне как имена их компьютеров, так и их IP-адреса. Однако, когда я пытаюсь пропинговать компьютер с Linux или с компьютера с Windows, или пинговать компьютер с Windows с компьютера с Linux, мне нужно использовать IP-адреса, а не имена. Если я проверяю связь с машиной Windows с машины Windows или машиной Linux с машины Linux, имя машины правильно разрешается без каких-либо записей файла hosts.

Почему это?

Я бы подумал, что мой маршрутизатор (D-Link DIR-655) будет действовать как сам DNS-сервер. Я вижу, что у него есть опция под названием «Включить DNS Relay», но из того, что я прочитал, это мне не поможет. Если это уместно, DIR-655 используется для внутреннего трафика, а Netgear DGN1000 моего интернет-провайдера используется в качестве шлюза в Интернет. Однако он находится в другой подсети, и все мои машины подключаются к моему DIR-655, а не к DGN1000.

Что мне нужно сделать, чтобы имена хостов автоматически разрешались в моей подсети независимо от операционной системы, в которой они работают?

Кент Бугаарт
источник

Ответы:

2

Вам нужен какой-нибудь сервер разрешения имен.

Сначала настройте DNS-сервер, который принимает динамические обновления на одном компьютере со статическим IP-адресом. BIND - очевидный выбор (устанавливается в Windows и Linux), но существуют и другие версии Linux, которые работают так же хорошо, как DJBDNS и т. Д. Вашему DNS-серверу потребуется перенаправлять запросы на DNS-сервер вашего интернет-провайдера или на какой-либо другой общедоступный DNS-сервер. , Хорошее доменное имя, которое должно быть достаточно безопасным для использования, - это «home.internal». Нет необходимости регистрировать его, и оно не является публичным доменом ... Этот компьютер, на который вы устанавливаете DNS, должен быть постоянно включен ...

После того, как это будет настроено, скажите DHCP-серверу вашего reouter выдать IP-адрес DNS-сервера, который вы только что настроили.

cwheeler33
источник
Это звучит как мой лучший вариант. Я все еще немного сбит с толку относительно того, почему сам маршрутизатор не включает эту функциональность - кажется, это наиболее логичное место для этого. К счастью, у меня есть ящик, который всегда будет включен, поэтому я могу использовать его в качестве DNS-сервера. Благодарю.
Кент Boogaart
2

Имена хостов ARP отличаются от имен NetBIOS.

Windows основывается на именах NetBIOS, а Linux основывается на именах хостов.

Ваш маршрутизатор получает имена хостов через ARP / DHCP; да, в Windows тоже есть имена хостов.


Вам нужно, чтобы ваш маршрутизатор размещал имена хостов в его DNS, или вам нужно настроить все файлы hosts.

Если ваш роутер не поддерживает его, вы можете посмотреть на установку DD-WRTна вашем роутере и использовать dnsmasqвместе с hostsфайлом, в котором вы будете заполнять хосты. Я бы посчитал, что это в значительной степени обходной путь, вы действительно хотите сделать это, чтобы иметь возможность пинговать? Не ежедневная компьютерная активность ...

Тамара Вийсман
источник
Дело не в пинге. Это просто ежедневное использование. Установка с компьютера с Windows на Linux, подключение к общему ресурсу в любом направлении и т. Д. Спасибо за ответ.
Кент Бугаарт
2

Я знаю вашу боль, это совершенно безумие, что в 2011 году имена хостов не просто «работают», прямо из коробки.

Другим вариантом является Bonjour. Это технология Apple, но есть реализации для Linux ( Avahi ) и Windows ( Bonjour для Windows ). Bonjour позволяет вам получить доступ к другим компьютерам, используя синтаксис:

<hostname>.local

Я пошел с этим решением, потому что у меня нет DD-WRT-совместимого маршрутизатора или постоянно включенного сервера для запуска DNS. Кроме того, после его настройки вам не нужно беспокоиться о том, изменяется ли IP, как в случае с файлом hosts.

acjay
источник