2011-03-19 22:41:21 +0000 2011-03-19 22:41:21 +0000
38
38

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

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

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

さて、問題は内部ネットワークから 201.206.x.x にアクセスしようとすると、ブラウザはリクエストをウェブサーバーにリダイレクトするのではなく、DSL モデムの設定に接続しようとします。

このリダイレクトを設定するには、モデムのどの設定を変更する必要がありますか?

回答 (8)

20
20
20
2011-03-19 23:02:55 +0000

問題は、パケットの書き換えが一般的にファイアウォールを通過しているときにしか行われない ことである。一般的に言えば、リクエストが書き換え先と同じネットワークから到着している場合、 ルータは必要な書き換えを行うことができません。この問題に対する一般的な解決策は、ネットワーク外にウェブプロキシを設置して、ファイアウォールを経由してリクエストをループさせることです。

あなたの特定の問題は、DNSホスト名を使ってウェブサイトにアクセスしたいということだと思います。これは「スプリットホライズン」DNSを使用することで対処できるので、リクエストがどこから来ているかに注意を払い、適切に応答します。リクエストが自分のネットワーク内から来ている場合、自分のネットワークから来ているリクエストには192.168.0.50を、それ以外の人にはパブリックIPを割り当てます。

これらの提案は、ネットワーク外のホスト、例えば (無料の) Amazon EC2 マイクロインスタンスのようなホストに実装することができます。

14
14
14
2011-03-20 00:32:24 +0000

つまり、問題はパケットの書き換えにあるということになる (この説明については @Insyte の投稿をもう一度読んでほしい)。

以下の設定をしていると仮定する。

  1. パブリックIP: 201.206.x.y
  2. プライベートIP: 192.168.0.50
  3. IP 201.206.x.y192.168.0.50

  4. IP C:\windows\system32\drivers\etc\hosts/etc/hosts

  5. IP 192.168.0.50 www.yourwebsite.comhttp://www.mywebsite.com

  6. IP 0x6& → 0x6&

http://www.yourwebsite.com

と入力するとエラーが発生します。解決策は、hostsファイルをハックすることです。

Windowsの場合は、0x6&に移動します(このファイルには拡張子がありません)。Linuxでは、ファイルは0x6&にあります。

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

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

0x6&

それから _ブラウザを再起動し、URLを入力してみてください。正常に動作しています。つまり、ブラウザはドメインをIPに解決するためにDNSに頼らないということです。その代わりに、これを上書きしています。ブラウザは、DNSにIPアドレスを要求する代わりに、私の内部IPにアクセスしてドメイン名を解決してください。

もしあなたがオフィスにいるのであれば、この内部のウェブサイトにアクセスする必要がある全ての人にhostsファイルをハックさせることができますし、もしあなたが内部DNSを持っているのであれば、その中にエントリを追加することができます。

もう一つの方法は、内部にプロキシサーバを用意して(すべてのウェブサーフィンなどのために)、そのプロキシサーバ上のhostsファイルをハックするというものです。これは、ブラウザが Proxy, can you please get me the resource 0x6& と言うと、プロキシは Sure, and I’ve told to ignore DNS for that domain, because I’ll just give the IP has been hard-coded in my hosts file と言うことを意味しています。

9
9
9
2011-03-20 01:27:58 +0000

これは、いくつかのルータが内部アドレスからのパブリックアドレスのためのトラフィックを処理する方法の共通の問題です - 彼らはネットワーク外からの要求と同じポート転送ルールに従いません。ルータで探す必要があるのは NAT リフレクション です。これは、リクエストがネットワークの外部から来た場合と同じポート転送ルールを使用するために、パブリックIPのための内部リクエストを処理するためのルータを可能にします。

2
2
2
2011-03-19 23:00:42 +0000

モデムのメーカーとモデルを教えてくれれば、もっと助けになると思いますが…

しかし、ここで何が起こっているのかというと、通常ルータやモデムの設定ページは、内部IP (192.168.0.1)を訪問した時にのみ表示されるはずです

しかし、ここで起こっているように見えるのは、受信要求 (201.206.x.x) を内部から来ていると識別し、ウェブサーバへの通常のルートではなく、設定ページを表示することにしているということです…

コンシューマーレベルのモデムを使用している場合、おそらくこれを変更することはできません (申し訳ありません)

でもできるかもしれません。管理者設定ページに'listen'設定があるかどうか確認してみてください

そこで管理者設定ページを別のポートに変更してみるか、リスニングするアドレスを制限してみてください

2
2
2
2011-03-19 23:08:12 +0000

リモート管理が許可されていることが問題なのかもしれません。

2
2
2
2015-03-12 03:14:55 +0000

ローカルIPを経由してサーバのパブリックIPに直接アクセスするためのルートを追加することができます。Windowsの場合、コマンドは

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

のようになりますが、永続的なルートを追加するには、上記のコマンドに-p パラメータを追加します。 サーバは自分のパブリックIPを知っているので、パッケージをローカルネットワークに転送するのではなく、自分自身から処理します。

サーバーのローカルIPを固定化する必要があります。

0
0
0
2015-12-05 05:31:19 +0000

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

0
0
0
2016-04-09 16:37:43 +0000

私のルータでは、これがNATループバックを壊したので、私は “NAT加速"(Cut Through Forwarding)をオフにしなければなりませんでした…

関連する質問

13
4
3
6
5