WIFIが有効になっているとsudoが5〜10秒遅れるのはなぜですか?どうやって解決しますか?

WIFIが有効になっているとsudoが5〜10秒遅れるのはなぜですか?どうやって解決しますか?

インターネットの電源を切った状態で端末で次のコマンドを実行します。

while true;do sudo -n uptime 2>/dev/null;echo "`date`($((i++)))";sleep 0.1;done

さて、インターネットの電源を入れてください(ここではWIFIがあります)。
ログは5〜10秒ごとに発生します。

sudoにネットワークを無視させる方法は?

また、なぜこのように動作するのですか?

観察:Ubuntu 22.04

PS:私はsudo -n uptimesudoアクセス権を持っている場合は端末に警告するために使用します(すべて赤でマークしました)。そのため、端末で実行されるすべてのコマンドでこの問題が発生します。

WIFIがオンのときの遅延ログ:

Fri  5 Jan 00:07:41 -03 2024(0)
Fri  5 Jan 00:07:47 -03 2024(1)
Fri  5 Jan 00:07:52 -03 2024(2)
Fri  5 Jan 00:07:57 -03 2024(3)
Fri  5 Jan 00:07:57 -03 2024(4)
Fri  5 Jan 00:08:02 -03 2024(5)
Fri  5 Jan 00:08:02 -03 2024(6)
Fri  5 Jan 00:08:13 -03 2024(7)
Fri  5 Jan 00:08:18 -03 2024(8)
Fri  5 Jan 00:08:18 -03 2024(9)
Fri  5 Jan 00:08:23 -03 2024(10)
Fri  5 Jan 00:08:28 -03 2024(11)
Fri  5 Jan 00:08:28 -03 2024(12)
Fri  5 Jan 00:08:34 -03 2024(13)
Fri  5 Jan 00:08:39 -03 2024(14)
Fri  5 Jan 00:08:44 -03 2024(15)
Fri  5 Jan 00:08:44 -03 2024(16)

WIFIがオフの場合:

