我想在我的ubuntu中创建一个TCP-3方式的握手。
我在虚拟机中使用了kali-linux。在kalilinux的终端(IP-172.16.28.130)中,我以“监听”模式打开了一个端口,以获得与该机器的连接。在nc -l -p 1025
我在ubuntu主机上运行的python代码
^{pr2}$
用wireshark抓包3 172.16.28.1 172.16.28.130 TCP 54 64865 > blackjack [SYN] Seq=0 Win=8192 Len=0
4 172.16.28.130 172.16.28.1 TCP 60 blackjack > 64865 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0 MSS=1460
7 172.16.28.1 172.16.28.130 TCP 54 64865 > blackjack [RST] Seq=1 Win=0 Len=0
8 172.16.28.1 172.16.28.130 TCP 54 64865 > http [ACK] Seq=1 Ack=1 Win=8192 Len=0
9 172.16.28.130 172.16.28.1 TCP 60 http > 64865 [RST] Seq=1 Win=0 Len=0
在运行代码之前,我更改了IPtableiptables -A OUTPUT -p tcp --tcp-flags RST RST -s 192.168.1.20 -j DROP
当我将目的地更改为时,dst=“www.google.com“目的港到,dport=80,一切正常。在
但现在,
1) 我可以发送SYN包
2) 目的地用SYN,ACK包响应
3) 我的系统发送RST
4) 我发了回信
5) 目标系统回复RST
所以我不能建立联系!!
问题:
1)如何才能成功地完全建立联系
2) 我的源ip=“1.2.3.4”,
*但当我发送到虚拟机时,它显示172.16.28.1(广播ip)。为什么?