我的 TCP 连接是否被我所在国家的政府破坏了?

Moh*_*mad 14 networking firewall tcp rst

我怀疑我的国家政府正在以某种方式销毁 TCP 连接上收到的 ACK 数据包。

当我尝试在 80 以外的端口上与外部主机建立 TCP 连接时,TCP 握手将不会成功。我捕获了 pcap 文件(gmail.pcap:http ://www.slingfile.com/file/aWXGLLFPwb ),我发现我的计算机在发送 TCP SYN 后会收到 ACK,但它不会回复 SYN ACK,而是发送一个 RST。

我检查了来自外部主机的 ACK 数据包,但它似乎完全合法。序列号和我知道的所有标志都是正确的。谁能告诉我为什么我的计算机(Linux 机器)会发送 RST 数据包?

pcap截图

The*_*tor 6

从 cmd 行:

openssl s_client -connect serveryourtryingtocontact.com:443
Run Code Online (Sandbox Code Playgroud)

这应该验证您是否可以 SSL 连接到远程主机。也许对这种流量进行 Wireshark。

如果您没有 openssl ,那么您可以apt-get install openssl

我们必须确定 RST 的生成位置。所有 SSL 站点都会发生这种情况吗?您是否直接连接到您的 NAT 网关?您是否使用了代理?

使用此方法可排除 SSL 堆栈的任何问题。


the*_*bit 5

尽管有传言称伊朗政府会不时破坏 HTTPS,但从您提供的数据来看,它看起来只是来自 173.194.32.22 的响应 SYN,ACK 数据包到达您的主机,但从未到达您的 TCP 堆栈。堆栈分别在 1 秒、2 秒、4 秒和 8 秒后重试发送 SYN - 但显然从未看到响应。

传入的 SYN,ACK 似乎被过滤了 - 您iptables的 INPUT 链中没有针对 tcp 流量的规则,它有REJECT --reject-with tcp-reset任何机会有目标吗?

  • @Mohammad 然后检查恶意软件。对于这种情况,按照上面的建议运行已知的干净安装是一个简单而重要的测试。 (3认同)