LAMP を使用して Ubuntu サーバーをセットアップし、外部からアクセスしようとしています。
私がしたこと:
問題
Ping Failed: TimedOut
端末から IP アドレスを ping してみましたが、ブラウザ経由でサーバーに接続しようとするとメッセージが表示され、その後フリーズしてしまいましPING myhost.no-ip.org (66.XXX.XXX.XX) 56(84) bytes of data.
たOops! Google Chrome could not connect to...
。
情報
ssh、sftp、http 経由でローカル サーバー (192.168.1.127) に接続できます。
私は Linksys E320 ルーターを持っており、ファイアウォールを無効にしました。
外部 IP を提供する必要がある場合はお知らせください。ご協力ありがとうございます。
編集
Listen 80
/etc/apache2/ports.confを次のように変更して、ポート80ではなくポート50005をリッスンするようにしました。listen 50005
答え1
私が間違っている理由
ping ができない理由は、ルーターがエコー要求をサーバーに転送しないからだと説明しましたが、ルーター自体がエコー要求に応答しない理由については説明がつきません。自宅のネットワークではルーターに直接 ping できます (192.168.1.254)。では、外部から ping しようとすると機能しないのはなぜでしょうか。
私の推測では
私はまだこれを学んでいるので、この情報は正確ではないかもしれません。私の答えは主にhttps://community.spiceworks.com/topic/85353-forward-pings-from-the-router-to-the-server-behind-it
ping が実行できないのは、実際にはあなたのせいではなく、IPv4 の設計上の制限によるものです。ルーターに指定の IP アドレスがあり、ポート 80、22、50005 を任意のコンピューターに転送するように設定されていると想定します。これは、特定の種類のネットワーク アドレス変換 (NAT) であるポート アドレス変換 (PAT) を使用するルーターです。
サーバーに ping を実行すると、ping はインターネット制御メッセージ プロトコル (ICMP) エコー要求メッセージを送信し、返信メッセージを待ちます。
問題は、ICMP が非常に低レベルであるためポートがないことです。ルータはポートのみを転送するため、ping が実行できず、ICMP エコー要求がサーバーに転送されません。
ping を使用してサーバーが稼働しているかどうかを確認する代わりに、telnet 25 を使用して回避策を実行できる可能性があります。まだサーバー上でこれを設定していないため、その方法がわかりません。
動作しましたか? ポート転送を行う代わりに、ファイアウォール > IP パススルーに移動し、割り当てモードを「パススルー」から「デフォルト サーバー」に変更し、デフォルト サーバーをラップトップ サーバーが使用している内部 IP (192.168.1.99) に設定しました。
ping が機能するようになりました。正直なところ、私の状況があなたの状況と似ているかどうかはわかりませんので、すぐに返信をいただければ幸いです。