banner
年糕

年糕日记

此站为备份站点,最新文章请访问 oior.net
telegram
email

NATクラウドフレア

序文#

広く知られているように、Nat マシンは多くのユーザーが 1 つの IPv4 を共有するため、簡単に攻撃される可能性があります。そのため、通常は Cloudflare を使用して保護する必要があります。しかし、多くの初心者は Cloudflare の使用方法について混乱しており、一部のベテランユーザーも新しい Cloudflare の機能について詳しく知りません。また、一部のユーザーは、Nat サービスプロバイダーから提供される IPv6 が Hurricane Electric のネットワークアドレスであることに気付きます。かつて Cloudflare は HE の IPv6 ネットワークを乱用することを防ぐために「cf-he」アクセス方法を完全に禁止していましたが、それにより以下で説明する最初の方法が使用できなくなりました。ただし、この場合でも Cloudflare を利用することはできますが、多くの人が知らないため、ここでは「Cloudflare の利用方法」についてまとめます。

実際には、Cloudflare を利用して CDN として利用することを指します。HTTP(S)リクエストが発生すると、まず Cloudflare が受け取り、その後 Nat サーバーに転送されます。Cloudflare はネットワークインフラストラクチャとして考慮されるため、その保護の影響は非常に複雑であり、直接的な保護は困難です。

なぜ Nat マシンは Cloudflare を利用できないのでしょうか?多くの人々は、VPS のパブリック IPv4 を直接的に Cloudflare に接続することに慣れていますが、Nat は IPv4 を持っていないため、直接的な接続はできません。また、一部のプロバイダーは IPv6 のみのサーバーを提供しており、IPv4 アドレスがないため、特別な処理が必要です。さまざまな状況に対応するために、いくつかの代替策があります。

IPv6 を使用した接続#

最も一般的な方法は、IPv6 を使用して接続することです。つまり、AAAA レコードを追加することです。
一般的な Nat プロバイダー(gullo /webhorizon/natvps.uk など)は、Nat v4 + 独立した IPv6 アドレスを提供しているため、共有 IPv4 の 80/443 ポートを直接使用することはできませんが、独立した IPv6 を使用して接続することはできます。なぜなら、IPv6 はすべてのポートを使用できるためです。以下の図は、接続が完了した状態を示しています。

image.png

この接続方法は最も直感的であり、非常に安定したソリューションです。ただし、次の場合にはこの方法を使用できません。

  • プロバイダーの IPv6 ネットワークが Hurricane Electric である場合、cf への接続が禁止されています。たとえば、gullo の一部の地域(ニューヨークなど)
  • プロバイダーが IPv6 アドレスを提供していない場合、最近人気のある khanwebhost など

Origin Rules の使用#

広く知られているように、Nat サーバーは IPv4 アドレスを共有しているため、各ユーザーは一部のポートしか使用できません。では、これらのポートを使用して接続することはできるのでしょうか。半年前までは、その答えは否定的でした。なぜなら、Cloudflare がサポートしている非標準ポートは非常に少なく、低いポート番号であり、Nat サービスプロバイダーのポート番号は通常 10000 以上であるため、Cloudflare がサポートする非標準ポートを使用することは困難でした。しかし、今年、Cloudflare は無料で Origin Rules を提供し始めました。これにより、任意のポートを使用して Cloudflare ネットワークに接続することができます。設定は次のとおりです:
image.png
image.png

注意:VPS のローカルな HTTP サーバー(例:nginx)は、対応する非標準ポートをリッスンする必要があります。

サービスプロバイダーのドメインフォワーディング + Cloudflare 接続#

一般的に、Nat マシンのサービスプロバイダーは、ドメインフォワーディングというサービスを提供しています。簡単に言えば、ホスト / SNI で受信したドメイン(ホスト / SNI)に基づいて、ホストマシンがパブリックな 80/443 ポートをリッスンし、それを対応する Nat VPS インスタンスのプライベート IP アドレスに転送します。

このアイデアは素晴らしいですが、問題は、80/443 ポートをリッスンするために使用されるパブリックアドレスが使用できなくなることです。それでも、これは Cloudflare を 80/443 ポートで接続することに影響を与えません。Cloudflare に A レコードを追加してこれらのホストマシンの IPv4 アドレスを解決し、サービスプロバイダーパネルでドメインフォワードルールを追加することができます。

注意:VPS のローカルな HTTP サーバー(例:nginx)は、対応するプライベート IP アドレスをリッスンする必要があります。

image.png
image.png

Cloudflare が許可している非標準ポートの使用#

Cloudflare は公式に非標準の Web ポートを使用した接続をサポートしています。IPv4 が保護されている場合でも接続したい場合、上記で説明した 2 つの方法以外にも、Cloudflare が許可している非標準ポートを使用することができます。使用できる具体的なポートは次のとおりです:
image.png
では、あなたはおそらく尋ねるでしょう、これらのポートは私の Nat マシンのサービスプロバイダーが私に開放していないので、どうすればいいですか。

Nat サービスプロバイダーは、ドメインマッピングに加えて、ポートマッピングも提供しています。上記で説明した Cloudflare がサポートする非標準ポートを内部 IP に転送し、Cloudflare に A レコードを追加して解決し、最後に非標準ポートを使用してドメインにアクセスすることで目的を達成することができます。ただし、この方法はあまり効果的ではないため、バックアップソリューションとして使用することがおすすめです。

Cloudflare Argo を使用した接続#

最後に、サービスプロバイダーがパブリックな IPv4 / IPv6 を提供していない場合、例えば pikapods のコンテナサービスの場合、Cloudflare Argo を使用することができます。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。