curl: (56) Recv failure: Connection reset by peer

问题场景:

在应用服务器上搭好环境,服务跑起来后,向目标服务器发送报文时,报文中会有报错:Connection reset by peer
telnet 目标服务器ip+端口 显示是通的

解决方式:

traceroute 命令查看本机发出的报文到目标服务器中间转了几次
curl -v ip:端口
ulimit -a 查看句柄数,如果是1024,那么在系统高并发高时有可能发出的报文被对方reset,这种情况可以修改句柄数102400

也可以使用以下命令,然后查看输出文本中信息具体分析:
curl --trace output.txt http://www.baidu.com
curl --trace-ascii output2.txt http://www.baidu.com
curl --trace output3.txt --trace-time http://www.baidu.com
curl --trace-ascii output4.txt --trace-time http://www.baidu.com

curl --trace output.txt ip:端口
curl --trace-ascii output2.txt ip:端口
curl --trace output3.txt --trace-time ip:端口
curl --trace-ascii output4.txt --trace-time ip:端口

我的情况,经过以上操作后,发现我和目标服务器是直连,中间并无代理或者转发,我的服务器上防火墙是关闭的。我用curl命令测试之后,发现输出文档中返回的内容是curl: (56) Recv failure: Connection reset by peer,经过与目标服务器所属人沟通,发现是我报文头以及curl命令发送到目标服务器的内容,不符合目标服务器接收报文的规范,所以被拒收,并且返回curl: (56) Recv failure: Connection reset by peer 。由此我定位到问题是我报文头的问题,我服务器与对方服务器通讯的端口(curl命令中的端口)是对方服务所占用的端口,而对方服务设置了拒收不规范报文,所以通讯时会报错。如果我curl命令中端口是对方服务器上已开通但无服务站用的端口,大概率不会报错。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值