Ubuntu 14.04では、dnsmasqを使用して、ワイルドカードexample.comドメインをローカルマシン(自宅のデスクトップコンピューター)に解決しています。
よく読んだ後、18.04のクリーンインストールで同じことを整理することはできません。
現時点で達成したいことは次のとおりです。
ping example.com
の場合、93.184.216.34ではなく127.0.0.1にpingを送信します。ping anysubdomain.example.com
に対しても127.0.0.1をpingします。ping google.com
の場合、ルーター/ IP DNSを介して実際のgoogle.comにpingを送信します。確かに、これは単純なものであり、些細なことでもありますか?
しかし、私は困惑しています。 example.comの解決は取得できますが、他のすべてを壊すことを犠牲にします。
これどうやってするの?
以下は、ubuntu 18.04の手順です。 systemd-resolved
はNetworkManager
で構成されている場合、dnsmasq
とうまく連携しないため、少し長くなります。
ネットワーク接続の変更(WIFI、有線など)は透過的に処理されるため、dnsmasq
からNetworkManager
を開始することをお勧めします。
NetworkManagerでdnsmasqを有効にする
ファイル/etc/NetworkManager/NetworkManager.conf
を編集し、dns=dnsmasq
セクションに[main]
行を追加すると、次のようになります。
[main]
plugins=ifupdown,keyfile
dns=dnsmasq
[ifupdown]
managed=false
[device]
wifi.scan-Rand-mac-address=no
NetworkManagerが/etc/resolv.conf
を管理できるようにする
Sudo rm /etc/resolv.conf ; Sudo ln -s /var/run/NetworkManager/resolv.conf /etc/resolv.conf
Configure example.com
echo 'address=/.example.com/127.0.0.1' | Sudo tee /etc/NetworkManager/dnsmasq.d/example.com-wildcard.conf
NetworkManager
とテストをリロード
変更を有効にするには、NetworkManagerをリロードする必要があります。
Sudo systemctl reload NetworkManager
その後、通常のサイトにアクセスできることを確認できます。
Dig askubuntu.com +short
151.101.129.69
151.101.65.69
151.101.1.69
151.101.193.69
最後に、example.com
およびサブドメインが127.0.0.1
として解決されることを確認します。
Dig example.com askubuntu.example.com a.b.c.d.example.com +short
127.0.0.1
127.0.0.1
127.0.0.1
まず、/etc/NetworkManager/NetworkManager.conf
で次の行がnotであるか、コメントアウトされていることを確認します。
dns=dnsmasq
NetworkManagerを再起動します。
Sudo systemctl restart NetworkManager
プロセスを強制終了するか、システムを再起動して、NetworkManager制御のdnsmasqが実行されていないことを確認します。
次に、dnsmasqをインストールします。
Sudo apt install dnsmasq
以下を/etc/dnsmasq.d/example.com
に追加します。
address=/example.com/127.0.0.1
Dnsmasqを再起動します。
Sudo systemctl restart dnsmasq
これで、example.comのワイルドカードDNSオーバーライドが必要になります。