remote-random を追加するとプロファイルが回転するプールになり、接続のたびに別のアドレスから出てくる——それがよくある想定です。実際にこのディレクティブが行うのは、クライアントが接続を開始するときにリモートの一覧を一度だけシャッフルし、その新しい順序で試すことだけです。最終的に立ち上がるトンネルは依然として一つのエンドポイントで終わり、セッションの間ずっとそこに留まります。

この違いはテストにもプライバシーの主張にも関係します。

接続時にこのオプションが変えるもの

クライアントプロファイルには複数の remote 行を含めることができ、それぞれに独自のホスト名とポートがあります。ディレクティブがなければファイル順に試され、あればセッション開始時に一覧が一度並べ替えられて、最初に応答したアドレスが勝ちます。残りはこの試行のための予備であり、並列の経路ではありません。リモートが一つだけのプロファイルではシャッフルする対象がなく、これが意味を持つかどうかを確かめる最短の方法です。

OpenVPN のマニュアルは、このオプションを接続試行の順序に影響するものとして記述しており、挙動として期待すべき範囲はまさにそれだけです。

再接続は新しい選択サイクルを始めるため、後のセッションは別の場所に着地することがあります。稼働中のトンネルは、立ち上がっている間は移動しません。

誤解:リクエストごとに新しいサーバーになる

確立されると、トンネルはそのセッションのすべての通信を選ばれたピアへ運びます。リクエストごとの再選択はなく、このディレクティブは個々の接続のロードバランサーではなく、候補をシャッフルするのであってパケットを分散するのではありません。そのトンネルを共有するアプリケーションはすべて同じピアを共有します。ブラウザが出口について報告する内容はセッションに属し、個々のリクエストに属するものではありません。

テストで二つの異なる出口が示されたら、賢いオプション一つではなく二つの別々のセッションを探してください。この区別は、間に再接続があった場合にブラウザのテストとダウンロードのテストが食い違う理由も説明します。

remote-random-hostname は何のためか

よく似た名前の二つ目のディレクティブは、名前解決に使うホスト名を変えるもので、リモート一覧の順序を変えるものではありません。これは、名前がラウンドロビン DNS によって複数のアドレスに解決される構成のために存在し、サービスがそのために作られている場合にのみ使うべきです。変わるのは解決の手順だけで、候補一覧の順序は変わりません。

名前が関連して見えるからといって有効にするのはよくある間違いです。ワイルドカード証明書や、変更後の名前を想定していない DNS 構成では、解決や検証が単純に失敗します。

ログから選択されたエンドポイントを読む

結論を出す前に、セッションが実際にどのピアを使ったかを記録してください。詳細出力は試行中のアドレスを示し、プロファイル自体は候補がいくつあるかを示します。シャッフルのせいにする前に、その数をログのアドレスと比較してください。

grep -c '^remote ' client.ovpn
openvpn --config client.ovpn --verb 4 2>&1 | grep -i -E 'attempting|peer connection'
openvpn --help | grep -A2 remote-random
head -20 client.ovpn

性能比較では、他のリモートをコメントアウトしてエンドポイントを固定し、試す変数が経路ではなくプロトコルやクライアントになるようにします。プライバシーの問いでは、サービスの身元と記録を全体として評価してください——シャッフルされた最初の選択は Cookie を消さず、アカウントのログインを外さず、二人の運営者を同等にもしません。

提供された信頼の素材と、対応するエンドポイントの集合を一緒に保ってください。再シャッフルが変えるのは、その集合を試す順序だけです。

関連記事