如何將“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,或您想要的任何內容。

相關內容