奇妙な問題:ピアによる接続のリセット


10

CentOSを実行しているLinuxサーバーでSSHに問題があります。Windows cmdからPuTTYまたはsshを使用してサーバーに正常に接続できます。セキュアFTPを使用する場合も同様です。サーバーに接続してファイルのリストを取得でき、すべて問題ありません。問題は、ネットワークを介して任意の量のデータを送信しようとすると発生します。

特定のしきい値を超えて何かを転送しようとすると、接続は失敗し、「ピアによって接続がリセットされました」というメッセージが表示されます。ホームディレクトリに約3 MBのsqlファイルがあります。FTPで転送しようとすると、転送が開始され、約48kが転送された後に終了します。次に、新しい接続を開始し、さらに48kを転送します。PuTTYを使用してセッションを開くと、接続してログインできます。cat file.sql再試行すると、接続が終了し、「ピアによって接続がリセットされました」というメッセージが表示されます。ローカルワークステーションからサーバーに移動する場合も同じ状況です。サーバーでホストされているsvnリポジトリにコミットする必要があるソースコードがかなりありますが、同じ「ピアによる接続リセット」メッセージが表示されます。

私は問題が私のローカルワークステーションにあることを知っています。私は妻のMacbookとサーバーへのSSHを問題なく使用できるからです。友人のLinuxボックスにssh(同じパテインストールを使用)し、サーバーからサーバーにsftpしてファイルをダウンロードし、ボックスからサーバーに別のsshセッションを開いて、ファイルをcatします。だから、何かが起こっていますが、私は何がわかりません。誰かアイデアはありますか?

更新

私はこれをもう少し理解しようとしました、そして私が単一のsshセッションで転送できるデータの量のハード制限があるようです。そうした場合はすぐにヒットしcat file.sqlますがls -l、一貫した回数を入力し続けることもでき、「ピアによる接続リセット」メッセージも表示されます。私はもう試した:

  • 新しいSSHキーの生成
  • ルーターを再起動する
  • コンピュータを再起動する
  • リモートサーバーの再起動

私はリモートサーバーにtcpdumpを書きましたが、私にとってはTCPがあまり理解できないほど詳細なレベルでは理解できません。私はsshでデバッグをオンにしており、接続がリセットされるまでのログの一部を次に示します。

Jul 24 23:10:56 server sshd[4507]: debug1: permanently_set_uid: 500/503
Jul 24 23:10:56 server sshd[4507]: debug1: Entering interactive session for SSH2.
Jul 24 23:10:56 server sshd[4507]: debug1: server_init_dispatch_20
Jul 24 23:10:56 server sshd[4507]: debug1: server_input_channel_open: ctype session rchan 256 win 16384 max 16384
Jul 24 23:10:56 server sshd[4507]: debug1: input_session_request
Jul 24 23:10:56 server sshd[4507]: debug1: channel 0: new [server-session]
Jul 24 23:10:56 server sshd[4507]: debug1: session_new: init
Jul 24 23:10:56 server sshd[4507]: debug1: session_new: session 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_open: channel 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_open: session 0: link with channel 0
Jul 24 23:10:56 server sshd[4507]: debug1: server_input_channel_open: confirm session
Jul 24 23:10:56 server sshd[4507]: debug1: server_input_channel_req: channel 0 request pty-req reply 1
Jul 24 23:10:56 server sshd[4507]: debug1: session_by_channel: session 0 channel 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_input_channel_req: session 0 req pty-req
Jul 24 23:10:56 server sshd[4507]: debug1: Allocating pty.
Jul 24 23:10:56 server sshd[4505]: debug1: session_new: init
Jul 24 23:10:56 server sshd[4505]: debug1: session_new: session 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_pty_req: session 0 alloc /dev/pts/2
Jul 24 23:10:56 server sshd[4507]: debug1: server_input_channel_req: channel 0 request shell reply 1
Jul 24 23:10:56 server sshd[4507]: debug1: session_by_channel: session 0 channel 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_input_channel_req: session 0 req shell
Jul 24 23:10:56 server sshd[4508]: debug1: Setting controlling tty using TIOCSCTTY.
Jul 24 23:10:59 server sshd[4507]: Read error from remote host <my-ip>: Connection reset by peer
Jul 24 23:10:59 server sshd[4507]: debug1: do_cleanup
Jul 24 23:10:59 server sshd[4505]: debug1: do_cleanup
Jul 24 23:10:59 server sshd[4505]: debug1: PAM: cleanup
Jul 24 23:10:59 server sshd[4505]: debug1: PAM: deleting credentials
Jul 24 23:10:59 server sshd[4505]: debug1: PAM: closing session
Jul 24 23:10:59 server sshd[4505]: pam_unix(sshd:session): session closed for user <me>
Jul 24 23:10:59 server sshd[4505]: debug1: session_pty_cleanup: session 0 release /dev/pts/2

