我一直试图让 netsh 将 LAN 接口上的端口转发到 127.0.0.1 上的另一个端口,这样做的原因是我需要外部机器通过 ssh 进入我的 vagrant 虚拟机,并且我不想为 vagrant 配置额外的接口(在我必须工作的一些办公室中,vagrant vm 不允许从 LAN 获取 ip)
因此,我想从我的局域网或无线连接上的 4444 进行监听,并将其重定向到 127.0.0.1:2222,这是 vagrant 默认监听的唯一接口/端口。
尽管看到很多例子和人们报告的成功案例,但我的尝试失败了。当我这样做时:
C:\Windows\system32>netsh interface portproxy add v4tov4 listenport=4444 connectport=2222 connectaddress=127.0.0.1
一切似乎都有效。参见:
C:\Windows\system32>netsh interface portproxy show all
Listen on ipv4: Connect to ipv4:
Address Port Address Port
--------------- ---------- --------------- ----------
* 4444 127.0.0.1 2222
这是 Windows 7,出厂时应该有 ipv6。我可以从适配器属性中看到适配器已启用 ipv6。
我在论坛上看到一些回复说 127.0.0.1 无法与 netsh 配合使用,但谷歌搜索显示很多结果都声称成功。那么在 Windows 7 下是否可以用 netsh 做到这一点?
更新:出于某种原因,我没有选择回答我自己的问题。所以我正在更新这个问题。我已经放弃通过 netsh 执行此操作,而是使用 PassPort。效果很好,但必须在 Windows 7 下以管理员身份运行。