web-dev-qa-db-ja.com

完全なTLD(たとえば、*。dev)を127.0.0.1にルーティングします。

開発目的のために、.dev TLDへのすべてのDNS要求を自分のPCに転送する必要があります。

Hostsファイルでは不十分です。複数のドメインと複数のサブドメインを使用しています。組み合わせごとに行を追加する必要があります。

DNSmasqなどのDNSフォワーダーを使用してジョブを実行できることを読みました(たとえば、 ここで説明 )。また、このソフトウェアはすでにUbuntu 12.10にインストールされています。

問題は、DNSmasqをどのように、どこに設定する必要があるか、つまり、次の行をどこに配置するかがわからないことです。

address=/dev/127.0.0.1
29

完全なスタンドアロンdnsmasq(DHCPおよびDNSサーバー)はUbuntu 12.04および12.10にはデフォルトでインストールされませんが、dnsmasq-baseと呼ばれるパッケージはUbuntu Desktop 12.04および12.10にデフォルトでインストールされます。 dnsmasq-baseパッケージにはdnsmasqバイナリが含まれており、NetworkManagerによって使用されます。

必要なことを行うには、dnsmasqをキャッシュDNSサーバーとして使用する必要があります。必要がある:

  • DnsmasqのインストールSudo apt-get install dnsmasq
  • ネットワーク設定を変更して、コンピューターがDNSサーバーとして使用されるようにします。
  • 構成ファイルに変更を加えます。

次の内容で/etc/dnsmasq.d/dev-tldを作成します。

local=/dev/

address=/dev/127.0.0.5

最初のコマンドは、*.devリクエストを実際のDNSサーバーに転送できないことを示しています。 2番目は、*.devがlocalhostである127.0.0.5に解決されると言います。

  • Dnsmasqサービスを再起動します(ネットワークマネージャーではありません)
18
Javier Rivera

Ubuntu 12.10以降では、NetworkManagerで実行されるdnsmasqを使用してこれを実行できます。

  1. ディレクトリmkdir /etc/NetworkManager/dnsmasq.dが存在しない場合は作成します。

    Sudo mkdir /etc/NetworkManager/dnsmasq.d
    
  2. 次の行を/etc/NetworkManager/dnsmasq.d/dev-tldにトスします。

    address=/dev/127.0.0.1
    
  3. (Ubuntu 12.10)NetworkManagerを再起動します。

    Sudo service network-manager restart
    
  4. (Ubuntu> 13.04)Dnsmasqを再起動します。

    Sudo service dnsmasq restart
    
  5. 素晴らしさをお楽しみください。

enter image description here

21
jrg

以下はUbuntu 16.04で働いていました:

  1. インストールdnsmasq

    Sudo apt-get -y install dnsmasq
    
  2. dnsmasq.confファイルの編集:

    Sudo nano /etc/dnsmasq.conf
    
  3. コマンドを追加します。

    address=/dev/127.0.0.1
    

    ワイルドカード(*)の場合、ドット(。)、次にdnsmasqを使用して、WHATEWER_YOU_PUT_HERE.yourmachine.yourdomainを同じIPに解決できます。例:address=/.localhost.dev/127.0.0.1

  4. Dnsmasqサービスを再起動します。

    Sudo /etc/init.d/dnsmasq restart
    
1
Jeril

新鮮な19.04をインストールしたところ、それを機能させる唯一の方法はsystemd-resolvedを無効にし、NetworkManagerにDNSの代わりにdnsmasqを使用することでした。 NetworkManagerにはdnsmasqのサポートが組み込まれており、dnsmasq-baseパッケージがデフォルトでインストールされます。

*.customerX.testから192.168.33.10*.productY.testから192.168.33.20などのように、複数のドメインを異なるVMに向けています。 *.devは使用せず、代わりに 予約済みのトップレベルドメイン のいずれかを使用します。

解決

  1. systemd-resolvedを無効にします

    Sudo systemctl disable systemd-resolved.service
    Sudo systemctl stop systemd-resolved.service
    Sudo rm /etc/resolv.conf
    
  2. DNSにdnsmasqを使用するには、/etc/NetworkManager/NetworkManager.confを編集します。

    [main]
    dns=dnsmasq
    
  3. dnsmasq構成を/etc/NetworkManager/dnsmasq.d/test-tld.confに配置します

    address=/test/127.0.0.1
    address=/customerX.test/192.168.33.10
    
  4. 最後にNetworkManagerを再起動して、新しい/etc/resolv.confを生成します

    Sudo systemctl restart network-manager.service
    
0
domo