我有一个外部 Debian 服务器。问题是,当端口与 TCP 端口 22、80、443 或 UDP 端口 123 不同时,我的大学校园不允许连接到外部。我手动测试了它们。在我的 Debian 服务器上,我想监听所有 UDP 和 TCP 端口,这样我就可以清楚地弄清楚我的大学允许哪些 TCP 和 UDP 端口通过他们的防火墙。 Nmap 在客户端测试这一点非常棒,但是我应该在服务器端做什么呢?
答案1
tcp转储通常作为 Linux 发行版的标准配置。它将记录服务器上可见的所有数据包,请注意
您可能希望将其设置为使用客户端 IP 过滤器来运行,以减少噪音
我认为这包括本地计算机上的 iptables 不接受的数据包 - 但您可能想测试一下
例如
/usr/sbin/tcpdump -i eth0 -c 3000000 -np host client.example.com >tcp.log
然后只需从您的客户端运行 nmap 即可。
答案2
sudo iptables -t nat -p tcp -I PREROUTING -m multiport --dports 1:65535 -j DNAT --to-destination :5555
ncat -lkp 5555 -vvv
答案3
我现在没有好的方法来测试这个,但是......
我相信您可以使用iptables
将每个端口转换为单个端口。它会像下面这样:
iptables -t nat -I PREROUTING -m multiport -sports 0:65535 -J DNAT --to-destination 127.0.0.1:1024
这应该将所有传入端口重定向到 1024。然后您可以在 1024 上启动服务器。
答案4
我认为你可以使用 UDP 或 TCP 编写一个小程序raw sockets
,然后你可以监听所有端口,你只需要过滤标头即可知道端口。