2

在 Windows 7 上,我有一个运行在我127.0.0.1:34567需要访问的本地地址上的 SSH 隧道,因此我可以12.34.56.78:8080在 SSH 代理的帮助下访问,因为我无法直接访问该 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文件,您无权访问其源代码,该文件被硬编码为请求12.34.56.78:8000SOAP Web 服务。问题是,您的 IP 被该 ip:port 阻止,但您确实可以访问未被阻止的 SSH 服务器,210.212.239.117:8080并且还为该 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。

赏金:对不起,我的这个 stackoverflow 问题似乎算作 Offtopic 并且不符合提供赏金的资格,因此对任何付出额外工作并可能收到赏金的人感到抱歉!

4

3 回答 3

1

我还没有找到一个现成的可执行文件,但WFPSampler似乎很有希望。它使用新的 Windows 过滤平台 API(自 Windows Vista 起可用)来处理数据包。

要使用它来重定向传出数据包,请查看Q&A 部分,有很多示例。

于 2013-11-25T14:14:17.940 回答
0

您可以使用反向外壳。它可以镜像远程端口。使用 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

于 2013-11-24T20:39:58.417 回答
0

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

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

于 2013-11-25T00:16:42.750 回答