web-dev-qa-db-ja.com

18.04でローカルワイルドカード(127.0.0.1)ドメイン解決を設定するにはどうすればよいですか?

Ubuntu 14.04では、dnsmasqを使用して、ワイルドカードexample.comドメインをローカルマシン(自宅のデスクトップコンピューター)に解決しています。

よく読んだ後、1​​8.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の解決は取得できますが、他のすべてを壊すことを犠牲にします。

これどうやってするの?

16
Nick Rice

以下は、ubuntu 18.04の手順です。 systemd-resolvedNetworkManagerで構成されている場合、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
22
pim

まず、/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オーバーライドが必要になります。

2
Sebastian Stark

これは、hostsファイルの編集ほど簡単ではありません。いくつかのオプションがあります:

このpython DNSプロキシ /etc/hostsのワイルドカードを処理します

DNSmasqを使用

0
Harikrishnan R