--- title: "TCP RST 攻击" type: concept tags: [network, firewall, gfw, tcp] --- ## Definition TCP RST(Reset)攻击是 GFW(中国国家防火墙)使用的一种连接阻断技术。当 DPI(深度包检测)识别到目标域名或流量特征后,GFW 向通信双方发送伪造的 TCP RST 包,强制关闭连接。 ## Mechanism 1. 客户端向 GitHub 发起 HTTPS 连接(目标 443 端口) 2. GFW 的 DPI 模块检测到 SNI/域名包含 github.com 3. GFW 向客户端和服务器双方发送伪造的 TCP RST 包 4. TCP 栈收到 RST 后强制关闭连接,报 `Connection reset by peer` ## Why "Connection was reset" vs "Timeout" - `Connection reset`:GFW 主动发送 RST 包,连接被强制中断 - `Timeout`:GFW 直接丢弃包,不返回任何响应(更隐蔽) ## Relationship to Git Operations Git Push 时的 `Recv failure: Connection was reset` 错误本质是 GFW 的 TCP RST 攻击,而非 GitHub 服务器或权限问题。 ## Solutions - 让 Git 流量走本地代理(GFW 只检测到代理服务器 IP,无法识别目标域名) - 切换到 SSH 协议(22 端口干扰相对较少) - 使用 Gitee/镜像等国内代码托管平台 ## Source - [[Git Push 连接重置问题修复]]