OpenVPN (Tunnelblick) からサーバに接続できなくなったときの対処法

Tunnelblick を使って OpenVPN サーバに接続していましたが、先日 Tunnelblick のアップデートを行ったところ、VPN サーバに接続できなくなってしまいました。

VPN サーバが落ちたのかなと思い、iPhone からアクセスしてみたところ今まで通り問題なく接続することができました。

最初は Tunnelblick のアップデートでバグを踏んでしまったかと思っていたのですが、エラーログを見て調べたところ、どうやら Tunnelblick のバグではなくクライアント端末のネットワークの設定に問題があるということがわかりました。

OpenVPN error: write UDPv4: Can’t assign requested address

この記事を参考に僕が実際に行った解決手順をメモとして残しておきます。

まずはクライアント端末のネットワークインターフェースを確認します。

$ sudo ifconfig

出力された結果の中に en0en1 というのがあるはずなのでそれを確認します。en0, en1status を確認して、active となっている方が現在接続しているネットワークです。statusactive のインターフェースには inet にグローバル IP アドレスが割り振られているのが確認できます。(ちなみにグローバル IP アドレスを調べるには noraworld.net にアクセスします。)

上記参考サイトでは、デフォルトでは en0イーサネットインターフェースで、en1 がワイヤレスインターフェースと書かれていますが、僕の環境では逆だったので ifconfig コマンドで確認したほうが無難です。

statusactive だったほうのインターフェースを切ってルーティングをし直します。

$ sudo ifconfig en0 down
$ sudo route flush
$ sudo ifconfig en0 up

上記コマンドの例では en0 を指定していますが、en1active だった場合は en1 に変えてください。

これでルーティングが再構成されました。ネットワーク(Wi-Fi 等)に再接続されるはずなので、接続されるまで待ちます。

その後、Tunnelblick から VPN 先に接続できれば OK です。お疲れさまでした。

ちなみにこれでもうまくいかない場合は Wi-Fi を切って sudo route flush を実行して Wi-Fi に再接続してから試してみてください。