Debian OpenVPNクライアントが接続されているかどうかを確認するにはどうすればよいですか?実行する必要がある特定のコマンドはありますか?または、ログファイルから読み取ることはできますか?
ありがとう。
編集:以下の回答は、デバッグに大きな価値をもたらします。 2つの異なるシステムで同じオープンVPN資格情報を使用したため、問題が発生しました。
クライアントとサーバーのどちらの観点から質問しているかはわかりません。いずれの場合でも、注意する必要がある1つのことは、この構成オプションを使用してOpenVPNデーモンで management interface を有効にすることです。
management 127.0.0.1 6001
管理インターフェースを有効にすると、netcat/telnetを使用して、この目的で設定した任意のポートに接続できます。次に、status
コマンドまたは他の多くのコマンドを発行して、デーモンの観点から何が起こっているかを正確に判断できます。
@mgorvenは良い答えを得ると思いますが、問題を別の視点に置くような別のものを提案したいと思います。
ネットワークの構成に/etc/network/interfaces
を使用している場合、それを使用してクライアントOpenVPNトンネルを制御できます。こんなふうになります:
OpenVPNのdev
オプションには、トンネルデバイスのcustom名を使用します。たとえば、
dev mytun
openVPN構成ファイル内。
設定ファイルが
/etc/openvpn/client.conf
次のように、/etc/network/interfaces
ファイルにそのデバイスのエントリを設定します。
iface mytun inet manual
pre-up /etc/init.d/openvpn start client
pre-down /etc/init.d/openvpn stop client
このように設定すると、次のことができます
# /sbin/ifup mytun
# /sbin/ifdown mytun
ここで元の質問に戻ります—ネットワーク構成ファイルのiface
セクションもpost-up
ディレクティブをサポートしています。これは、scriptingに使用できますが、「トンネルは準備完了」イベント。
デスクトップマシンのさらに別のアプローチは、OpenVPNトンネルを管理するために TunTun のようなビジュアルツールを使用することです。
正確に何を達成しようとしているかに応じて、いくつかの方法があります。クライアントが実行されているかどうかを確認し、Debianのinitscriptを使用している場合は、service
コマンドを使用できます。
% Sudo service openvpn status mammon; echo $?
* VPN 'mammon' is running
0
クライアントがサーバーに接続されているとクライアントが認識していることを確認する場合は、ルーティングテーブルでVPNサブネットまたはローカルインターフェイスの存在を確認できます。
% ip route | grep -q 10.8.0.1; echo $?
0
% ip link show dev tun0 > /dev/null; echo $?
0
クライアントが接続され、サーバーが接続可能であることを確認するには、サーバーにpingを実行します。
% ping -c1 -w5 -q 10.8.0.1 > /dev/null; echo $?
0
Ubuntuでは、/var/run/openvpn.openvpn.status
に現在のOpenVPNステータスを保持するファイルがあります。
管理インターフェースのstatus
コマンドの出力と同じように見えますが、OpenVPNで有効にする必要はありません。
スクリプトでいくつかの処理を行うことができます。つまり、時間の経過とともにカウンターが増加するかどうかを確認します。