一部のマシンのLANでのSSHの「遅れ」、混合ディストリビューション


9

数か月間、LAN内のSSH接続に奇妙な問題がありました。これは、Windows 10デバイスを使用して(ベアボーン)Linuxマシンに接続しているときにのみ発生します。

SSHサーバーに接続すると、入力が毎秒1回しか送信されないようです。キーを押したままにすると、1秒間何も出力されず、その1秒後に、その間に行ったすべてのキーストロークが表示されます。

これは、稼働中のサーバーでの表示方法です。

これは、問題のあるものでどのように見えるかです:

私がテスト/発見したもの

  • / etc / sshdの「UseDNS」設定を変更しても修正されません
  • Debianではbash(およびzsh)(OpenSSH_7.4p1 Debian-10 + deb9u6、OpenSSL 1.0.2r 2019年2月26日)、Alpine LinuxではAsh(OpenSSH_7.9p1、OpenSSL 1.1.1b 2019年2月26日)で発生します。
  • Alpine Linux OpenSSH_7.7p1、LibreSSL 2.7.4では発生しません
  • すべてのマシンで発生するわけではなく、一部のマシンで発生します(ディストリビューションに依存しません)。
  • resolv.confは正しい
  • エラーはClientAliveIntervalの有無にかかわらず発生します(クライアントとサーバーでテスト済み)
  • デバイスのpingは常に高速(1ミリ秒未満)なので、SSHのみです
  • また、Windows 10のLinuxサブシステムからPuttyおよびMobaXtermを使用してsshを実行すると、遅延が発生します。
  • WindowsではなくLinuxから接続しても問題ありません

誰かが私が試すことができる手がかりやことを持っていますか?ありがとう

回答:


15

通常、これはNagleのアルゴリズムの兆候です。そのソケットオプションをオフにできます。

(以前にも他のケースでLinuxとWindowsの間で同様のTCP遅延を見たことがあります。1つのケースでは、TCP WindowsサイズとPSH(プッシュ)フラグの間の相互作用が原因で、Windowsが確認応答を遅らせたり再試行したりしました。)


素晴らしく、その迅速な修正に感謝します!Puttyの設定で、「Nagleのアルゴリズムを無効にする」チェックボックス(デフォルトではチェックされているようです)のチェックを外しました。
クリスチャン

@Christian確認のために感謝、私は私の答えを少し簡略化しました
eckes

@クリスチャン、私は混乱しています。あなたネーグルのアルゴリズムを有効にしましたが、今度はキャラクターは大きなパケットに入っていませんか?それは私には間違った方法のように思われるので、編集前の答えは実際にはより良かったのかもしれません。
Carsten S

@CarstenSはい、私がしたことは、Puttyの「Nagleのアルゴリズムを無効にする」のチェックを外すことだけでした。しかし、私はそれがパテの古いバージョンだと思うので、チェックボックスのラベルが間違っているかもしれません
クリスチャン

うーん、確かに奇妙です。
eckes
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.