Tech Racho エンジニアの「?」を「!」に。
  • IT Tips
  • Ruby / Rails以外の開発一般

Android 12 以降の L2TP/IPsec VPN接続問題を Windows のモバイル ホットスポット機能で解決する

久々に Kubota Glass 以外の記事を書きます!

この度、いつも開発で利用していた Pixel3 XL (Android 9.0) がお亡くなりになってしまったため、Pixel6 (Android 13) を買ってもらいました。

そして開発環境に接続するために会社のVPNに接続しようとしました。
しかし、どうやら Android 12 以降では L2TP/IPsec による接続が出来なくなっているようで、うまく行きませんでした。

さてどうしようと思い検索してみたのですが、自分が知りたい情報があまりまとまっておらず解決に多少時間がかかりました。
結果としては解決できたので、この記事にまとめておきます。

🔗前提条件

適当に検索してみると解決法として専用アプリを導入する方法などは引っかかります。
が、なるべく余計なものはインストールしたくありません。

ついでに宗教上の理由でMacも利用したくありません

今回は Windows 11 と Android のデフォルトの機能のみを利用して問題を解決しました。

この記事内で利用しているものは以下となります。

  • Wifi 接続可能な Windows 11 端末
  • Android 13 端末 (Pixel6)

🔗手順

🔗1. Windows で Wifi 接続する

Windows を Wifi 接続をしてインターネットを利用出来るようにします。
流石にこの手順の詳細は割愛させていただきます。

🔗2. Windows でVPN接続を設定する

Windows の設定から ネットワークとインターネット > VPN へ進み、VNP接続を追加して利用出来るようにします。

この設定の追加方法も他に分かりやすい記事などたくさんあると思いますので割愛させていただきます。

🔗3. Windows でモバイル ホットスポットの設定をオンにする

Windows の設定から ネットワークとインターネット > モバイル ホットスポット へ進み、設定をオンにします。

そうすると下の欄のネットワークのプロパティに表示されている名前(ここでは BPS hogehoge としました)が Android の Wi-Fi 設定の検索に表示されるようになります。

Android の Wi-Fi 設定で BPS hogehoge を選択していつものようにパスワードを入力して接続すると、以下のように接続された端末情報も表示されます。

Windows 側のVPN接続を利用していない場合はこれで通常通り Android でインターネット接続が有効になります。
が、VPN接続をオンにすると Android 側で以下のように表示されてしまい、インターネットに接続出来なくなってしまいました。

🔗4. Windows のVPNのプロパティからインターネット接続の共有を有効にする

Windows の設定画面やタスクバーの検索から「ネットワーク接続の表示」を検索して表示します。

表示されたウィンドウに以下のような項目が表示されています。

上の項目はVPN接続を追加した際に表示されるようになったもので、下の項目はモバイル ホットスポットをオンにした際に表示されるようになったものです。

ここで上の項目を右クリックしてプロパティを表示し、共有タブを開きます。

ここで上記画像のようにネットワークのほかのユーザーに、このコンピューターのインターネット接続をとおしての接続を許可するをオンにし、ホーム ネットワーク接続にモバイル ホットスポットを表す接続先を設定します。

これで先程 Android の Wi-Fi 設定で「接続済み/インターネットに接続されていません」と表示されていた問題が解消し、インターネット接続が出来るようになったはずです。

一つ注意が必要な点として、この状態で Windows のVPN接続をオフにするとまた Android 側が「インターネットに接続されていません」になってしまうと言うのがあります。
この場合、上記の設定を戻せばまたVPN接続をオフの状態でモバイル ホットスポット経由でインターネット接続が出来るようになります。
(ただし、機嫌が悪いと何度かオン/オフ繰り返したり時間を置いたりしないと再接続出来ないことがある?)

この点についてはむしろ、モバイル ホットスポットに接続している場合はVPN接続(インターネットに繋がらない場合はVPNがオフになっている)というのが分かりやすくて良かったりもします。
Android が Wi-Fi に直接接続出来る環境であれば、VPN接続しない場合はモバイル ホットスポットを使わなければ良いだけですしね。

🔗最後に

今回は久しぶりの小ネタ記事でした。

ちなみに小ネタと言うとつい先日、いつの間にか Android Studio の Device Mirroring という機能が正式設定になっていることに気づきました。
一応 Electric Eel の時点で Experimental, Opt-in として実装されていたのですが、(おそらく)特に告知なくいつの間にか Experimental ではなくなっていたようです。

この機能は接続した Android 端末の画面をエミュレータ同様に Android Studio 内で表示出来る機能なのですが、クリップボード共有でコピペが出来て非常に作業が捗るので、まだ使ったことがない方は是非使ってみて下さい。

暇があれば今度は小ネタではなく、iOS もα版になった Compose Multiplatform 辺りの記事を書いてみたいところですが果たして・・・。

※ちなみに Kubota Glass が壊れて2ヶ月近く経ちましたがまだ返ってきてません。😢

関連記事

Android のログ出力に関わる処理コストをリリースビルド時に 0 にする

Android開発者が Kotlin Multiplatform Mobile (KMM) による開発を通して iOS のバックグラウンド処理を学んだ話


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。