Как я могу создать локальный DNS, который замечен от других компьютеров в моей локальной сети?

Я пытаюсь создать локальный DNS на своем компьютере, таким образом, я могу получить доступ к нему локально с адресом DNS вместо IP. Первая вещь, которую я сделал, состояла в том, чтобы настроить мое имя хоста на файлах /etc/hosts и /etc/init.d/hostname.sh.

$ sudo vi /etc/hosts

127.0.0.1   localhost
127.0.1.1   mynewhostname 

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

$ sudo vi /etc/hostname

mynewhostname

Затем я установил avahi-демона как сервер DNS:

sudo apt-get install avahi-daemon

После перезагрузки системы я могу получить доступ к локальному DNS mynewhostname.local только от localhost (только от моего собственного компьютера), другие компьютеры в локальной сети могут только получить доступ к моему компьютеру с IP-адресом а не с DNS. Кто-либо знает, почему это происходит? Или каков был бы другой подход для создания локального DNS, это замечено от всей моей локальной сети?

1
задан 16 November 2018 в 18:55

1 ответ

.local домен используется avahi для его спецслужб, и я не смог заставить другие компьютеры использовать его по сети кроме тех случаев, когда использование mDNS приложения.

Вы могли выполнить надлежащий сервер DNS, такой как dnsmasq для достижения разрешения DNS имен хостов к IP-адресам по небольшой сети в дополнение к/etc/hosts файлу.

Для установки dnsmasq как доменного сопоставителя выбирают, другой домен вместо .local., например, говорят что .home или .house или что-либо кроме .local. Этот домен работает только над сетью.

установите dnsmasq на центральный "сервер". В этом случае Ваш компьютер:

sudo apt install dnsmasq

Затем установка dnsmasq:

sudo nano /etc/dnsmasq.conf

создайте статический файл:

sudo rm /etc/resolv.conf
echo 'nameserver 127.0.0.1' | sudo tee /etc/resolv.conf

остановите любые экземпляры сервисов:

sudo killall dnsmasq
sudo service systemd-resolved stop

отредактируйте dnsmasq conf:

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
sudo nano /etc/dnsmasq.conf

и добавьте следующее

#Beginning of configuration
domain-needed
bogus-priv
no-resolv
interface=wlp2s0
#Use below nameservers to reach the internet
server=8.8.8.8
server=8.8.4.4
#use below line to point to the router address.
#dhcp-option=option:router,192.168.0.50
#use two lines below to resolve local domains (eg .home)
local=/home/
domain=home

затем перезапуск dnsmasq:

sudo service dnsmasq restart

если у Вас есть брандмауэр, помнят к открытым портам 53, 67/udp, 68/udp, в брандмауэре

затем отредактируйте файл hosts:

sudo nano /etc/hosts

и вставка в него

. . .
127.0.0.1       localhost localhost.home
. . . 
127.0.0.1 www.mysite1.home
127.0.0.1 mysite1.home
192.168.0.50 mysite1.home
192.168.0.50 mysite2.home

где 192.168.0.50 компьютерный IP серверов в сети, и mysite.home являются сервисами, которые слушают на сервере*

1
ответ дан 7 December 2019 в 15:11

Другие вопросы по тегам:

Похожие вопросы: