web-dev-qa-db-ja.com

「localhost」を別のローカルIPにリダイレクトするにはどうすればよいですか?

これは私の状況です:

同じルーターの下にある2台のコンピューター、192.168.1.101と192.168.1.102

これは私がやりたいことです:192.168.1.101で、localhostを使用してポート22にアクセスしている間、トラフィックを192.168.1.102ポート22に転送します。

言い換えれば、ローカルホストから別のローカルIPにトラフィックを転送したいと思います。

必要なものに対する解決策はありますか?

5
keith

Localhostの意味を再定義しないでください。あなたは驚くべき方法で物事を壊します。

代わりに、ssh(1)-Lおよび-Rオプションを確認してください。ローカルマシンのポートをリモートマシンのIPアドレスとポートに簡単にリダイレクトできます。さらに、トンネルはSSHによって保護されています。

これらのトンネルは必ずしもssh/Shellトラフィックに固有ではないことに注意してください。任意のトラフィック用にすることができます。

5
Spiff

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を使用します。
4
Bidanh999

それが賢いことかどうかわかりません。ローカルマシン上で実行することを目的とした多くのサービスは、127.0.0.1(変更には問題ありません)またはlocalhost(この場合、変更が失敗する)を使用して他のサービスに接続します同じマシン上のサービス。そして、他の多くのパッケージはこのように構成されています。

どちらのマシンを使用していても、同じ名前で交差接続することが目的の場合は、別の名前を使用することをお勧めします。 「localhost」の代わりに、例えば「crosshost」を使用します-そして、Indrekによって与えられたヒントに従います:hostsファイルを確認します(Linux/UnixおよびおそらくMacでも/etc/hosts、WindowsではC:\Windows\System32\drivers\etc\hosts(拡張子なし-ここで注意してください。通常、Windowsにはすでにそのディレクトリに他のhosts.*ファイルがあります)。[〜#〜] not [〜#〜]コメントアウト127.0.0.1 localhost行、または変更しないでください-そのままにしておきます。行を追加するだけです。

192.168.1.101 crosshost

192.168.1.102マシン上で、他のマシン上の他のアドレスと同様に。これで、たとえばssh crosshostを使用して、あるマシンから別のマシンに接続するか、scp filename.ext crosshost:/path/to/put、または意図したとおりにファイルをコピーします。

3
Izzy