3回目の中国の旅先用ルータとしてのミニPC

実家では、快適な中国旅環境のために、2台のミニPCをがんばってセットアップしていました。

構成

今のところの構成はざっくりこんな感じで。

旅先用端末–旅先用ミニPC–(複数プロトコルのVPN回線)–実家のミニPC–インターネット

この「複数プロトコル」というのは、今年金盾を越えた実績のある

ZeroTier
SoftEther
OpenConnect

この3つで。ちなみにブログでは書いてなかったけど、

前回の中国ではMillenVPNを契約してOpenConnectプロトコルも最初の5日間だけおためししていました。

これでミニPC間にVPNトンネルを常時張っておいて、3つのうちどのトンネルを通すかは手動で切り替えられるようにしてあります。そして、高德地图など中国のサービスにはVPNを通さず直接接続できるようにも。

構築上の注意点

★Proxmox上のOpenWrt

これはProxmoxの仕様みたいなのですが、

LuCI > Network > Interfaces > Devices

で表示されるデバイスそれぞれでAdvanced device optionsEnable promiscuous modeenabledにしないとパケットのフォワーディングがうまく機能しません。

これけっこうはまりました。

★VPN回線のリンクアグリゲーション

ZeroTierとSoftEtherはレイヤー2接続ができるので、リンクアグリゲーション(OpenWrt用語ではBonding Connection)でたばねたら手で切り替える必要なく使えて便利そうやなあと思ってやってみたんですが、これがうまくいきませんでした。

たばねることはなんとかできたんですが、片方をわざと切ってみたときに、通信がかなり長期間切れてしまって使い物になりませんでした。

それなら手で切り替えた方が早いということに。

★SoftEther

SoftEtherは通信の安定する構成を見つけるのに時間がかかりました。

まずサーバ側。OpenWrtのsoftethervpn5-serverは安定しませんでした。クライアントからつないでも5秒ぐらいでセッションが切られてしまいます。

なので、OpenWrtのsoftethervpn-server(4.38-9760-r2)を利用。

クライアント側は、OpenWrtのsoftethervpn5-clientもsoftethervpn-clientも安定しませんでした。そしてブリッジ(softethervpn5-bridgeとsoftethervpn-bridge)も安定しません。

結局、間にWindowsのゲストOSをはさんでWindows版のSoftEther VPN Client (Ver 4.43, Build 9799, beta)を利用するのが一番安定しています。Windowsをルータに仕立てるのには、

引き続きMyPublicWiFiのMultifunctional Hotspotモードを利用します。

★OpenConnect

OpenWrtのOpenConnectサーバ(ocserv)は、少し設定にくせがあります。

ZeroTierやSoftEtherのようにレイヤー2接続するような設定がなく、このソフト自体でDHCPサーバまで担当してしまいます。そして同時に接続する回線の数だけOpenWrt上でデバイスの数が増えて、インタフェース設定などもその数やらないといけません。

スマホのクライアントとしてCisco Secure Client-AnyConnectを使うと、パスワードが保存されないので接続のたびにパスワード入力が必要になってめんどうなので、

F-DroidのOpenConnectアプリを使うことにしました。

このとき注意が必要なのが、OpenWrtのOpenConnectサーバ側の設定。

DNS serversの設定にOpenConnectサーバ自身のIPアドレスを入れていても、なぜかスマホからだとこのDNSが応答しません。別ルータからOpenConnectでつないでいるときには応答するのに。

あと謎なのが、OPPO Reno7 AだとちゃんとデフォルトゲートウェイとしてVPN回線が使われるのに、Rakutan Hand 5Gだと使われないということ。これは未解決のまま。

そしてよくわからないのが、Cisco Secure Client-AnyConnectアプリでつないだときの挙動。最初は問題なくつながったのに、一度OpenConnectアプリでつないでしまうと、その後Cisco Secure Client-AnyConnectアプリでつなごうとしたときには

Ciscoセキュアクライアント
セキュアゲートウェイから受信したアプリ単位のVPN構成が無効です。ネットワーク管理者までお問い合わせください。

というメッセージが出てつながらなくなってしまいました。

これはもう使わないのでいいんやけど。

★Windowsライセンス

ミニPCの1台目は、Microsoftアカウント経由で物理PCのライセンスを仮想OSに移すことができたんですが、2台目はなぜか同じ方法をやっても失敗。「あとでもう一度やってください」的なエラーだったんですが、OSの再インストールをしてもうまくいきませんでした。

結局2台目にはWindowsを入れないことに。

★PBR

接続先ドメインごとにVPNトンネルを経由させるかどうかを制御するのにPBRを使ったのですが、こちらややこしいので別の日の日記に。

追記 2025-04-10

ややこしいPBRの話を書きました。

千葉での用事

ひさびさに千葉に戻ってきました。夜行バス疲れました(>_<)

ガスもれ検査の立ち会いをして、更新されたクレジットカードも受け取りました。

今年はもう物理クレジットカード類の更新がないので、あと千葉の在宅しばりはマイナンバーカード更新ぐらいかな。

次の四川行きはGWの高値シーズンが落ち着いたあたりで出かけようと思います。

ミニPCのセカンドライフ

昨日から実家に帰ってきています。

ミニPCのセカンドライフ

旅先ルータの役目をミニPCからGL.iNetのトラベルルータにいったん戻すことにしたので、ミニPCがひまになりました。Windowsってそんなに使うものではないので。

そしたらデュアルブートでサーバ化しようかな。OpenWrtの仮想化とかもやってみたかってんなあ・・・

ということで調べていると、

