えいあーるれいの技術日記

ROS2やM5 Stack、Ubuntuについて書いています

激安ゲーミングルータ&テザリングで通信費大幅削減!?

上京後の出費はとにかくやばいです。

入居時契約費用・2ヶ月分の家賃・家電・食費・携帯代・秋葉でのお買い物…

何も持っていなかったので引越し費用はほとんどかかりませんでしたが、何も持っていないがゆえに色々なものを買う必要があり、初月だけで費用が大変なことなことになります。

今月はなんとか乗り切れましたが、来月までは生活を切り詰めないといけないですね()


通信かかるよなー

先週紹介した机記事では、机を自作することでコストカットを図り失敗しましたが、他の部分でもなんとかコストカットできないかを色々と考えていたりします。

意外と重要な出費といえば、通信費ですね。

一人暮らしの場合、通信費は月¥7500くらいかかるそうです。

格安の携帯プラン&光回線or使い放題の携帯プランのみのような構成の人が多いのでしょう。


情報化社会となった現代において通信は切り離せないライフラインとなっています。

もし通信制限なんかになってしまったら、今話題のChatGPTやBingAIなんて使い物になりませんからね…


しかしながら、プランによっては結構な幅がある固定費なのでプランを考えるのは結構大変です。

家電量販店だと家電と抱き合わせで購入するとかなり大胆に値引きするキャンペーンもあります(数ヶ月前だと家電セットから4万値引きとかありましたね)ので結構安く済む場合もありそうですね。


ただ、今のところIT製品ないので家を空けている時間は光回線いらないし、使う時間も6時間未満・しかも家事で削れていくので本当に¥5000くらい携帯代と別に追加で払う必要があるのかと考えていました。(単純に契約が面倒という背景もありましたが

でも、ESP32やラズパイなどが動くLAN環境も欲しい…


そこで、帰宅した時だけWi-Fi環境になるようなシステムを構築することにしました。

具体的な構成図を以下に示します。

  1. 持っているiPhoneWi-Fiテザリングを使ってラズパイに対してインターネット共有を行い、
  2. ラズパイ内のUbuntu22がWi-FiEthernetのインターネット共有を行う。
  3. ラズパイに接続されたLANルータがIoTデバイスなどと接続してインターネット環境を提供する。(オフライン時に参照するNTPサーバなどあればなお良い)


使わない時はインターネット共有をオフにしたりスマホを持ち出すだけでインターネット接続を切ることができます。

ラズパイをネットワーク接続用機器にする記事は結構ありますが、テザリングを他のルータに流す記事はなかったのでいろいろ調べて先ほどの図のようになりました。

Ubuntu22については、ネットワークマネージャの機能を使っているので、その機能がビルド・あるいはインストールできればどのOSでもいいかもしれません。

以下の記事ではiPhoneテザリングをUSB経由で共有できるので、便利ですが、接続した瞬間に充電が始まって電源が不安定になる&認証が自動で始まらないみたいな感じになってあまりうまくいかなかったので、Wi-Fi共有にしました。→ iPhone テザリング - ArchWiki


物品調達

ラズパイ

Pi4が1台あったのでそれを使いました。Pi4高騰しているので贅沢仕様ですね😎

Wi-Fiルータ

どうせなら強いの欲しいなーと思いつつできる限り安いのがいいなーと思って秋葉で探していたところ、とんでもないものを発見しました。

Twitterフォローで¥3000で買えるそうなので即購入しました。ちょっと古い世代みたいです。

でもAC3000トライバンド・USB3.0のストレージ対応・20台以上のWi-Fi接続と結構欲張りな性能。

障害物がなければ100mくらい飛ぶらしい。やばすぎ

ポートは普通のルーターと同じ。

Linksysアプリを使ってインターネット接続できないとそもそも初期設定できないのは罠でした。Ubuntuの初期の方を先にした方が早いかもしれません。


Ubuntu22の設定(GUI

GUIであれば非常に簡単です。

次のようにぽちぽちとするだけで完結します。(既にWi-Fi経由でインターネットに接続できる状態を前提とします)

  1. Wired(共有先)の設定マークを押す
  2. ネットワーク設定のウィンドウで Shared to other computers に設定する
  3. Applyを押す
  4. ネットワークを再起動する


Ubuntu22の設定(CUI

今回はCUI設定でネットワーク共有しました。

イメージ名はubuntu-22.04.2-preinstalled-server-arm64+raspiを使用しました。

1.必要なパッケージをインストールする

sudo apt update
sudo apt install -y network-manager nmcli

2.接続先のWi-Fiの設定を行う。/etc/netplan/00-default-config.yaml を編集しました

network:
  version: 2
  renderer: NetworkManager
  wifis:
    wlan0:
      dhcp4: true
      optional: true
      access-points:
        "SSID-name":
          password: "password"
  ethernets:
    eth0:
      dhcp4: true
      optional: true

3.ネットワークマネージャーにeth0をセットした(本当に必要だったかは不明)

nmcli connection up eth0
sudo nmcli dev set eth0 managed yes

4./home/ubuntu/start_nmcli.bash を作成する

sudo nmcli connection modify netplan-eth0 connection.autoconnect yes ipv4.method shared

5./etc/systemd/system/start_nmcli.service を作成する

[Unit]
Description="start-network-sharing"
[Install]
WantedBy=default.target

[Service]
ExecStart=/bin/bash /home/ubuntu/start_nmcli.bash
Type=simple
Restart=no

User=ubuntu

6.sudo netplan apply でネットワーク設定を適用する

7.sudo systemctl enable start_nmcli.service でサービス自動起動にする

8.再起動する(うまくいくまで何度も構成します)


実装

最初はデスクトップPCをネットワーク共有にしていましたが、結局ラズパイに移植しました。

Wi-Fiだと1〜5分くらい接続にかかりますが、iPhoneが拘束されないのは楽でいいですね。


1ヶ月使用して

実装してから大体3週間経ちますが、そこそこ使えます。

ファンをつけていなかったのか、熱で落ちたことが何度かありましたが、十分に速かったです。

とりあえず、格安(?)でIoTご家庭スマートハウスの環境が整って満足です。


現在、ahamoの100GBプラン(20GB + 80GB)で¥5000なのでスマホのバッテリーを犠牲にお得に運用できそうな気がします。

Rakuten回線は(制約が複雑そうですが)もっと安いみたいなので、気になりますね。