web-dev-qa-db-ja.com

「hosts」ファイルで1つのIPアドレスを別のIPアドレスにマッピングする

hostsファイル%SystemRoot%\system32\drivers\etc\hosts)を使用すると、ローカルマシンでgoogle.comをたとえば127.0.0.1にポイントできますが、たとえば、ローカルマシンで192.168.1.5を127.0.0.1にポイントしたい場合はどうしますか?それを行う方法はありますか? Windows 7のhostsファイルでそれを行うことはできますか?

12
neubert

これにはhostsファイルを使用できません。
これは、IPアドレスの名前のみをマップします。

私はこれを自分で試したことはありませんが、このためにrouteコマンドを悪用できると思います。

route add 192.168.1.5 127.0.0.1

これは、IPスタックに192.168.1.5のすべてのトラフィックを127.0.0.1のゲートウェイにルーティングするように指示します。もちろんそこにはゲートウェイがないので、これはトラフィックをブラックホール化するためだけに役立ちます。あなたはトラフィックで何も役立つことはできません。

10
Tonny

HostsファイルでIPアドレスを別のIPアドレスにマッピングすることはできません。

おそらく、一部のプラットフォームの特定のファイアウォールソフトウェアでIPアドレスを書き換えることができます(おそらくLinux iptables または同等のもの)。

1
RedGrittyBrick

他の人が指摘したように、hostsファイルからこれを行うことはできません。何らかの形式のパケット書き換えが必要です。最も一般的なのは ネットワークアドレス変換 です。 NATは通常、複数のデバイスが同じ「パブリック」IPアドレスを使用できるようにするために使用されます(これは、多くの安価なホームルーターが実行できる唯一の形式です)が、より包括的ですNAT CiscoにあるようなエンジンIOSまたはLinux IPTablesは、一般的な書き換えを行うことができます。

NATはこれに対する万能の解決策ではないことに注意してください。FTPなどの一部のプロトコルは、IPヘッダー内だけでなくデータパケット内にもIPアドレスを含み、NATエンジンはこのようなプロトコルを特別に処理しません。ヘッダーを書き直すだけで問題が発生します。

1
Mark