こんな情報が。ミニPCを、ESXiサーバのオープンソース版みたいな環境に仕立てられるというのです。すごい!ここ数日この環境構築にいそしんでいました。

現時点でのミニPC構成

1つの筐体で、OpenWrt・Windows・Linux Mintの3OSを同時起動できるようにしています。

インターネット
|
OpenWrt
|
Windows・Linux Mint

ネットワーク的にはこんな構成に。ミニPCにはLANポートが2つあるけれど、1つWAN用でもう1つをLAN用にしていて、LAN側にさらに端末をつなぐこともできます。

以前の構成とちがって、電源を入れるだけでOpenWrtがDHCPサーバとして稼働してくれるので、ChromebookをLANケーブルでつなぐだけで使えて楽。

IMG20250329192014

しかも実家のインターネット環境は、固定ではないもののグローバルIPアドレスが手元まで来ているので、CloudflareとDDNSを組み合わせることで、独自ドメインでサーバが公開できてしまいます。

なのでVPN Azureを使わなくても、外から自前のSoftEtherサーバに接続ができてしまいました。VPN Azureはドメイン名が"vpnazure.net"でVPNなことがばればれなので、いつかDNS問い合わせのところで金盾にブロックされそうに思っていたんですが、独自ドメインならその心配もないです。

そしてこの仮想OSは、リモートデスクトップ接続とかしなくてもブラウザだけで操作ができるので、旅先でも「ディスプレイとかマウスとかキーボードをどうするか問題」がないのも楽です。

ちなみにWindowsは、仮想化しても元のライセンスが引き継げました。仮想化前にWindowsのプロダクトキーをメモっておく必要はあるけれど。

追記 2025-04-09

なぜか2台目のミニPCでは、仮想OSへのライセンスの引き継ぎがうまくいきませんでした。

ミニPCのProxmox構成の注意点

もともとミニPCにはWi-FiもBluetoothもついているんですが、Proxmoxの環境ではどちらも認識しなくなります。なのでOpenWrtを入れても無線ルータにはなってくれません。有線ルータとして使えるだけ。

追記 2025-04-09

Bluetoothは

Proxmox > 仮想マシンを選択 > ハードウェア > 追加 > USBデバイス > USB ベンダ/デバイスIDを使用 > デバイスを選択 > Bluetooth Radio

でOSにデバイスを追加をすれば使えました。

追記 2025-04-16

Wi-Fiを認識させて無線ルータ化することができました。

これから

せっかくグローバルIPアドレスがあるのだからということで、このミニPCは実家にサーバとして置いていくことにしました。ランニングコスト0円の自分専用の仮想環境として。

コンテナで自分専用のJitsi Meetサーバを立てたりしてもいいかも?

でもミニPC、便利すぎて手元にもほしいので、同じのをもう1台買うことにしました。やっぱり旅先ルータ、ミニPCの方がいいかも?

次回のネット接続構成

旅先で、次のネット接続の構成をどうしようかずっと考えていました。

IMG20250219193608

スマホのイーサネットテザリングとミニPCを組み合わせたこの構成は毎回めんどくさすぎます。

もし人から中国旅行での金盾対策を相談されたら、NomadのeSIMだけで回避することをおすすめすると思います。あまり複雑なことを考えなくてよくて楽なので。

でもやっぱりランニングコストをかけずにテクニックでなんとかしたい。

ある意味それが自分にとっての旅行の真髄でもあるから。そしてその「なんとかした実績」が次の何かにつながるかもしれないし。

次の構成のプロトタイプ

中古のWindowsタブレットにLinuxを入れて・・・みたいな案も考えたんですが、帰国後にあれこれ試行錯誤して

Chromebook+Slate Plusの構成でいくことにしました。Slate Plus上ではZeroTierに加えてSoftEther Bridgeを稼働させます。

ZeroTierがだめでもSoftEtherでなんとかするというバックアップ構成です。

OpenWrt版のSoftEtherは、OSを再起動すると設定が消えてしまう問題があってこまっていたんですが、設定後に手動でサービス停止(LuCI > System > Startup > softethervpnserversoftethervpnbridge > Stop)させて初めて設定がファイルに書き込まれるということを知って前に進めました。

現時点での課題

中国から中国のサイト(高德地图とか)にアクセスするときは、VPNで日本経由のアクセスにするとあからさまに応答が遅くなるので、接続先サイトのドメインによってVPNを通すか通さないかを変えたいです。

家のルータの(フル機能の?)OpenWrtだとPBRを入れれば簡単に実現できるんですが、Slate PlusのOpenWrtにはPBRが入れられません。

このあたりなんとかできるかな?

この前の旅行では、Chromebookの線の抜き差しとかでやりくりしたりしてたけれど。
(ミニPCにつながるLANケーブルを通すと日本経由のアクセスになって、宿のWi-Fi直接だと中国からのアクセスになるので。)

充電式のコイン電池を導入する

コイン電池って旅先でなかなか手に入らないので、切れたときにこまります。

でも最近ひょんなことで、充電式のコイン電池が存在するということを知りました。充電できないふつうのタイプは型番がCRで始まってたりするけれど、充電式のはそれがLIRとかMLになっているようです。

ということで、これを買ってみました。

長い間使用していない間、電池は40%〜60%の充電状態を維持する。電圧を維持するために、受け取ってから3ヶ月ごとにバッテリを充電することをお勧めします。

とあるので、切れてなくても計画的にローテーションをしておいた方がよさげ。

コイン電池って、ほとんど交換せずに運用できるところで使われることが多いので、切れるたびに買ったほうが楽というケースもけっこうありそうな気はします。

追記 2025-04-23

この電池の向かない用途があるかもしれません。