特定のドメインに特定のDNSを使用する方法はありますか?


29

職場ではOpenDNSを使用しており、不正なirc.freenode.netを誤ってブロックしています。* .freenode.netへのリクエストが8.8.8.8および8.8.4.4(GoogleのDNS)に送信されるようにするにはどうすればよいですか。

Ubuntuでresolv.confをいじってこれを試しましたが、あまり遠くまで行けませんでした。また、MacおよびWindowsシステムでこれを行う簡単な方法はありますか(これらのOSを使用している同僚が数人いて、IRCも使用したい)。


4
注意してください-セキュリティ制御を回避しようとすると、一部の会社から付き添われる可能性があります。また、他のDNSサーバーがブロックされている可能性があります。
-uSlackr

回答:


15

Linuxは、を介したドメイン固有のDNSサーバーの使用をサポートしていませんresolv.conf。あなたは、潜在的に(のようなキャッシングネームサーバを実行することによってこの問題を回避できたBINDか、dnsmasqローカル)、その後、各ドメインの明示的なフォワーダを設定します。

OS Xでは、この種の設定はscutilコマンドを使用して比較的簡単です。この構成の一般的な使用例は、VPN接続のDNS要求をVPN固有のDNSサーバーに転送することです。そのため、OpenVPNなどと連携してこれについて頻繁に説明します。 このドキュメントでは、これscutil同様にコマンドについて説明します。Googleで検索すると、より多くの結果が得られます。openvpnscutil

Windowsについてはわかりません。必要であれば、3つのプラットフォームすべてにローカルDNSサーバーソリューションを使用できます。


1
これはまだsystemd-resolved世界に当てはまりますか?(はい、あなたの答えは7歳だとわかります)
尖った

35

これは、* nix(およびWindows AFAIK)が提供する標準のDNS解決では実行できません。これを行うには、独自のDNSサーバーが必要です。* nix ではdnsmasqがこれに最適です。すべてのワークステーションでこれを実行するか、サーバーで実行して、これを使用するようにすべてのワークステーションを構成できます。

/etc/resolv.conf

nameserver 127.0.0.1
nameserver 208.67.222.222
nameserver 208.67.220.220

/etc/dnsmasq.conf

server=/freenode.net/8.8.8.8
server=/freenode.net/8.8.4.4

2
これは、一部のオペレーティングシステムで提供される標準DNS解決を使用して絶対に実行できます。Linuxだけではありません。
ラースク

使用するインターフェイスを制御するために@vpn0 、DNSサーバーの最後に追加しました。これは、VPNが起動しているときにのみ使用すると便利です。
アレックス


5

FedoraでローカルDNSサーバーをインストールしてこれを行いました。

最初のバインドのインストール:

sudo dnf install bind

ステップ1:(/etc/named.confルートとして)行を追加します:

include "/etc/named/freenode.net.conf";

ステップ2:ゾーンファイルを作成します/etc/named/freenode.net.conf(ルートとして):

zone "freenode.net" {
    type forward;
    forwarders { 8.8.8.8; };
};

次の名前で再起動します:

sudo service named restart

ここで、DCHPが割り当てたホストではなく、DNSサーバーとして127.0.0.1を使用するようにLAN設定を再構成します。


3

このためにfirejail --dnsオプションを使用することができます。例えば:

firejail --dns=8.8.8.8 firefox

この方法では、ドメインごとではなくアプリケーションごとにDNSサーバーを設定できます。そのため、状況によってはより良いソリューションになるかもしれません。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.