/etc/resolv.confでネームサーバーアドレスを永続的にする方法は?


14

で設定したネームサーバーアドレスを保持できません/etc/resolv.conf。値を設定するたびに、ネットワークマネージャーは再起動時にデフォルトゲートウェイで値をオーバーライドします。

正しく設定する方法は?

ルーターのネームサーバーを変更する以外の方法を好みます。


変更する必要がありますNetworkManager(最初の行に記載されているように)。このファイルは、起動するたびにによって再生成されますNetworkManager。linux-distro(これについては言及していません)によって、これにアクセスする方法に依存しますNetworkManager
リック

回答:


13

場合によります。最後までお読みください。

パッケージresolvconfがインストールされていない場合は簡単です。好きなように変更した後、コマンドを発行してください。

 sudo chattr +i /etc/resolv.conf

このコマンドは、ファイル属性を変更して作成しますimmutable(+ iオプション)。

ただし、パッケージresolvconfがインストールされている場合、ファイル/etc/resolv.confはシンボリックリンクに変換される場合があります。

 # file /etc/resolv.conf
 /etc/resolv.conf: symbolic link to `../run/resolvconf/resolv.conf'

これは、仮想ファイルシステム上のファイルであり、非永続バージョンのエピトーです。おかしいのは、resolvconfがインストールされていることを知らないかもしれないということです。DebianライクなOSの最近のバージョンにはプリインストールされているからです。次のコマンドを発行して、ディストリビューションがインストールしているかどうかを確認できます。

 #whereis resolvconf
 resolvconf: /sbin/resolvconf /etc/resolvconf /lib/resolvconf /usr/share/man/man8/resolvconf.8.gz

最も重要なことですが/etc/resolv.conf、上記のコマンド(ファイル/etc/resolv.conf)を使用して、リンクに変換されたかどうかを確認できます。応答がの場合ASCII text、を使用しchattr、そうでない場合は...

静的IPを使用する場合、最も簡単なことは次の行(またはそのようなもの)を追加することです

 dns-nameservers 8.8.4.4 8.8.8.8

/ etc / network / interfacesで静的インターフェイスのプロパティを定義するスタンザに。

代わりに、常に異なるネットワークに接続するラップトップを使用している場合は、LawrenceCの優れた提案に従うことができます。あなたが持っている場合でも、はresolvconfをお使いのシステム上、のDNSの固定セットを提供するために、正しい(と最も簡単な)方法は、内のファイルを使用することです/etc/resolvconf/resolv.conf.d。特に、次のファイルが使用されます(Stephane Graberのページを参照)。

base:他のデータが見つからない場合に使用

head:resolv.confのヘッダーに使用され、DNSサーバーが常にリストの最初にあることを確認するために使用できます

tail:結果のresolv.confの最後にtailのエントリが追加されます。

次のように、お気に入りのネームサーバーをheadに配置します

  nameserver 8.8.8.8

これで完了です。


2
@dhiller Ultrasawbladeは彼の名前をLawrenceCに変更しました。
MariusMatutiae

とても素敵で興味深い投稿です。トピックについてもっと知りたいユーザーのために、このトピックに関するドキュメンテーションリンクを追加してください。Thx
Philippe Gachoud

/etc/resolvconf/Ubuntu 18.04にはデフォルトでは存在しません。
ダンダスカレスク

9

同様の行を/etc/dhcp/dhclient.confルートターミナルの使用に追加します。

supersede domain-name-servers 74.122.198.48, 50.116.23.211;

これによりdhclient、DHCP要求を発行し、応答が伝えた内容に従って変更を行うプログラムが、変更を行う前にDHCPサーバーから取得した情報を上記のものに置き換えます。

上記は2つのOpenNIC DNSサーバーです。使用するサーバーに応じて、必要に応じて交換します。

これはDHCPから設定情報を取得するたびに発生するためdhclient -v eth0、更新するために、または任意のインターフェイスを使用して変更を確認してください。


1
DNS(通常はルーター)をオーバーライドする代わりにprepend domain-name-servers 8.8.8.8、たとえば行を追加できます。利用可能な場合、これはISPのDNSを使用します。
アクセルラトバラ

3

@Rikが述べたように、再起動時のDNS置換の理由は、そのように設定されたネットワークマネージャー/ユーティリティによるものと思われます。Linux Mintでは、スクリーンショットに従って、IPv4メソッドを自動(DHCP)アドレスのみに設定しました。その後、/ etc / resolv.confまたはDNSサーバーセクションで正しい設定を入力できます。Ubuntu 13.04では、ネームサーバーが長期間にわたって数回変更されたことを覚えていますが、実際にGUIで編集して編集したところ、それ以降はすべて安定しているように見えました。

ここに画像の説明を入力してください

ここに画像の説明を入力してください


3

同じ問題を抱えていましたが、静的IPアドレスを使用しています。修正は、/ etc / network / interfacesにdnsを追加するだけでした

iface eth0 inet static
    address [your ip>
    netmask [your netmask]
    network [your network]
    broadcast [your broadcast]
    gateway [your gateway]
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers [dns server1] [dns server2]
    dns-search [your domain]

はい、NetworkManagerはにリストされて/etc/network/interfacesいるインターフェースを無視するため、これで修正されます。良いキャッチ!
イジー

1

wicdを使用した場合は、アイコンを右クリックして、接続情報をクリックします。ウィンドウが開いたら、接続先のプロパティをクリックします。

静的DNSの使用を確認し、DNSサーバー1 8.8.8.8の行にGoogle DNSのIPを入力し、DNSサーバー2の行に8.8.4.4「OK」をクリックします。

デフォルトからエラーを受け取っている場合は、ISPに連絡して、それらに言及することができます。通常、それらはモデムと接続するときにDNSサーバーをモデムに割り当てます。


0

ハッキングchattr +iは、せいぜい迅速な回避策であり、可能な限り回避する必要があります(少なくとも長期的には、前述のように、実際の解決策を見つけるまでの短期的な回避策です) 。既に指摘したように、これはNetworkManagerの仕事であり、そのために使用できるCLIを提供します。

#調整するインターフェースを見つける
nmcliデバイス
#出力は次のようになります。
#デバイスタイプ状態接続
#enp0s3 ethernet connected my-office
#管理されていないループバック-
#それから、接続が必要です。

#次に、「検索ドメイン」を追加します。
nmcli接続変更my-office ipv4.dns-search example1.com
nmcli con mod my-office + ipv4.dns-search example2.com

#ネームサーバー:
nmcli con modify my-office ipv4.dns 213.73.91.35
nmcli con modify my-office + ipv4.dns 87.118.100.175
#2行目の「+」に注意してください:別の行を追加し、
#最初の行は既存のエントリを上書きします。
#単一の呼び出しでそれを行うことができます:
nmcli con modify my-office ipv4.dns "213.73.91.35 87.118.100.175"

#OK、それではDHCPサーバーからの更新を無視するように指示しましょう:
nmcli con modify my-office ipv4.ignore-auto-dns yes

#そして、実行中の構成に変更を適用します
nmcli con my-office

静的IPアドレスを使用する場合は、kanelbolle´s answerのソリューションも使用できます


0

ときアメージングどのように、この小さな問題を取得することができますイライラソリューションが与えられたため Ubunutu 18.04で、それはもはや作品。

私のために働いたのは、ブートごとにnameserver値を単純に上書きすること/etc/resolv.confでした。この行をsudo編集/etc/rc.localして追加します。

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