![Windows 端口转发,本地机器到服务器](https://linux22.com/image/1467391/Windows%20%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%EF%BC%8C%E6%9C%AC%E5%9C%B0%E6%9C%BA%E5%99%A8%E5%88%B0%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我正在使用 Windows 8。我试图连接到托管在远程服务器上但具有公共 IP 的 OpenStack 云。但是,进行 API 调用需要调用云内的其他服务,这些服务仍然具有云的内部地址,而我无法做到这一点。所有内部地址都已设置,因此它们现在具有公共等效地址。因此,对于每个私有 10.xx2:yyyyy,现在我都有一个 194.xxx:zzzzz
我需要做的是在本地机器上设置端口转发,以便调用 API 的应用程序对 10.xx2:yyyyy 的每个调用都会转换为相应的公共 194.xxx:zzzzz。
我已经尝试过 netsh
netsh interface portproxy add v4tov4 listenport=yyyy listenaddress=10.x.x.2 connectport=zzzzz connectaddress=194.x.x.x
但这并无成果。
我还尝试使用我在网上找到的 PassPort 工具,以管理员权限运行它并执行相同的操作,但仍然无济于事。我首先尝试在浏览器中测试 10.xxx:yyyy 地址,然后使用该应用程序进行测试,但一次都没有成功。
防火墙已关闭。
有任何想法吗?
亲切的问候。
答案1
这对我有用:
netsh interface portproxy add v4tov4 listenport=yyyyy connectaddress=destination.ip connectport=destination.port protocol=tcp
任何与 localhost:yyyyy 的连接都会重定向到 destination.ip:destination.port,即使 destination.ip 是外部的。
注意:这会使转发规则永久生效。
答案2
如果您使用 CLI 工具,请尝试在您的 openrc 凭证文件中包含此行:export OS_INTERFACE=public