VyprVPN の自動再接続と、アップグレード後に Tomato ルーターで使えなくなった場合の対処法
この記事では、VyprVPN と Tomato ルーターに関する小さな問題を 2 つ記録しておく。1 つ目は VPN が切断されたあとにルーターで自動再接続させる方法、2 つ目は Tomato ファームウェアをアップグレードしたあと VPN クライアントが突然使えなくなったときの切り分け方法である。
1. VyprVPN を自動再接続させる
Tomato の OpenVPN Client ページでは、通常まず次の基本項目を確認しておくとよい。
Start with WANが有効になっている。Interface Type、Protocol、サーバーアドレス、ポート、証明書設定が VyprVPN 公式設定と一致している。- ルーターの時刻が正しい。時刻がずれていると証明書検証に失敗することがある。
- DNS 設定が利用可能で、接続成功後にドメイン名を解決できない状態を避けられる。
たまに切断されるだけなら、Tomato の Administration -> Scheduler に定期チェック用のスクリプトを追加できる。考え方は単純で、VPN インターフェースが存在するか、または指定したサイトに VPN 経由でアクセスできるかを確認し、失敗したら OpenVPN クライアントを再起動する。
サンプルスクリプトは次のとおり。vpnclient1 は自分のクライアント番号に合わせて調整する。
#!/bin/sh
VPN_SERVICE="vpnclient1"
TEST_HOST="8.8.8.8"
if ! ping -c 3 -W 3 "$TEST_HOST" >/dev/null 2>&1; then
logger -t vyprvpn-watchdog "VPN check failed, restarting $VPN_SERVICE"
service "$VPN_SERVICE" restart
fi
5 から 10 分ごとに実行すればよい。間隔を短くしすぎないこと。ネットワークが一時的に揺らいだだけで VPN が頻繁に再起動し、かえって使いにくくなる。
トラフィックが本当に VPN を通っているか確認したい場合は、公共 DNS に ping するだけでは不十分である。より確実なのは出口 IP を確認するか、VPN 経由でルーティングされるべきアドレスだけに ping する方法だ。Tomato のブランチによって利用できるコマンドには多少違いがあるため、まず SSH でルーターにログインして手動実行し、そのうえで Scheduler に入れることを勧める。
2. Tomato アップグレード後に使えない場合の切り分け
Tomato のアップグレード後に OpenVPN クライアントが使えなくなる場合、よくある原因は VyprVPN アカウント自体の失効ではなく、古い設定と新しいファームウェアの OpenVPN バージョン、暗号化パラメータ、または NVRAM 設定の非互換である。
次の順番で対処できる。
1. ログを確認する
まず Status -> Logs に移動するか、SSH からシステムログを確認する。
logread | grep -i openvpn
特に次の情報を見る。
- 証明書、時刻、TLS ハンドシェイク関連のエラー。
cipher、auth、ncp、data-ciphersなどの暗号化パラメータのエラー。- DNS 解決の失敗。
- ユーザー名とパスワードの認証失敗。
- ルーティングテーブル、または tun/tap インターフェース作成の失敗。
ログでは、後続のリトライ情報よりも、最初に出てくる明確なエラーのほうが重要なことが多い。
2. VyprVPN 設定を更新する
ファームウェアをアップグレードしたあとは、何年も前の .ovpn 設定をそのまま使い続けないほうがよい。VyprVPN の管理画面または公式ヘルプページから OpenVPN 用の設定ファイルを改めてダウンロードし、Tomato のページと照らし合わせながら各項目を入力する。
特に注意が必要なのは次の点である。
- サーバーアドレスとポートが今も有効か。
- UDP を使うのか TCP を使うのか。
- 証明書の内容を完全にコピーできているか。
- ユーザー名とパスワードが正しい場所に保存されているか。
cipher、authなどのパラメータが新しい OpenVPN バージョンで受け入れられるか。
新しいファームウェアで特定の暗号化パラメータがエラーになる場合でも、高度なオプションをむやみにすべて削除してはいけない。まずログからどの項目が非互換なのかを確認し、現在の設定ファイルに合わせて調整する。
3. 古い設定を消してから再入力する
アップグレード後、画面上の設定が正常に見えるのに接続が失敗し続ける場合は、OpenVPN Client の該当ページをいったん空にし、保存してルーターを再起動してから、設定を入力し直してみる。
より徹底するなら、設定をバックアップしたうえで NVRAM をクリアし、手動で再設定する方法もある。この操作ではルーター設定が消えるため、実行前に WAN、Wi-Fi、管理パスワードなどの基本設定を復元できることを確認しておく必要がある。
4. ルーティングと DNS を確認する
VPN は接続済みと表示されるのにウェブサイトを開けない場合、通常はルーティングと DNS を確認する。
ifconfig
route -n
cat /etc/resolv.conf
tun インターフェースが出ているか、デフォルトルートが VPN に引き継がれているか、DNS が名前解決できるかを確認する。一部のトラフィックだけを VPN に通したい場合は、ポリシールーティングのルールがアップグレード後のファームウェアにも引き続き適用できるかも確認する必要がある。
5. 最後に再起動スクリプトを入れる
設定そのものに問題がないことを確認してから、自動再接続スクリプトを有効にする。自動再接続で処理できるのは「たまに切断される」ケースだけであり、「設定ミス」は修復できない。設定自体に互換性がない場合、スクリプトは OpenVPN を延々と再起動するだけで、ログはますます見づらくなる。
実用的な処理順は次のとおりである。
- まず一度手動で接続し、ログに設定エラーがないことを確認する。
- 次に、切断後の手動再接続をテストする。
- 最後に Scheduler による自動チェックを追加する。
このように対処すれば、Tomato 上の VyprVPN はたいていアップグレード前の使用状態に戻せる。
