gpt4 book ai didi

linux - 欺骗 TCP 服务器握手失败

转载 作者:可可西里 更新时间:2023-11-01 02:43:48 29 4
gpt4 key购买 nike

我希望构建一个简单的服务器来代理我网络网关处的 TCP 连接(无恶意),但 TCP 握手失败。

使用 netfilter,我已经设法更改传入 TCP 数据包的 IP 和端口,以便将它们转移到我的应用程序,并在返回时将它们更改回原始状态,并更新所有校验和。

我的服务器当前正在发回 SYN-ACK,它到达预期的主机但从未生成 ACK。根据 wireshark,数据包格式正确,校验和没有问题,SYN 和 ACK 值似乎匹配。

这是 TCP 转储输出

在没有代理的情况下握手成功

16:21:08.887938 IP 192.168.1.1.37513 > 192.168.2.56.12105: Flags [S], seq 4201716329,     win 14000, options [mss 1400,sackOK,TS val 727682 ecr 0,nop,wscale 2], length 0
16:21:08.889870 IP 192.168.2.56.12105 > 192.168.1.1.37513: Flags [S.], seq 34328406, ack 4201716330, win 14480, options [mss 1460,sackOK,TS val 1879286956 ecr 727682,nop,wscale 5], length 0
16:21:08.891751 IP 192.168.1.1.37513 > 192.168.2.56.12105: Flags [.], ack 1, win 3500, options [nop,nop,TS val 727683 ecr 1879286956], length 0

与我的代理握手失败

16:21:49.767611 IP 192.168.1.1.37514 > 192.168.2.56.12105: Flags [S], seq 2057472079, win 14000, options [mss 1400,sackOK,TS val 731770 ecr 0,nop,wscale 2], length 0
16:21:49.768522 IP 192.168.2.56.12105 > 192.168.1.1.37514: Flags [S.], seq 1201001621, ack 2057472080, win 14480, options [mss 1460,sackOK,TS val 7621570 ecr 731770,nop,wscale 4], length 0

在此之后,客户端和服务器只需重新​​发送 ack/syn-ack。

有什么明显的我想念的吗?或者有人对我应该如何开始调试问题有任何建议吗?

最佳答案

这取决于您如何更改数据包。你用iptables NAT改变IP地址和端口号?

在您的情况下,客户端丢弃数据包是因为它认为这不是正确的数据包,即使 ip、端口、ACK 是正确的。

关于linux - 欺骗 TCP 服务器握手失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16467001/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com