gpt4 book ai didi

windows-firewall - UDP打洞超时

转载 作者:行者123 更新时间:2023-12-04 14:47:01 32 4
gpt4 key购买 nike

我需要实现一个UDP协议(protocol)。 PC 必须在专用 UDP 端口上监听传入数据包。它还发送数据包(应答)。该应用程序在 Windows XP、7、8、...上运行。

Windows 防火墙阻止传入的数据包。这可以通过 UDP 打洞来规避。所以我必须发送一些不应该伤害的东西。但我想尽量少打扰。

  • 在防火墙关闭漏洞之前,我如何确定超时?
  • 我可以检测到防火墙已关闭防火墙,以便我必须重新发送打开数据包吗?当然,当防火墙关闭时我不会收到任何东西,但这可能有其他原因。
  • 最佳答案

    这是我使用 netcat 测量的方法:

    在我的 Unix 主机(Mac OS X Darwin)上,没有防火墙(或在 Windows 机器上,Windows 防火墙允许 netcat "nc"可执行文件监听 UDP 端口),我运行远程客户端提供的具有可变延迟的 UDP 服务器:

    WINHOST=10.116.140.69
    mkfifo f
    nc -u -p 2222 $WINHOST 6666 < f | \
    (while read secs; do for sec in $secs; do echo sleep $sec 1>&2; sleep $sec; echo SLEPT $sec; echo SLEPT $sec 1>&2; done; done) > f

    在我的 Windows 主机(Windows 7 Professional SP1 64 位)上,安装了 cygwin 以提供 shell 和 netcat 的 Windows 防火墙,我以交互方式运行 UDP 客户端:
    UNIXHOST=192.168.181.1
    nc -u -p 6666 $UNIXHOST 2222

    您不必使用 cygwin; Windows netcat 应该可以正常工作,但命令行可能会有所不同。

    然后在该客户端中输入一系列测试间隔,观察服务器 sleep 然后响应,观察客户端是否得到响应。这些工作:1、2、10、60、120、180。然后失败:240。继续在 180 和 240 之间进行二进制搜索。

    示例 1:在客户端,我输入:
    10
    60
    120
    180
    240

    并观察到 ​​180 的请求响应延迟有效,240 无效。

    示例 2:在客户端,我输入:
    180
    181
    182
    182

    并观察到最多 181 的请求响应延迟有效,而 182 则无效。

    示例 3:在客户端,我输入(都在同一行):
    180 180 180 181 181 181 182 182 182 183 183 183

    它从客户端生成一个 UDP 请求,然后是一系列以 180、181、182 或 183 秒为间隔的响应。据观察,最多 181 秒的请求-响应延迟有效,此外,间隔高达 181 秒的持续响应(没有新请求)也有效。

    所以防火墙漏洞有一个不活动计时器,不管不活动是初始响应的延迟,还是后续的额外流量。

    多台机器上的结果:
  • 在那个 Windows 7 Professional SP1 64 位桌面上,UDP 响应漏洞打开了 181 秒。有可能我也在测量两个系统之间的网络防火墙,因为它们位于不同的网络上——但我认为它们的路由没有防火墙。无论如何,这个系统上的 Windows 防火墙漏洞至少是 181 秒。
  • 另一台 Windows 7 Professional SP1 64 位笔记本电脑,同一网段(因此绝对没有干预防火墙),UDP 响应孔打开 64 秒。

  • 我有兴趣在不同操作系统级别和防火墙配置的其他 Windows 机器上看到类似的测量结果。

    关于windows-firewall - UDP打洞超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14856639/

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