ローカルマシンで自宅でホストされているWebサイトを閲覧できない
質問
IISの自宅でホストされているASP.NET Webサイトがあります。ホームネットワークの外部ではWebサイトを見ることができますが、ネットワークの内部では404エラーが発生します。サイトをローカルホストとして閲覧できます。 DNSの問題のように見えますが、修正方法がわからないだけです。
解決
これはほぼ間違いなくNATの問題です。 WebサーバーがNATルーターの背後にあり、ルーターの外部インターフェイスからサーバーマシンのポート80にポート(おそらく80)を転送していると思います。また、外部IPに解決される名前(おそらく動的DNS名)を使用してWebサイトにアクセスしようとしている、またはその外部IPを使用して直接アクセスしようとしていると思います。ほとんどのNATルーターは、ルーターの外部インターフェイスに着信するパケットに対してのみポートマッピングを使用可能にするため、これはおそらくすぐには機能しません。
上記が当てはまる場合、4つの解決策があります:
-
ルーターの設定を見て、「NATループバック」、「Ext-intループバック」に似たものを見つけてください。など。これは、外部インターフェイスから入ってくるパケットを処理するのと同じように、内部インターフェイスから入って外部IP宛てのパケットを処理するようにルーターに指示し、トラフィックを効果的に正しくループバックします。これによりポート転送がトリガーされ、サイトが機能します。すべてのルーターにこのオプションがあるわけではありませんが、持っている場合は最も堅牢なソリューションになります。そうでない場合は、ルーターをサポートする無料のファームウェア(Tomato、OpenWRT、DD-WRTなど)にファームウェアを変更することもできます。トマトがこのようなシナリオに成功しました。
-
ルーターの背後にいる場合は内部IPを使用し、外部の場合は外部IPを使用します。
-
使用しているDNS名を独自のホストファイルに追加して、内部IPに対応させます。これにより、(3)独自のホストから名前にアクセスするときに自動的に達成されます。ルーターの背後にあるホストごとにこれを繰り返す必要があります。
-
独自のDNSサーバーをルーターの背後で実行し、DNSレコードに対する権限を要求して内部IPに解決し、他のDNSクエリを実際のネームサーバーに転送します。
他のヒント
ドメインを指していると思われる外部から見えるIPアドレスは、実際にはルーターまたはケーブルモデムのIPアドレスです。外部接続は、IISが有効なマシンにルーティングされますが、ネットワーク内から接続すると、管理インターフェースを備えたルーター独自のWebサーバーが取得されます。要求したURLに一致するページがある可能性は低いため、404が表示されます。
ホームマシンのホストファイルにエントリを追加して、ドメインをIISがオンになっているマシンの内部IPにマッピングし、DNSエントリの外部IPを上書きすることで修正できるはずです。