回答:
場合によります。最後までお読みください。
パッケージ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
これで完了です。
LawrenceC
に変更しました。
/etc/resolvconf/
Ubuntu 18.04にはデフォルトでは存在しません。
同様の行を/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
、更新するために、または任意のインターフェイスを使用して変更を確認してください。
prepend domain-name-servers 8.8.8.8
、たとえば行を追加できます。利用可能な場合、これはISPのDNSを使用します。
同じ問題を抱えていましたが、静的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]
/etc/network/interfaces
いるインターフェースを無視するため、これで修正されます。良いキャッチ!
ハッキング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のソリューションも使用できます。
NetworkManager
(最初の行に記載されているように)。このファイルは、起動するたびにによって再生成されますNetworkManager
。linux-distro(これについては言及していません)によって、これにアクセスする方法に依存しますNetworkManager
。