Я пытаюсь создать локальный 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, это замечено от всей моей локальной сети?
.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 являются сервисами, которые слушают на сервере*