sudoコマンドは、hostnamectlを使用してホスト名を設定した後の遅延を表示します。

sudoコマンドは、hostnamectlを使用してホスト名を設定した後の遅延を表示します。

ローカルネットワーク経由でアクセスできますが、インターネットに接続されていないシステムがあります。このシステムのホスト名の変更に問題があります。ホスト名を変更するプロセスは2つのステップで構成されることがわかります。

  1. hostnamectl set-hostname myhost.mydomain
  2. sudo nano /etc/hosts -------> sudoを使用してファイルを開くか、コマンドを実行するのに時間がかかります。コマンドを実行すると、一般的な結果が表示されます。 sudo: unable to resolve host myhost.mydomain: Name or service not known

問題はsudoコマンドが遅れることです。上記の2段階のプロセスを使用すると(sudoコマンドで著しい遅延を観察せずに)、他のネットワークに接続されているデバイスのホスト名を簡単に変更できます。このネットワークに接続されているデバイスでのみsudoレイテンシの問題が発生します。

より多くの実験 - ホスト名の変更順序を逆にした場合、つまり

  1. sudo nano /etc/hosts - # myhost.mydomainを追加
  2. hostnamectl set-hostname myhost.mydomain

すべてがうまく機能し、Sudo遅延の問題は観察されませんでした。これにより、DNS検証に問題がある可能性があると考えられます(または誤解を招く可能性があります)。しかし、それ以外に、この特定のネットワーク上のシステムでこれらの待ち時間が観察される理由はわかりません。

ホスト名の設定の前後にsystemd-hostnamedサービスのログを確認しましたが、エラーは観察されませんでした。

より効率的にデバッグする方法を教えてください。

ベストアンサー1

私も同じ問題がありました。 hostnamectlは/etc/hostnameを更新しましたが、/etc/hostsは更新しませんでしたが、これはsudoの実行を非常に遅くする問題でした。

old_name私が解決したのは、/etc/hostsを手動で編集することでした。たとえば、古いホスト名 " "を " "に置き換えるには、new_name完了する必要がある2つの手順があります。

$ sudo hostnamectl set-hostname new_name

視覚化するために、例えば、次のようになります。

$ cat /etc/hosts  
127.0.0.1   localhost
127.0.1.1   old_name
#...

次のように更新してみましょう。

$ sudo vim /etc/hosts
127.0.0.1   localhost
127.0.1.1   new_name
#...

その後実行してみるsudo lsと、いつものように素早く動作しました。

おすすめ記事