(1)直接发送
request = Ether()/IP(dst='123.125.114.144') / TCP(dport=http) / HTTP
直接这样发送不会建立 tcp 握手,所以不能请求 http
(2)如果选择先发送 SYN ,再发送 ACK 的话:
先发送 SYN
p=IP(dst=ip)/TCP(dport=port,flags='S')
pkt=sr1(p)
当我发送完 syn 后准备发送 ack 时,这时我的主机自动返回给服务器一个 RST 包,就无法建立连接了
求解 scapy 怎么建立 tcp 连接, google 的在发送完 syn 后貌似都不会自动发送一个 RST 重置,还能慢慢发 ack , 为什么我的就会立马回一个 RST 过去?
1
302790951 OP 周末都没人麽 T_T
|
2
kqz901002 2015-11-29 12:25:31 +08:00
@302790951 应用场景? scapy 不支持 http , scapy-http 支持,我觉得发送 http 应该用 requests 啊
|
5
302790951 OP @kqz901002 你看看这。。。。当我发送完 syn 后准备发送 ack 时,这时我的主机自动返回给服务器一个 RST 包,就无法建立连接了
|
6
tony1016 2016-08-23 13:16:38 +08:00
最近正在研究 Scapy ,搜到了这里,就顺便回答一下你的问题吧
Linux 和 Mac 似乎不同意绕过内核直接建立握手,所以当你发了一个 SYN 包后,内核会主动发一个 RST 包终止链接。解决方法就是用 iptables 或者 pfctl 拦截 RST 包 |
7
luoziluojun 2018-11-29 19:23:20 +08:00
@tony1016 我在 windows 上也会又同样的问题
|