誰かが何かを教えてくださいできsudo echo nameserver 8.8.8.8 > /etc/resolv.conf
ていますか?
以前は15秒から3分間、インターネット接続がランダムに切断されていましたが、このコマンドを使用した後、インターネット接続は魅力的に機能しています。私はこの魔法のコマンドラインが何をしたのか興味があります。
誰かが何かを教えてくださいできsudo echo nameserver 8.8.8.8 > /etc/resolv.conf
ていますか?
以前は15秒から3分間、インターネット接続がランダムに切断されていましたが、このコマンドを使用した後、インターネット接続は魅力的に機能しています。私はこの魔法のコマンドラインが何をしたのか興味があります。
回答:
これは、Google Public DNSサービスによってマシンで使用されるネームサーバー(DNS)を置き換えます。そのコマンドを実行することが役立つ場合、おそらくネットワーク(DHCP)によって提供されるデフォルト設定にDNSの問題があります。問題の根本原因を解決することをお勧めしますが、これはあなたの質問に対する一般的な答えです。
sudo echo nameserver 8.8.8.8 > /etc/resolv.conf
sudo
この場合、特権をルートに昇格させます。echo
標準出力に続く引数を出力するだけです(この場合はを出力しますnameserver 8.8.8.8
)>
通常のUnixシェルで標準出力をファイルにリダイレクト(上書き)します。/etc/resolv.conf
出力が書き込まれるファイルです。nameserver 8.8.8.8
を入れる/etc/resolv.conf
と、システムは8.8.8.8
ドメイン名をIPアドレスに解決するためにIPアドレスを持つネームサーバーを使用します。(実際に起こることの非常に短いバージョン)8.8.8.8
は、パブリックDNSサービスがリッスンしている場所に関してGoogleが公開しているアドレスの1つです。sudo
間違いこの説明はもっともらしいように思えますが、エラーが発生するため、これは機能しません。
bash: /etc/resolv.conf: Permission denied
どうして?出力リダイレクトはシェル(ここではBash)によって処理され、に使用されるコマンドについては考慮されませんsudo
。数学の乗算が加算よりも優先されることに似ています。だから、それecho
は昇格された特権を持っているだけですが、あなたのシェルはそうではありません!これを解決するには、次のようにこのコマンドを実行する必要があります
sudo sh -c "echo nameserver 8.8.8.8 > /etc/resolv.conf"
または、パイプを使用して、tee
それをファイルに出力します。
echo nameserver 8.8.8.8 | sudo tee /etc/resolv.conf #prints to screen as well
Ubuntuでは、Network Managerが/etc/resolv.conf
ファイルを「管理」するため、これは一時的な変更にすぎません。ローカルの変更は上書きされます。そのため、Network Managerでこれを構成して永続化する必要があります。
Network Managerを使用してPCを適切に構成することをお勧めします。ここでネットワークでDHCPを使用していると仮定しています(最も一般的)。次に、これを実行して、使用していたコマンドと同じことを実行します。
接続の編集を開きます。
使用している接続プロファイルを編集します。
上のIPv4設定 ]タブ:
方法:自動(DHCP)アドレスのみ
この設定により、ホストのIPアドレス構成に対して通常のDHCP要求が行われますが、DNSサーバーのような他の必須ではないオプションは無視されます。
8.8.8.8
できた
ローカルまたは企業ネットワークでは、ローカルホストにローカルDNSサーバーが使用される場合があります。Googleのサーバーに名前の解決を直接依頼することにより、この機能を失います。したがって、たとえばローカルDNSサーバーが「プリンター」が何であるかを知っている場合、その名前でプリンターを使用することはできません。
そのため、代わりにローカルDNSサーバーを修正してください。ISPの壊れたDNSサーバーへの単なるフォワーダーであり、それを変更できない場合(たとえば、ISPが管理するオールインワンルーター)、この8.8.8.8
ソリューションが唯一の選択肢かもしれません。