web-dev-qa-db-ja.com

パブリックIPを使用して内部IPにアクセスする

私はパブリックIPアドレス(201.206.x.x)のDSLモデムを持っています、そして私は私の内部ネットワーク(192.168.0.50)にウェブサーバーを持っています。

モデムをポート80へのリクエストを私のWebサーバーに転送するように設定したので、ネットワークの外から201.206.x.xにアクセスしてもWebページが表示され、ネットワーク内のコンピューターから192.168.0.50にアクセスしても同じです。

問題は、内部ネットワークから201.206.x.xにアクセスしようとしたときに、ブラウザが要求を自分のWebサーバーにリダイレクトするのではなく、DSLモデム構成に接続しようとしたことです。

このリダイレクトを設定するためにモデムでどの設定を変更する必要がありますか。

36
willvv

問題は、パケットの書き換えは通常、ファイアウォールを通過するときにしか行われないことです。一般的に言えば、要求が書き換えられるのと同じネットワークから要求が到着すると、ルータは必要な書き換えを実行できません。この問題に対する一般的な解決策は、ファイアウォールを介して要求をループバックするネットワークの外側にWebプロキシを配置することです。

私はあなたの特定の問題はあなたがそのDNSホスト名を通してウェブサイトにアクセスしたいということであると思われます。 「split-horizo​​n」DNSを使用することでそれを処理することができるので、リクエストがどこから来ているかに注意を払い、適切に答えます。他のすべての人にネットワークとパブリックIPアドレス。

これらの提案はどちらも、(無料の)Amazon EC2マイクロインスタンスのように、ネットワーク外の任意のホストに実装できます。

19
Insyte

問題がDNS解決の問題であることを話すとき、@ Insiteは何かに影響を与えます。それは問題がパケットの書き換えであることを意味します(その説明は@Insyteの記事をもう一度読んでください)。

次のように設定しているとします。

  1. 公開IP:201.206.x.y
  2. プライベートIP:192.168.0.50
  3. IP上のすべて80(およびSSLを使用している場合は443)のポート転送201.206.x.y192.168.0.50

次に、内部ネットワークにいる間に、ブラウザに次のように入力します。

http://www.yourwebsite.com

そしてエラーが発生します。だから、解決策:あなたのhostsファイルをハック。

Windowsでは、C:\windows\system32\drivers\etc\hostsに移動します(注意、このファイルには拡張子がありません)。 Linuxでは、ファイルは/etc/hostsにあります。

そのファイルをメモ帳で開くと、DNSを上書きするために使用されているエントリが表示されます。そのファイルを更新したい場合は、管理者権限でメモ帳(またはファイルを編集するために使用しているプログラム)を開く必要があります。そうしないとファイルを保存できません。

これをあなたのhostsファイルに追加してください。

192.168.0.50 www.yourwebsite.com

それからブラウザを再起動してください、URLを入力してください。それは働いています。つまり、ブラウザはドメインをIPに解決するためにDNSに依存しません。代わりに、これをオーバーライドして言っています:ブラウザ。DNSにIPアドレスを要求するのではなく、単にそのドメイン名を自分の内部IPに移動します。

あなたがオフィスにいるなら、あなたは彼らのhostsファイルをハックするためにこの内部ウェブサイトにアクセスする必要があるすべての人々を得ることができます、あるいはあなたが内部DNSを持っているなら、あなたはそれにエントリーを追加できます。

もう1つのアイデアは、(すべてのWebサーフィンなどのために)内部プロキシサーバーを用意してから、そのプロキシサーバー上のhostsファイルをハッキングすることです。これはあなたのブラウザが Proxyと言うことを意味します、あなたは私にリソースhttp://www.mywebsite.comをもらってもいいですそしてプロキシは確かに言いますそのドメインのために、私はちょうど私のhostsファイルにハードコードされたIPを与えるつもりです。

14
Pure.Krome

これは、パブリックアドレス宛てのトラフィックを内部アドレスから処理する方法の一般的な問題です。これらは、ネットワーク外部からの要求と同じポート転送規則には従っていません。あなたのルータで探す必要があるのはNATリフレクションです。これにより、ルータはパブリックIPに対する内部要求を処理して、あたかも要求がネットワークの外部から来たのと同じポート転送規則を使用することができます。

8
MaQleod

モデムの製造元とモデルを教えてください。

しかし、ここで起こることは、通常、ルーターまたはモデム設定ページはそれらの内部IPを訪問するときにだけ現れるべきであるということです(192.168.0.1)

しかし、ここで起こっているように見えるのは、それが入ってくるリクエスト(201.206.x.x)を識別するということです。内側から来るので、あなたのWebサーバへの通常のルートの代わりにあなたに設定ページを与えることに決めます.

あなたが消費者レベルのモデムを使っているのであれば、あなたはおそらくこれを変更することができないでしょう。

管理者用設定ページに 'listen'設定があるかどうか試してみてください

そこではあなたの管理ページを別のポートに変更しようとすることができるか、それを待機しているアドレスを制限することができます。

2
HTDutchy

たぶん問題は遠隔管理が許されるということです。

2
Plamen

ローカルIPを介してサーバーのパブリックIPに直接アクセスするためのルートを追加できます。 Windowsでは、コマンドは次のようになります。

route add [public IP] mask 255.255.255.255 [the server's local IP]

固定ルートを追加するには、上記のコマンドに-pパラメータを追加します。

その後、パブリックIPにアクセスするたびに、コンピュータはゲートウェイとしてサーバーのローカルIPを通過します。サーバはそれ自身のパブリックIPを知っているので、それをローカルネットワークに転送する代わりにそれ自身からパッケージを処理します。

サーバーのローカルIPが静的であることを確認する必要があります。

2
qevan

私のルーターでは、これがNAT loopbackを壊したので、 "NAT高速化"(Cut Through Forwarding)をオフにしなければなりませんでした...

これと同じ問題があります。ルータのDNSホストマッピングリストにDNSホスト名を追加することでこれを修正できました。私はこれらの設定が私のルーターの詳細オプションリストに載っているのを見つけました。

0
Gibado