Windows 7 捕获并重定向从给定ip:端口到目标ip:端口的传出流量

Windows 7 捕获并重定向从给定ip:端口到目标ip:端口的传出流量,windows-7,tcp,ssh-tunnel,Windows 7,Tcp,Ssh Tunnel,在Windows 7上,我有一个SSH隧道运行在我需要访问的本地127.0.0.1:34567地址上,因此我可以在SSH代理的帮助下访问12.34.56.78:8080,因为我无法直接访问该IP(因为不在白名单上) 因此,我的基本简单目标是,在Windows上,每当我从任何地方(例如我的浏览器)请求12.34.56.78:8080,我都希望请求能够透明地转移到127.0.0.1:34567,如果可能的话,我希望得到一个软件解决方案,而不是硬件解决方案。我认为这是通常在Linux中通过一种叫做ip

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

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

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

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

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

编辑2:我想我也不是在寻找路由表。我不想修改我的请求通过的路由以到达目标ip:port;实际上,我想让请求的ip和端口本身悄悄地改变。我有点想实现类似于hosts文件的
hosts
功能,除了不将主机名解析为ip之外,我希望ip:ports被重新解析为不同的ip:ports


赏金:对不起,我的这个问题似乎被认为是离题的,不适合提供赏金,所以对任何投入额外工作并可能收到赏金的人表示抱歉

您可以使用反向外壳。它可以镜像远程端口。使用ssh连接-R选项。例如ssh-R xxxx:localhost:xxxx用户:pass@www.server.com. 检查此项:。

检查此项:


TCP重定向模式可能就是您想要的。

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


要使用它重定向传出数据包,请看一看,有许多示例。

我认为您的语法有点不正确。稍加修改,您的意思是
ssh-r12.34.56.78:8080:127.0.0.1:34567吗user@www.server.com
?它在我的窗户下不工作;它说:警告:侦听端口80的远程端口转发失败我也尝试了
ssh-R 141.101.120.14:80:127.0.0.1:80user@example.com
,其中
example.com
是一些工作的SSH服务器,而
141.101.120.14
是什么样的IP。我收到了
警告:侦听端口80的远程端口转发失败,并没有像我预期的那样生成本地Web服务器。@SzerémiAttila:不,绝对正确:我已经读过了。本地端口转发部分是关于SSH隧道的,我知道这不是我需要的(反正我已经有了)。远程端口转发似乎涉及路由器。我正在寻找windows解决方案。请阅读我的问题。@SzerémiAttila:你能详细说明一下吗?哪里需要路由器?你也可以在窗户上使用油灰。这是另一个链接:。我认为我的问题已经足够清楚了,但为了更好地暗示我需要什么,让我们假设“127.0.0.1”永远不会涉及其中。假设我希望如此,如果我从我计算机上的任何软件(浏览器或cygwin wget)请求
91.190.218.46:80
(skype.com),我希望请求被悄悄地转移到
210.212.239.117:8080
(某个随机人的tomcat服务器),并在请求前一个ip端口时获取后一个ip端口的索引html的内容。如果您能告诉我如何在不涉及本地主机的情况下实现这一点,那么使用该工具,我应该能够实现我所需要的。只是为了澄清反向隧道或端口转发不需要物理访问。为了设置一个,可能,但要使用反向代理,我必须请求一个与我被阻止的ip:端口不同的端口,我想。如果是的话,这不是我要找的东西。这不是这样的东西吗:?或者这个:?第一个:我想是的。但是对于Windows,不是Linux。第二个:不,我不想找到我要发送到的IP的路由。我想悄悄地将目标IP重写为一个完全不同的IP。答案是:。这似乎不能让我实现我所需要的。但它看起来确实有点复杂,所以我可能就是不理解它。我正在查看配置帮助:我注意到只有一个选项只接受1个IP地址,那就是
ServerAddress
。我期望有两个IP地址选项,一个用于捕获哪些传出IP请求,另一个用于转移请求的IP