宿で使う旅先ルータからの金盾越えの話はいったんこんな感じで落ち着いたんですが、ちょっと問題が残っていたのがスマホからの金盾越えの話。
旅先ルータでは、接続先によってVPNを通すか通さないかの振り分けができているんですが、スマホアプリでは同じようなことを実現する機能がありません。
なので出先だと、日記アプリのDaybookでメモを取るときはVPNをONにして、支付宝(Alipay)や高德地图を使うときはOFFにするみたいなこまめな切り替えが必要になっててめんどくさいです。
なんかいい方法ないかなあ。
たとえばProton VPNアプリだと、アプリごとにVPNを通すか通さないかの設定が有料プラン向けには提供されてるみたいなんですが、ZeroTierアプリやOpenConnectアプリにはそういう機能はありません。
(OpenConnectアプリには接続先IPアドレスで振り分ける機能はあるけれど。)
無料でアプリごとに切り替えができるAndroidアプリがあって、金盾も越えられるっていう都合のいいVPNプロトコルはないもんかなあ。
・・・ということで見つけたのが、VLESS + Reality(サーバ側)とv2RayTun(スマホ側)の組み合わせです。
サーバ側
サーバ側の話はざっとだけ。
グローバルIPアドレスを持つ実家環境上のDebianサーバにこれをインストールしてブラウザから設定。
細かい設定のしかたはGeminiに教えてもらいました。
スマホ側
スマホ側で使うのはこのアプリ。Geminiではわからなかったところをメモしておきます。
★接続先設定
サーバの管理画面上でQRコードを表示させて、それをスマホアプリで読み込ませることでスマホ側の設定ができるんですが、これがちょっと不完全。
このQRコードに接続先情報が含まれているんですが、ブラウザのURL欄のIPアドレスがそのまま入ってしまうので、管理画面にLAN内からアクセスしているとローカルIPアドレスが入ってしまいます。
これはアプリ上で手で修正する必要があります。
★アプリごとの設定
アプリごとにVPNを通すか通さないかの設定は、
Settings > Routing > Routing of selected applications
ここにあります。ここに
Routing of selected applicationsBypass Mode
という2つのトグルスイッチがあるのですが、この意味がちょっとわかりにくかったので実験して確かめました。
Routing of selected applicationsは、そもそもアプリごとの制御を効かせるかどうか。これがOFFだとあとの設定がどうであっても全アプリの通信がVPNを通ることになります。
Bypass Modeは、アプリ上に説明がある通り、アプリごとのON・OFFの解釈を逆転させる効果があります。
たとえばBypass ModeOFFの状態で、アプリ選択でFirefoxだけをONにすると、Firefoxの通信だけVPNを通ります。
逆にBypass ModeONの状態で、アプリ選択でFirefoxだけをONにすると、Firefox以外の全アプリの通信はVPNトンネルを通って、Firefoxだけ生で通信をします。
金盾の影響を受けるアプリはけっこう多いので、中国で使う場合はBypass ModeをONにして、VPN環境だとうまく動かない支付宝とか高德地图とかの中華アプリの方にチェックをつけるという使い方が現実的かな。
ちなみにここの設定は、VPN接続中にやっても反映されません。反映にはVPN切断・再接続が必要で、アプリ操作のService restartではだめでした。
こんなのもあります。
コメント