これは私の状況です:
同じルーターの下にある2台のコンピューター、192.168.1.101と192.168.1.102
これは私がやりたいことです:192.168.1.101で、localhostを使用してポート22にアクセスしている間、トラフィックを192.168.1.102ポート22に転送します。
言い換えれば、ローカルホストから別のローカルIPにトラフィックを転送したいと思います。
必要なものに対する解決策はありますか?
Localhostの意味を再定義しないでください。あなたは驚くべき方法で物事を壊します。
代わりに、ssh(1)
の-L
および-R
オプションを確認してください。ローカルマシンのポートをリモートマシンのIPアドレスとポートに簡単にリダイレクトできます。さらに、トンネルはSSHによって保護されています。
これらのトンネルは必ずしもssh/Shellトラフィックに固有ではないことに注意してください。任意のトラフィック用にすることができます。
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を使用します。それが賢いことかどうかわかりません。ローカルマシン上で実行することを目的とした多くのサービスは、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
、または意図したとおりにファイルをコピーします。