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


38

パブリックIPアドレスを持つDSLモデム(201.206.x.x)があり、内部ネットワークにWebサーバーがあります(192.168.0.50)。

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

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

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


問題のバリエーションとして、複数の(2)ホスティングサーバーがあり、内部要求に対してDNS(BIND9)を構成しました。ホスト名に基づいて(パブリックIPに)外部リクエストを(異なるホスティングサーバーに)マッピングする方法は?
クナルB.

回答:


20

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

特定の問題は、DNSホスト名を介してWebサイトにアクセスしたいということです。「スプリットホライズン」DNSを使用してこれを処理できるため、リクエストの送信元に注意を払い、適切に回答します。リクエストがネットワーク内から送信された場合、192.168.0.50をリクエストが送信されるリクエストに渡します。ネットワークとパブリックIPを他のすべてのユーザーに提供します。

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


おかげで、私はHOSTSファイルの編集に固執すると思いますが、それは基本的に私が取り組んでいるサイトのテストに使用する個人的なサイトだからです。PCは24時間365日稼働していません。

3
私は自分のホームネットワークでこの問題を解決し、自分のDNSサーバー(ホームネットワークでも実行されている)に外部dyndns名と同じ名前のAレコードを追加しました。Aレコードは、リバースPTRレコードと同様に、ホームネットワーク内の適切な場所を指します。しかし、もちろん、誰もが自分のホームDNSを実行しているわけではありません...
LawrenceC

14

@InsyteがDNS解決の問題であるということについて話すと、@ Insyteが何かを言います。それは、問題がパケットの書き換えであることを意味します(その説明については@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

エラーが発生します。したがって、解決策:ホストファイルをハックします。

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

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

これをホストファイルに追加します。

192.168.0.50 www.yourwebsite.com

次に、ブラウザを再起動し、URLを入力して違反します!動いています。つまり、ブラウザはDNSに依存せずにドメインをIPに解決します。代わりに、これをオーバーライドして次のように言っています。ブラウザ、DNSにIPアドレスを要求する代わりに、そのドメイン名の内部IPに移動するだけです。

オフィスにいる場合は、この内部Webサイトにアクセスする必要があるすべてのユーザーを取得して、ホストファイルをハッキングするか、内部DNSがある場合は、そこにエントリを追加できます。

別のアイデアは、内部プロキシサーバー(すべてのWebサーフィンなど)を用意して、プロキシサーバー上のホストファイルをハックすることです。これは、ブラウザが「プロキシhttp://www.mywebsite.com」と言うことを意味します。リソースを取得してください。プロキシから「Sure」と表示されます。そのドメインのDNSを無視するように言われたので、ハードコードされたIP私のホストファイル


はい、私は実際にこれを投稿する前に持っていました。実際のIPからアクセスできるようにしたかったのですが、モデムにはNATリフレクションがないため、それで生きることができると思います(@MaQleodによって示唆されているように)。

3
内部または外部ネットワーク経由で同じサイトに頻繁にアクセスしているラップトップまたはスマートフォンはどうですか?
TREE

@TREEは詳しく説明してください。あなたの質問をよく理解できませんでした。
Pure.Krome

ドメイン名を使用していることを除いて、非常によく似た設定をしています。したがって、ネットワークの外部からドメインは外部IPに解決され、内部からは内部IPに解決されます。私は頻繁に内部と外部からアクセスするラップトップとスマートフォンを持っているので、hostsファイルのハッキングは機能しません。私がやったことは、基本的にあなたの(Pure.Krome)他の答えが示唆するものであり、外部サーバーを使用する代わりに、ルーター上のDHCPサーバーに内部DNSサーバーを追加するように指示しています。それはほとんど動作しますが、物事が解決し始める前にネットワークを切り替えるときに迷惑な遅れがあります。
TREE

9

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


1
NATリフレクション。それが私が探していたものだと思います。残念ながら、私のモデムにはそれがありません。ありがとう!

モデムがNATループバックをサポートしていない場合はどうすればよいですか?
PrimitiveNom

2

モデムの製造元とモデルを教えていただければ、より良いお手伝いができます...

しかし、ここで何が起こるかは、通常、ルーターまたはモデムの構成ページが内部IP(192.168.0.1)にアクセスしたときにのみ表示されるということです。

しかし、ここで起こっているように見えるのは、それが着信要求を識別することです(201.206.xx)内部から来るので、あなたのウェブサーバーへの通常のルートの代わりに設定ページを与えることにします...

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

しかし、あなたはできるかもしれない:あなたの管理設定ページに「聞く」設定があるかどうか試してみてください

そこで、管理ページを別のポートに変更するか、リッスンするアドレスを制限することができます。



2

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

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

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

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

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


サーバーが自身のパブリックIPアドレスを知っているのはなぜですか?
G-マンは「元に戻すモニカ言う

サーバーは確かにIPを知っています。静的または動的IP。ルーティングが正確に機能するかどうかはわかりません。私の推測では、各マシンにはルートマップがあります。パッケージを受信すると、パッケージを処理するかどうかを決定します。
ケバン

0

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


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.