OpenVPN Connect の Seamless tunnel について

はじめに

OpenVPNを使用してiPhoneVPN接続しているのだが、スリープ中は切れてしまったり、なぜか一日に一回くらいの頻度で勝手にVPNの接続がオフになってしまったりして、どうも安定しないので、調べてみたことの話。

設定の変更方法

iPhoneの"設定"アプリを開き、最初のページを下までスクロールするとインストールしたアプリ一覧が出てくるので、そこから"OpenVPN"を探してタップする。

OpenVPN Connect アプリを開いてもほとんど設定をいじることはできない。そしてこの設定はアプリを開いても何もアナウンスされないので意外と気づきにくい。

Seamless tunnel

iPhoneでのVPN接続がよく切れるので調べていたら、設定の “Seamless tunnel (iOS8+)” という項目をオンにするという解答が多かった。これはデフォルトではオフになっている。Seamless tunnel がよくわからなかったので調べたら海外のこちらのサイトにはこう書かれていた。

For keeping the VPN tunnel active during pause, resume, and reconnect states go to “Settings” → “OpenVPN” and turn on “Seamless tunnel”. Also set “Connection timeout” to “None” value:

“keep active” なのでスリープ中でもずっとVPNに接続している的な意味合いなのだろうと思い、とりあえずオンにしておいた。

オンにしたあとにスリープしたりすると、前と変わらずVPNの接続は切れてしまった。オンにしたときはVPNに接続されていた状態だったので、設定が反映されていなかったのかもしれない。自分の環境ではなぜか一日に一回くらいの頻度でVPNが勝手にオフになる(手動でオンにしないといけない)ので、VPNに再接続した。

VPN接続がオフになった状態から再接続して設定が反映されたのか、スリープしても切れなくなったように感じる。「感じる」というのは、ときどき長くて3時間くらい接続されていてもやっぱり切れてしまったし、一日に一回接続がオフになってしまう現象が解消されたかはまだ未検証なので断言はできない。

この記事を書く直前までは、スリープ中に切れなくなった(ような気がする)ことには気付いておらず、それよりも、Seamless tunnel をオンにしてVPNに再接続したあとに、外出してWi-Fiからモバイル通信(4G, LTE, 3G 等)に切り替わったときにVPNが切れていないことに気付いた。

今まではWi-Fiからモバイル通信、モバイル通信からWi-Fiに切り替わるときにVPNが一時的に切断されてしまっていた。その場合は自動で再接続されるものの、できればずっと接続状態を維持してほしいと思っていた。

そして、Seamless tunnel をオンにしていると、モバイルとWi-Fiの切り替わりのときにVPNが接続されたままになるから、たぶんそういうことなんだろう、という記事をここに書いている途中で、スリープ中でもVPNが切れなくなったように感じはじめた。

ちょっと書こうと思っていたことがずれてしまったけど、これからVPNがオフになったり途中で切れたりしないかどうか検証していきたいと思う。とりあえずモバイルとWi-Fiの切り替わりでVPNの接続状態が維持されることは検証済みなので、オンにしておいて損はないと思う。あと、オンにしたら、VPNを一旦切断して再接続しないと設定が反映されないようなので注意。

それから参考にしたサイトでは、"Connection timeout" を “None” に設定するように紹介されている。デフォルトでは “30 seconds” なのでこちらも変更しておいた。

OpenVPNの構築についてはこちらを参照 OpenVPNのインストールとセットアップからインターネット接続までのガイドブック