捕获传出流量并将其从给定的 ip:port 重定向到目标 ip:port



在Windows 7上,我的本地127.0.0.1:34567地址上运行了一个SSH隧道,我需要访问该隧道,以便我可以在SSH代理的帮助下访问12.34.56.78:8080,因为我无法直接访问该IP(由于不在白名单上(。

因此,我

的基本简单目标是,在Windows上,每当我从任何地方(例如我的浏览器(请求12.34.56.78:8080时,我希望请求被转移到透明127.0.0.1:34567,并且如果可能的话,我想要一个软件解决方案而不是硬件解决方案。我认为这是在Linux中通常通过称为iptables的东西实现的,但我正在寻找可以在Windows上使用的东西。

有谁知道这怎么可能?如果我需要使用任何外部Windows程序,那很好,但我更喜欢它是免费的。

编辑:请不要向我提供反向隧道解决方案。我的目标是请求我被阻止的相同 ip:port,但能够通过我现有的 SSH 隧道成功访问该 ip:port。反向隧道涉及请求不同的 ip:port,这不是我正在寻找的(如果我想向不同的 ip:port 发出请求,我已经有一个可以使用的前向隧道(。

示例方案:假设您有一个 C 编译的 .exe 文件,您无权访问其源代码,该文件经过硬编码以请求 SOAP Web 服务的12.34.56.78:8000。问题是,您的IP被该ip:port阻止,但是您确实可以访问未被210.212.239.117:8080阻止的SSH服务器,并且还为该SSH服务器设置了SSH隧道以访问该ip:port...但是您的.exe具有原始的 ip:port 硬编码,因此您不能只是告诉它请求 SSH 隧道 ip:port,因为无法以任何方式更改要请求的 ip:port,因为它是硬编码的!您必须以某种方式将计算机上的210.212.239.117:8080请求转移到操作系统级别的SSH隧道。那么,您将如何完成这项工作呢?

编辑2:我也不是在寻找路由表(我认为(。我不想修改我的请求到达目标 ip:port 的路由;我实际上想静默更改请求的 ip 和端口本身。我有点想实现类似hosts文件的东西,除了不是将主机名解析为 ips,而是我希望将 ip:ports 重新解析为不同的 ip:ports。

赏金:对不起,看来我的这个堆栈溢出问题算作题外话,没有资格提供赏金,所以对任何投入额外工作并可能收到赏金的人表示歉意!

我还没有找到现成的可执行文件,但 WFPSampler 似乎很有前途。它使用新的Windows过滤平台API(自Windows Vista起可用(来操作数据包。

要使用它来重定向传出数据包,请查看问答部分,有很多例子。

查看BarbaTunnel: http://barbatunnel.codeplex.com/

TCP重定向模式可能是您正在寻找的。

您可以使用反向外壳。它可以镜像远程端口。使用 ssh 与 -R 选项连接。例如 ssh -R xxxx:localhost:xxxx user:pass@www.server.com。看看这个:http://www.debianadmin.com/howto-use-ssh-local-and-remote-port-forwarding.html.

最新更新