Fri  5 Jan 00:11:45 -03 2024(21)
Fri  5 Jan 00:11:45 -03 2024(22)
Fri  5 Jan 00:11:46 -03 2024(23)
Fri  5 Jan 00:11:46 -03 2024(24)
Fri  5 Jan 00:11:46 -03 2024(25)
Fri  5 Jan 00:11:46 -03 2024(26)
Fri  5 Jan 00:11:46 -03 2024(27)
Fri  5 Jan 00:11:46 -03 2024(28)
Fri  5 Jan 00:11:46 -03 2024(29)
Fri  5 Jan 00:11:46 -03 2024(30)
Fri  5 Jan 00:11:47 -03 2024(31)
Fri  5 Jan 00:11:47 -03 2024(32)
Fri  5 Jan 00:11:47 -03 2024(33)
Fri  5 Jan 00:11:47 -03 2024(34)
Fri  5 Jan 00:11:47 -03 2024(35)
Fri  5 Jan 00:11:47 -03 2024(36)
Fri  5 Jan 00:11:47 -03 2024(37)
Fri  5 Jan 00:11:47 -03 2024(38)
Fri  5 Jan 00:11:47 -03 2024(39)
Fri  5 Jan 00:11:48 -03 2024(40)
Fri  5 Jan 00:11:48 -03 2024(41)
Fri  5 Jan 00:11:48 -03 2024(42)
Fri  5 Jan 00:11:48 -03 2024(43)
Fri  5 Jan 00:11:48 -03 2024(44)
Fri  5 Jan 00:11:48 -03 2024(45)
Fri  5 Jan 00:11:48 -03 2024(46)
Fri  5 Jan 00:11:48 -03 2024(47)
Fri  5 Jan 00:11:49 -03 2024(48)
Fri  5 Jan 00:11:49 -03 2024(49)
Fri  5 Jan 00:11:49 -03 2024(50)
Fri  5 Jan 00:11:49 -03 2024(51)
Fri  5 Jan 00:11:49 -03 2024(52)
Fri  5 Jan 00:11:49 -03 2024(53)
Fri  5 Jan 00:11:49 -03 2024(54)
Fri  5 Jan 00:11:49 -03 2024(55)
Fri  5 Jan 00:11:50 -03 2024(56)
Fri  5 Jan 00:11:50 -03 2024(57)
Fri  5 Jan 00:11:50 -03 2024(58)
Fri  5 Jan 00:11:50 -03 2024(59)
Fri  5 Jan 00:11:50 -03 2024(60)
Fri  5 Jan 00:11:50 -03 2024(61)
Fri  5 Jan 00:11:50 -03 2024(62)
Fri  5 Jan 00:11:50 -03 2024(63)
Fri  5 Jan 00:11:50 -03 2024(64)
Fri  5 Jan 00:11:51 -03 2024(65)
Fri  5 Jan 00:11:51 -03 2024(66)
Fri  5 Jan 00:11:51 -03 2024(67)
Fri  5 Jan 00:11:51 -03 2024(68)
Fri  5 Jan 00:11:51 -03 2024(69)
Fri  5 Jan 00:11:51 -03 2024(70)
Fri  5 Jan 00:11:51 -03 2024(71)
Fri  5 Jan 00:11:51 -03 2024(72)
Fri  5 Jan 00:11:52 -03 2024(73)
Fri  5 Jan 00:11:52 -03 2024(74)
Fri  5 Jan 00:11:52 -03 2024(75)
Fri  5 Jan 00:11:52 -03 2024(76)
Fri  5 Jan 00:11:52 -03 2024(77)
Fri  5 Jan 00:11:52 -03 2024(78)
Fri  5 Jan 00:11:52 -03 2024(79)
Fri  5 Jan 00:11:52 -03 2024(80)
Fri  5 Jan 00:11:52 -03 2024(81)
Fri  5 Jan 00:11:53 -03 2024(82)
Fri  5 Jan 00:11:53 -03 2024(83)
Fri  5 Jan 00:11:53 -03 2024(84)
Fri  5 Jan 00:11:53 -03 2024(85)
Fri  5 Jan 00:11:53 -03 2024(86)
Fri  5 Jan 00:11:53 -03 2024(87)
Fri  5 Jan 00:11:53 -03 2024(88)
Fri  5 Jan 00:11:53 -03 2024(89)
Fri  5 Jan 00:11:54 -03 2024(90)
Fri  5 Jan 00:11:54 -03 2024(91)
Fri  5 Jan 00:11:54 -03 2024(92)
Fri  5 Jan 00:11:54 -03 2024(93)
Fri  5 Jan 00:11:54 -03 2024(94)
Fri  5 Jan 00:11:54 -03 2024(95)
Fri  5 Jan 00:11:54 -03 2024(96)
Fri  5 Jan 00:11:54 -03 2024(97)
Fri  5 Jan 00:11:54 -03 2024(98)
Fri  5 Jan 00:11:55 -03 2024(99)

答え1

sudoUbuntuがDebianと同じデフォルト設定を使用すると仮定すると、fqdnそのフラグはデフォルトで有効になります。

マニュアルsudoers(5)ページには、このフラグが有効になっているとDNS関連の問題が発生する可能性があることが示されています。

ホスト名解決にDNSを使用するときにfqdnを開くには、sudoerがDNSルックアップを実行する必要があります。これにより、DNSが停止した場合(コンピュータがネットワークから切断された場合など)、sudoが利用できなくなる可能性があります。ホストファイルと同様に、DNSが知っている「標準」名を使用する必要があります。つまり、パフォーマンスの問題とDNSですべてのエイリアスを取得できないため、ホストエイリアス(CNAMEエントリ)を使用することはできません。

このフラグはデフォルトでオンになっています。

このフラグを使用すると、sudoersファイル定義およびsudoersユーザー権限仕様のホスト名フィールドで完全修飾fqdnドメイン名を使用できます。Host_Aliasただし、これはまた、sudoホスト名の正規正規化形式を見つける必要があることを意味します。リストにない場合は、/etc/hostsDNS検索が必要です。

DHCPサーバーからホスト名を取得できないと仮定すると、次の行を次の行に追加できます/etc/hosts

127.0.1.1     main-hostname.fully.qualified.domain main-hostname [any other forms here...]

あるいは、定義でホスト名を使用しない場合sudoers(単一のスタンドアロンシステムで予想されるように)、sudoersファイルに次の行を追加する必要があります。

Defaults !fqdn

このfqdnオプションを無効にします。

関連情報