更新2:

約1週間前、次のWiki投稿を使用してサーバーのssh設定を変更しました:http : //wiki.centos.org/HowTos/Network/SecuringSSH

ときどき仕事からサーバーにアクセスする必要があり、ファイアウォールでポート21が開いているため、sshポートを21に変更しました。この問題をさらに診断するために、ssh設定を元に戻してsshポートを22に戻しました。低く、見よ、私はポート22を使用するときにエラーに遭遇しない。それを21に戻し、転送された48kのデータをヒットしたときの時計仕掛けのように-ピアによって接続がリセットされた。

初期接続を取得でき、過去にポート21でftp接続を確立するのに問題がなかったことを考えると、ファイアウォールの構成に問題があるようには見えません。

少なくともこの時点で、サーバーのsshポートに問題が絞り込まれています。それを21にフリップすると、すぐに問題が発生し、22に戻します。まったく問題ありません...

だれでも、なぜリッスンポートが違いを生むのか思いつきますか?繰り返しますが、問題を引き起こしているのは私のWindows XPボックスだけです。誰かがこれを引き起こす可能性があることについて何か考えを持っているかどうか知らせてください。

アップデート2:

問題を絞り込んだだけで問題は解決しました-これはファイアウォールの問題ですが、ルーターではなくWindowsファイアウォールの問題です。ポート21を使用してWindowsファイアウォールを無効にすると、「ピアによる接続のリセット」メッセージが表示されません。明らかな質問に答えるために、はい、ポート21がWindowsファイアウォールで開いています。

このコンピューターはルーターのファイアウォールの背後にあるので、今は無効にできますが、ここで何が起こっているのかを知りたいと思います。


+1ポート21を介してSSHサーバーに接続しようとしているWindows 7 PCでも同じ問題が発生します。同じ接続でトンネルを使い始めてより多くのデータを転送するまで、シェルアクセスは問題ありません。以下のアレッサンドロの答えは私のためにそれを修正しました。
Wim Coenen

回答:


10

このコマンドでコマンドラインを使用して解決できます(管理者としてこれを入力してください):

netsh advfirewall set global statefulftp disable


+1これで解決しました。明確にするために、このコマンドはWindows PCで実行されます。
Wim Coenen

素晴らしい、この正確な問題を自分自身が抱えている。Windows 7ファイアウォールに関連するすべて。21を超えるPutty SSHと21を超えるNXclient接続(nxshh)の両方で。netshadvfirewall set global statefulftp disableこれにより、私のnxclient接続が接続され、接続が完了してデスクトップが表示されます。

1

これは、ルーターがFTP NAT接続追跡を自動的に処理しようとしていることに関連している可能性があります。22ではなく、ポート21でのみ発生します。http: //www.faqs.org/docs/iptables/complexprotocols.htmlを確認してください。


おかげで、私は記事をチェックして、それが何が起こっているのかを明らかにするかどうかを確認します。
proflux 2010

リカルドは正しいようです。winscp.net/forum/viewtopic.php?t=9360に関する説明を参照してください。ip_conntrack_ *でトリガーされる問題に悪用可能な何かがあるかどうか疑問に思う
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.