一、问题
直观感受就是curl 好像卡住了,一直不通。 但是ping, telnet正常,大概率被劫持了,客户端和服务端抓包即可
二、分析
1.服务端抓包
tcpdump -i any port 80 and host 1.1.1.1 -w 6.cap
2.客户端抓包
从抓包可以得出, 客户端 和 服务端 三次握手成功了,客户端发起get请求,在客户端看来服务端没有响应。客户端觉得是不是三次握手的ack消息难道我没发成功? 客户端就退回到三次握手阶段,连续给服务端发送三次握手的ack消息。 从抓包来看,客户端给服务端发送的ack消息全部丢失,服务端没有收到。服务端等待10s没收到客户端任何消息,tcp重传三次握手的ack的确认消息。 可能原因看客户端活着没,并且提醒客户端赶紧发消息,不要白白占着坑位。 服务端发送的ack消息,客户端一直在尝试回复。 可惜服务端一直收不到啊。 客户端尝试挣扎了几次, 尽力了,追不到就放弃吧, 然后就狠心的rst了。 再见
三、解决 & 结论
用其他同运营商机器尝试,访问正常。在基于以上分析,确定被劫持了。
遇到这种访问不通问题,ping、telnel、抓包分析