web-dev-qa-db-ja.com

選択したOpenVPNサーバーをランダム化する方法はありますか?

私はProtonVPNアカウントを持っており、インターネットのプライバシー保護のために常時VPNサーバーに接続しています。残念ながら、ProtonVPNは現時点ではLinuxベースのクライアントを提供していないため、OpenVPN経由でサーバーに接続することをお勧めします。

パッケージをインストールしましたopenvpnnetwork-manager-openvpnおよびnetwork-manager-openvpn-gnome公式ガイドにアクセスして、.ovpn構成ファイルをロードします。

接続は正常に機能しますが、UbuntuのVPNに接続するときは常に、事前構成された.ovpnファイルから特定のサーバーを手動で選択する必要があります。代わりに、Androidクライアントでは、たとえば、ボタンをタップするだけで、ランダムなサーバーに接続することができます。

手動で選択する代わりに、ネットワークマネージャーにランダムな.ovpn構成を選択させる方法はありますか? (私はコマンドラインを恐れていませんが、システムに別のPPAを追加しないことが望ましいです。)

2
Prototype700

簡単なコマンドラインスクリプトは次のように機能します。

#!/bin/bash
RANGE=200

number=$RANDOM
let "number %= $RANGE"
fname="us${number}.ovpn"
openvpn "$fname"

仮定して:

  • OpenVPN設定ファイルは、us176.ovpnのようなスキームに従って名前が付けられています。つまり、2文字の国コードと通し番号です。
  • 利用可能なOpenVPN設定ファイルはus1からus200まで実行されます。

範囲を調整し、構成ファイルが格納されているディレクトリを追加する必要があります。正確なファイル名の形式によっては、ProtonVPNについてはわかりませんが、他の変更を加える必要があるかもしれませんが、アイデアはわかります。 OpenVPNがそのように機能するには、スクリプトをSudoとして実行する必要があることに注意してください。

編集:VPNが接続時にユーザー名とパスワードを要求する場合、次のようにスクリプトの最後の行を変更できます。

openvpn --config $fname --auth-user-pass /dir/to/userpass.txt

ここで、userpass.txtは、ユーザー名とパスワードを2行に分けて格納しています。

3
Sebastian

私はそれをしたことはありませんが、openvpnマニュアルを理解している限り、.ovpn構成ファイルに複数の接続プロファイル/リモートvpn-server-ipを書き込むことができます。 –remote-randomと組み合わせると、ソフトウェアopenvpnが1つを選択します。それ以外の場合は、リストで指定されている最初のサーバーが選択されます。これがNetworkManagerで機能するかどうかはわかりませんが、termialなどのコマンドを実行すると機能するはずです。
Sudo openvpn my.config.file.ovpn


見積書からの引用:

-remote Host [port] [proto]

リモートホスト名またはIPアドレス。 クライアントでは、冗長性のために複数の--remoteオプションを指定でき、それぞれが異なるOpenVPNサーバーを参照します。この目的で複数の--remoteオプションを指定することは、より一般的な接続プロファイルの特殊なケースです。特徴。

以下の<connection>のドキュメントを参照してください。

OpenVPNクライアントは、リストで指定された順序でHost:portのサーバーに接続しようとします of --remoteオプション。 protoは、リモートとの接続時に使用するプロトコルを示し、「tcp」または「udp」の場合があります。

接続に失敗した場合、クライアントはリストの次のホストに移動します。 OpenVPNクライアントは常に1つのサーバーに接続されることに注意してください。

[...]

<connection>クライアント接続プロファイルを定義します。

クライアント接続プロファイルは、特定のOpen-VPNサーバーへの接続方法を説明するOpenVPNオプションのグループです。クライアント接続プロファイルはOpenVPN構成ファイル内で指定され、各プロファイルは<connection>および</connection>で囲まれます。

接続プロファイルの使用例は次のとおりです。

クライアント開発tun

<connection>

リモート198.19.34.56 1194 udp

リモート198.19.34.56 443 tcp

リモート198.19.34.56 443 tcp http-proxy 192.168.0.8 8080 http-proxy-retry

[...]

OpenVPNクライアントは、接続が成功するまで、各接続プロファイルを順番に試行します。

-remote-randomを使用して、最初に接続リストを「スクランブル」することができます。

2
AlexOnLinux