dynDNS を使用してローカル マシンで Web サーバーを実行する

dynDNS を使用してローカル マシンで Web サーバーを実行する

アカウントを作成しましたノーイップ動的ホストを作成しました。(test.ddns.net) IPアドレスを持つローカルマシンで192.168.2.128私はポートでApacheウェブサーバーを実行しています8080そして443アパッチ

私は「test」という名前のプロジェクトを作成しました。このプロジェクトには「test.html」というファイルが含まれており、そこには単に「hello world」が出力されています。

私のルーター(テレコムのスピードポートW921V)に、ポート80で受信したすべてのものをIPアドレスを持つローカルマシンのポート8080に転送するポート転送ルールを追加しました。192.168.2.128

編集: また、ポート8080に着信するすべてのものをIPアドレスを持つローカルマシンのポート8080に転送しようとしました。192.168.2.196 ポート転送

dynDNS エントリも追加しました。 DynDNS エントリ

ローカル マシン上のプロジェクトにアクセスしたい場合は、 192.168.2.128:8080/test/test.htmlブラウザーで開くだけです。しかし、このサイトに外部からアクセスするにはどうすればよいでしょうか?

このように試してみましたtest.ddns.net/test/test.html が、「Web サイトにアクセスできません」というメッセージが表示されます。

私もこのプログラムを実行していますDUC v4.1.1

なぜ機能しないのでしょうか? スピードポートでポート転送が機能していないのでしょうか、それとも他の手順を忘れているのでしょうか?

注記: 実際のドメイン名は「test.ddns.net」ではありません。匿名性を保つために検閲しました。

編集: 私は今、非常に混乱しています。私の実際のドメイン名は、すでに述べたとおりではなくtest.ddns.net、まったく別のものです。しかし、Web サーバーが稼働しているローカル マシンから開くとtest.ddns.net:8080/test/test.html、Web サイトがhello world開きます。どうしてこんなことが可能なのでしょうか?

答え1

nslookup test.ddns.netは で応答します127.0.0.1。これは ですlocalhost。したがって、パケットはホーム ネットワーク経由で送信されているわけではなく、作業しているコンピューターの内部でのみ送信されていることになります。

私はこのようにして test.ddns.net/test/test.html を試しましたが、「Web サイトにアクセスできません」というメッセージが表示されます。これは、サーバーをポート 80 ではなくポート 443 と 8080 で実行しているためです。

実際のパブリックIPv4アドレスを持っていることを確認してください。IPv6を使用している場合、IPv4サーバーにアクセスするときにキャリアグレードNATこれにより、IPv4 サーバーにアクセスできますが、IPv4 クライアントが IPv4 サーバーにアクセスすることはできません。これは、ポート転送を行うように構成できない NAT の背後にあるため、実際にはパブリック IPv4 サーバーがないためである。NAT ゲートウェイとルーター間のデータ転送は IPv6 経由で行われ、ルーターにはパブリック IPv6 アドレスのみが関連付けられる。これは Dual-Stack Lite と呼ばれます。

Googleで「My IP」を検索すると、GoogleがあなたのパブリックIPを表示します。http://<IPアドレス> ページを開きます。ページが開いた場合、ルーターの外部 IP は実際にはパブリック IP アドレスであり、ポート転送は正常です。つまり、問題は no-ip.com にあるということです。

答え2

これには ngrok のようなものを使用できます。これをインストールして実行します:

ngrok http 8080

また、サーバーにアクセスするために使用できる固有のサブドメインが提供されます。ポート転送などは必要ありません。

関連情報