其他分享
首页 > 其他分享> > 部分地区无法访问网站

部分地区无法访问网站

作者:互联网

背景

前一阵朋友叫我帮他点忙,在搭好apache之后,发现不能访问。
奇怪的是,我用不同地区的服务器访问这个网站,有的能通,有的不能通。
我检查了防火墙什么的都没有用。返回如下报错。
浏览器报错信息

本地用nmap扫描显示端口是开放的
本地扫描结果

解决方案

根据这个报错信息,在网上也没有找到解决方法。
于是我尝试了一下抓包,发现第三次握手失败!
通过这篇文章 《TCP 第三次握手失败》,了解到了每次发往客户端的数据包都不会经过路由器。而客户端发给服务器的数据包每次都会经过路由器。
路由器上的防火墙再转发第3次握手的SYN包时,检查到服务器并没有将第2次握手SYN+ACK包,认为客户端的第3次握手的SYN是无效的,从而并没有转发这个数据包。导致服务器收不到第3次握手无法建立连接。

我最终选择在服务器内关闭ICMP重定向功能,等了十几分钟后发现网站可以访问了。

标签:网站,无法访问,SYN,地区,服务器,客户端,数据包,握手,路由器
来源: https://blog.csdn.net/qq_23196289/article/details/113915423