如何将“localhost”重定向到另一个本地 IP?

kei*_*ith 6 ip-address redirection localhost

这是我的情况:

同一路由器下的两台电脑,192.168.1.101和192.168.1.102

这就是我喜欢做的:在 192.168.1.101 上,当使用 localhost 访问端口 22 时,它将流量定向到 192.168.1.102 端口 22。

换句话说,我想将来自 localhost 的任何流量转发到另一个本地 IP。

有什么我需要的解决方案吗?

小智 7

如果您使用的是 Windows,则可以使用以下命令:

netsh interface portproxy add v4tov4 listenaddress=192.168.1.101 listenport=21 connectaddress=192.168.1.102 connectport=21
Run Code Online (Sandbox Code Playgroud)

代替:

  • 21 使用您要转发的端口,
  • 192.168.1.101 用你的ip,
  • 192.168.1.102 与目标IP。


Spi*_*iff 5

不要重新定义 localhost 的含义。你会以令人惊讶的方式打破事物。

相反,请查看 中的-L-R选项ssh(1)。它们可以轻松地将本地机器上的端口重定向到远程机器的 IP 地址和端口。此外,隧道由 SSH 保护。

请注意,这些隧道不一定特定于 ssh/shell 流量。它可以用于任意流量。


Izz*_*zzy 3

不确定这是否是明智之举。许多打算在本地计算机上运行的服务使用127.0.0.1(这对您的更改来说没有问题)或localhost(在这种情况下您的更改会弄乱事情)连接到同一台计算机上的其他服务。许多其他软件包都是以这种方式配置的。

如果目的是使用相同的名称进行横向连接,无论您在哪台机器上,我宁愿建议为此使用不同的名称。例如,您可以使用“crosshost”代替“localhost”,然后按照 Indrek 给出的提示进行操作:检查您的hosts文件(在 Linux/Unix 上,也可能是 Mac 上/etc/hosts,在 Windows 上是C:\Windows\System32\drivers\etc\hosts(没有扩展名 - 所以采取注意这里,Windows 通常hosts.*在该目录中已经有一些其他文件)。不要注释掉127.0.0.1 localhost行,也不要修改它 - 保持原样。只需添加一行

192.168.1.101 crosshost
Run Code Online (Sandbox Code Playgroud)

在 192.168.1.102 机器上,与另一台机器上的其他地址类似。现在,您可以ssh crosshost从另一台计算机连接到另一台计算机,或者使用 复制文件scp filename.ext crosshost:/path/to/put,或者您想要的任何内容。