コンピューターでローカルDNSを作成しようとしているので、IPではなくDNSアドレスを使用してローカルにアクセスできます。最初にしたことは、ファイルにホスト名を設定することでした/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-daemonをDNSサーバーとしてインストールしました。
Sudo apt-get install avahi-daemon
システムを再起動した後、ローカルDNSにアクセスできますmynewhostname.local
からのみlocalhost
(自分のコンピューターからのみ)、ローカルネットワーク上の他のコンピューターは、DNSではなくIPアドレスでのみ自分のコンピューターにアクセスできます。誰がそれが起こるのか知っていますか?または、すべてのローカルネットワークから見えるローカルDNSを作成する別のアプローチは何でしょうか?
.localドメインは、その特別なサービスのためにavahiによって使用されており、mDNSアプリケーションを使用する場合を除き、他のコンピューターにネットワーク経由で使用させることができませんでした。
Dnsmasqなどの適切なDNSサーバーを実行して、/ etc/hostsファイルに加えて、小規模ネットワーク上でホスト名のIPアドレスへのDNS解決を実現できます。
ドメインリゾルバとして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はサーバーコンピューターでリッスンしているサービスです*