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

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

这是我的情况:

同一路由器下的两台计算机,192.168.1.101和192.168.1.102

我喜欢这样做:在 192.168.1.101 上,当使用 localhost 访问端口 22 时,它会将流量引导至 192.168.1.102 端口 22。

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

有什么解决方案可以满足我的需求吗?

答案1

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

netsh interface portproxy add v4tov4 listenaddress=192.168.1.101 listenport=21 connectaddress=192.168.1.102 connectport=21

代替:

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

答案2

不要重新定义 localhost 的含义。你会以意想不到的方式破坏事物。

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

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

答案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

在 192.168.1.102 机器上,在另一台机器上用同样的方式设置另一个地址。现在您可以例如ssh crosshost从另一台机器连接到一台机器,或者用 复制文件scp filename.ext crosshost:/path/to/put,或者任何您想要的操作。

相关内容