web-dev-qa-db-ja.com

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

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

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

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

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

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

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

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

9
Christian

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

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

15
eckes