私は、かつて完璧に機能していた LEMP Web サーバーをデバッグしようと、何週間も頭を悩ませてきました。私は比較的複雑なセットアップを使用しています。まずは、すべてが完璧に機能していた当初のセットアップから始めましょう。
ステップ 1 (動作設定): lemp サーバー/nginx > Raspberry Pi > 転送ポート付きのセカンダリ ルーター > 転送ポート付きのプライマリ ルーター > Web ページを提供するパブリック インターネット
私は Raspberry Pi 4 上の Raspian OS から Lemp サーバーを実行しています。Nginx は、プライマリ ルーター/モデムに接続されたセカンダリ ルーターを介してリバース プロキシを実行しています。プライマリ ルーター/モデムは https および http ポートをセカンダリ ルーターに転送し、セカンダリ ルーターは同じポートを Raspberry Pi に転送します。Raspberry Pi は certbot から証明書を正常に取得し、パブリック インターネットからアクセスできる完全に機能する Web サイトを実行します。
ステップ 2a (動作セットアップ): lemp サーバー/nginx > Raspberry Pi > セカンダリ ルーター > EC2 Openvpn-AS トンネル > 転送されたポートを持つプライマリ ルーター > Web ページを提供するパブリック Amazon インターネット 次に、AWS EC2 OpenVPN-AS インスタンスを作成し、サーバーとして実行します。そこから、Raspberry Pi lemp サーバーに openvpn をインストールし、ドメインの DNS を変更して、自宅の IP ではなく OpanVPN-AS インスタンスの IP アドレスを指すようにしてから、lemp サーバーでクライアントとして openvpn を実行し、Web サーバーを OpenVPN AWS インスタンス経由でパブリック インターネットにトンネリングすることに成功しました。このセットアップは機能します。
それまで....
私は、VPN 経由のサーバーへのすべての接続を完全に停止するために何かを行います。問題は、かつて動作していたこの設定を何で変更したのか、まったくわからないことです。Pi を更新したことはわかっていますし、内部ホスト名を変更した可能性もありますが、Pi がデッド サーバーになる前に覚えているのはそれだけです。
内部ネットワークでは、EC2 トンネルを使用する場合でも、Web サーバーは引き続きローカル IP を使用して動作します。
私が気づいた奇妙な点は、AWS トンネルの設定によりウェブサーバーが機能しなくなったにもかかわらず、トンネルなしでサーバーを自宅のルーターに接続し直し、DNS を自宅のルーターに再ポイントすると、サーバーが再びパブリックに機能し始めることです。AWS OVPN 経由でトンネルされた後にサーバーが機能していたので、正確に何が変わったのかはわかりませんが、現在は解決されていませんが、最小限の設定変更で自宅の IP で解決されています。AWS から自宅のルーターに切り替えるときに実際に変更するのは、ドメインの DNS がポイントする IP と、VPN トンネルをアップにするかダウンにするかだけです。
Amazon OVP トンネルについても、適切に解決され、サーバーは新しい Amazon IP アドレスを適切に取得します。
サーバーの構築方法は知っていますが、デバッグや接続がうまくいかない場所の特定に関しては、文字通りスーパーマンのような初心者です。そこで質問です...
どなたか、これをデバッグして、Amazon IP アドレスを使用して OpenVPN インスタンス経由で Web サーバーを再起動する手順を教えていただけませんか? Amazon トンネルを介した ping の成功と正常そうな traceroute 以外に、どこから始めればよいのか全くわかりません。
私の EC2 ポートは 443 と 80 で開いており、すべてのファイアウォールをオフにして試してみましたが、効果はありませんでした。
これをデバッグして接続が切断されている場所を正確に特定するのに役立つアドバイス、ヒント、ウォークスルー、または初心者に優しいステップストーンがあれば、ぜひ教えてください。
答え1
VPN ログは、トンネルが実際に稼働していることを確認していますか?
パブリック IP アドレスへのトレースルートが成功しているとのことですが、Telnet を使用して手動で接続できますか? たとえば、ホスト IP が 123.456.789.123 の場合: telnet 123.456.789.123 80
次のような応答が返されるはずです:
123.456.789.123に接続しています...参考文献エスケープ文字は '^]' です。
それが機能する場合は、次のコマンドでサーバーをテストできます: GET /index.htm HTTP/1.1 host: 123.456.789.123 <改行 - Enter キーを 2 回押す>
サーバーはインデックス ページ html: HTTP/1.1 200 OK Date: ... などを返します。