端口敲打(使用netcat、python套接字)可以在linux上工作,但不能在windows上工作

2024-10-02 16:23:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为一个成功完成敲打序列的特定IP打开我的Raspi的ssh端口。 Knockd是在我的Raspi上更改iptable的守护进程。如果我从linux机器上敲打,我可以打开ssh端口。Netcat和python套接字能够毫无问题地执行敲打序列,但在windows机器上它不起作用

在knockd日志中,windows执行以下敲打顺序:

1,1,1,2

而不是:

1、2、3(打开ssh端口)

我在这两台机器上都运行了wireshark,并试图找出windows tcp传输和linux tcp传输之间的区别,发现在windows上wireshark日志中有几个“tcp重新传输”,只执行了第一次敲打。 我也尝试过从windows到linux PC,但没有成功。这似乎是linux和windows之间的tcp兼容性问题(可能是不匹配的超时?)。 windows和linux tcp传输之间是否存在已知差异? 我已经读过问题Preventing TCP SYN retry in netcat (for port knocking),但这对我没有帮助。 有解决这个问题的办法吗?我真的很想用python套接字执行敲打,因为我想在打开ssh端口后用它做其他事情。 如果我忘了告诉你一些信息,请告诉我你的想法

设置:

Raspbian GNU/Linux 10(buster)(KnockServer)

Windows 10 Pro(客户端)

Linux Mint 20(服务器/客户端)

FritzBox7530(端口网关、端口转发器)


Tags: 端口ip机器客户端进程linuxwindows序列