Linuxゲリラ戦記

クライアント側の話だよ。参照するDNSサーバーを変更するよ。

左を向いているペンギンみたいなキャラクター、ナックス

Debian GNU/LinuxでDNSを変更する

DNSサーバーっていうのがあります。DNSサーバーっていうのは、IPアドレスとドメインを紐付けるサーバーです。

例えば、Yahoo!JAPANのアドレスは http://www.yahoo.co.jp/ ですが、Yahoo!JAPANのIPアドレスは調べたところ 183.79.135.206 でした(ping yahoo.co.jpで調べたよ。)。ということは、ウェブブラウザのアドレスバーに http://183.79.135.206 って入力してもYahoo!JAPANにアクセスできます。試してみてね。

で、実はインターネットの世界はIPアドレスでアクセスが(コンピューターさんにとっての)基本で、ドメインという人間にわかりやすい yahoo.co.jp は、コンピューターさんが「人間にとってはドメインの方が分かりやすいんだろ?アクセスしやすいんだろ?仕方ねぇなぁ。yahoo.co.jpっていうアドレスにアクセスしたら、IPアドレスが 183.79.135.206 のコンピューターにアクセスするようにしておいてやるよ」ってやってくれてるんです。

で、この「yahoo.co.jp というドメインにアクセスしたら 183.79.135.206 にアクセスするようにしてくれる」機能を持ったサーバーをDNSサーバーと言います。

LinuxでもDNSサーバーを立ち上げることができますが、今回はクライアント側、つまり、どのDNSサーバーを使うかを設定する方法(Debian編)を解説したいと思います。

使用するDNSサーバーを変更することで、インターネットへのアクセスが早くなったり、ヤバいサイトへのアクセスをDNSサーバーが遮断してくれたりします。また当然Linuxだけでなく、WindowsやMac OSでもDNSの設定を変更することで、これらの恩恵を受けることができます。

DNSサーバーですが、契約したインターネットプロバイダーから「これ使ってね」って言われてたりするの?どうなの?そこら辺詳しくないけど、自分で好きなDNSサーバーを使用するよう設定を変更することができます。

ちなみに、基本的にどのDNSサーバーを使っても無料です。多分。サポート込みで有料のとかも場合によってはあるかもだけど。

最も有名なDNSサーバーはGoogleの無料パブリックDNSサーバー、Google Public DNSです。少し前に日本でも「これ使うと、ネットへのアクセスが早くなるぞ!!」と話題になりました。

Public DNS — Google Developers
8.8.8.8
8.8.4.4

DNSの設定を8.8.8.8というIPアドレスと、8.8.4.4というIPアドレスに変更するだけで、Google Public DNSを使用できます。他に特別な契約等は必要ありません。

ちなみに、基本的にはDNSサーバーは2つ設定します。多分、「片方のDNSサーバーが何らかの事情で使えなかった場合は、もう片方のDNSサーバーにアクセスしてこっちでアドレスとIPのヒモ付をしてもらうよ」ってことだと思います。

セキュリティに強いDNSとしてはアンチウィスルソフトなどを開発しているノートンが提供しているDNSサーバー、ノートンコネクトセーフが有名です。

Norton ConnectSafe
セキュリティ
199.85.126.10
199.85.127.10
セキュリティ + 卑猥なサイトへのアクセス遮断
199.85.126.20
199.85.127.20
セキュリティ + 卑猥なサイトへのアクセス遮断 + 反社会的(酒、犯罪、麻薬、ギャンブル、自殺など)サイトへのアクセス遮断
199.85.126.30
199.85.127.30

ノートンコネクトセーフも無料で特別な契約なしに使用できます。また、アクセスの段階も自分で選ぶことができるので、好きなのを選びましょう。

他にもググれば色々出てきます。今回はDebianでノートンのセキュリティのDNS(199.85.126.10と199.85.127.10)を設定することにします。

ググったところLinuxで使用するDNSサーバーは /etc/resolv.conf で設定しているようです。

試しに以下コマンドで中身見てみました。

$ cat /etc/resolv.conf

以下の結果が表示されました。

# Generated by NetworkManager
nameserver 192.168.1.1

一つしか設定されていないけど、多分192.168.1.1という設定を変更すれば良いのだと思います。というわけで、とりあえずバックアップをとってから

$ su -
パスワード:
# cp /etc/resolv.conf /etc/resolv.conf.default

好きなエディタで

# vim /etc/resolv.conf

以下のように編集して見ました。

# Generated by NetworkManager
nameserver 199.85.126.10
nameserver 199.85.127.10

保存して、Linuxを再起動しました。これでDNSの設定が出来たはずです。念の為 /etc/resolv.conf を確認してみると

$ cat /etc/resolv.conf

以下の結果が表示されました。

# Generated by NetworkManager
nameserver 192.168.1.1

くっくっく……。元に戻ってやがる。仕方なく、マジメにググりました。どうやら、ここを直接書き換えても、NetworkManagerっていうアプリがLinux起動時に書き換えちゃうんだってさ。というわけで、正しい方法は以下から。

$ su -
パスワード:
# nm-connection-editor

上記コマンドを打つと、GUIの設定画面が開きます。CUIの設定画面じゃなくてGUIの設定画面だから安心してね。まず、インターネットと有線(LANケーブル)でつながってる場合はその設定画面の上部の「有線」を選んで、次に下の有線で接続されているものの種類がずらっと並んでると思うから、設定したいもの(例えばWired connection 1)を選んで、右の「編集」ボタンを押そう。

設定画面例1

「IPv4のセッティング」タブを選んで「方式」に「自動(DHCP)アドレス専用」を選んで、DNSサーバーの所に、設定したいDNSサーバーのIPアドレスを記述します。複数指定する場合は半角スペースで区切ってください。私の場合は「199.85.126.10 199.85.127.10」ですね。できたら「保存」を押します。(ごめんなさい。スクリーンショットでは「199.85.126.10, 199.85.127.10」となっていますが、「199.85.126.10 199.85.127.10」で大丈夫です。正確には、多分どちらでも大丈夫です。このスクリーンショットは、一旦設定して正しく動くことを確認したあと、再度画面を開いて撮ったスクリーンショットです。設定時には、たしかに「199.85.126.10 199.85.127.10」で設定して保存したので、プログラムが勝手に「,」を追加したのだと思います。)

設定画面例2

無線(無線LAN、Wifi)でインターネットと接続している場合も基本的にやり方は同じです。「無線」を選んで、下の無線で接続されているものの種類の中から設定したいもの(例えばBuffalo-D-CDBE)を選んで右の「編集」ボタンを押します。

設定画面例3

「IPv4のセッティング」タブを選んで「方式」に「自動(DHCP)アドレス専用」を選んで、DNSサーバーの所に、設定したいDNSサーバーのIPアドレスを記述します。複数指定する場合は半角スペースで区切ってください。私の場合は「199.85.126.10 199.85.127.10」ですね。できたら「保存」を押します(有線の場合と全く同じですね)。

これで設定できましたので、設定画面を閉じてLinuxを再起動して、/etc/resolv.confを確認してみてください。

$ cat  /etc/resolv.conf
# Generated by NetworkManager
nameserver 199.85.126.10
nameserver 199.85.127.10

できた。でも、こんなややこしいやり方はDebianだけで、他のLinuxディストリビューションの場合は単純に/etc/resolv.confを書き変えるだけで良いかもしれない。Debianじゃない人は、各自ググってね。それでは。