每当我尝试传输超过某个阈值的任何内容时,连接都会失败,我会看到“按对等方重置连接”消息.我的主目录中有一个大约3 MB的sql文件.如果我试图FTP它,它将开始传输并在传输约48k后死亡.然后它将启动一个新连接并转移另一个48k.如果我使用PuTTY并打开会话,我可以连接并登录正常.如果我再次尝试cat file.sql,连接终止,我得到一个’通过对等重置连接’消息.从我的本地工作站到服务器,情况也是如此.我需要提交给服务器上托管的svn存储库的相当多的源代码,但会出现相同的“由对等重置连接”消息.
我知道问题出在我的本地工作站上,因为我可以使用我妻子的macbook和ssh到服务器而没有任何问题.我可以ssh到朋友的linux盒子(使用相同的putty安装)和sftp从他们的服务器下载文件,从他的盒子打开另一个ssh会话到我的服务器并cat该文件.所以,事情正在发生,但我不确定是什么.有没有人有任何想法?
更新
我一直试图解决这个问题,似乎我可以在单个ssh会话中传输数据量的硬限制.如果我执行cat file.sql,我会立即点击它,但我也可以继续输入ls -l一致的次数,并且还会得到’Connection reset by peer’消息.我试过了:
>生成新的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:
大约一周前,我使用此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防火墙上是打开的.
由于这台计算机位于路由器的防火墙后面,我现在可以暂时禁用它,但我很想知道这里发生了什么.