誰かがSudo echo nameserver 8.8.8.8 > /etc/resolv.conf
が何をするのか教えてもらえますか?
以前は15秒から3分間、ランダムにインターネット接続を切断していましたが、このコマンドを使用した後、インターネット接続は魅力的に機能しています。私はこの魔法のコマンドラインが何をしたのか興味があります。
マシンで使用されているネームサーバー(DNS)を Googleパブリック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
という行があると、システムはドメイン名をIPアドレスに解決するためにIPアドレス8.8.8.8
を持つネームサーバーを使用します。 (実際に起こることの非常に短いバージョン)8.8.8.8
はアドレスの1つです Googleが公開 パブリックDNSサービスがリッスンしている場所について。Sudo
間違いこの説明はもっともらしく聞こえますが、errorが表示されるため、これは機能しません。
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 Settingsタブで:
方法:自動(DHCP)アドレスのみ
この設定により、ホストのIPアドレス設定に対して通常のDHCP要求が行われますが、DNSサーバーのような他の必須ではないオプションは無視されます。
8.8.8.8
できた.
ローカルネットワークまたは企業ネットワークでは、ローカルホストにローカルDNSサーバーが使用される場合があります。 Googleのサーバーに名前の解決を直接依頼することにより、この機能を失います。そのため、たとえばローカルDNSサーバーが「プリンター」が何であるかを知っている場合、その名前でプリンターを使用することはできません。
そのため、代わりにローカルDNSサーバーを修正してください。 ISPの壊れたDNSサーバーへの単なるフォワーダーであり、それを変更できない場合(ISP管理のオールインワンルーターなど)、この8.8.8.8
ソリューションが唯一の選択肢かもしれません。