芽萌丸IOT研究会 @iot
@iot
2020/7/20 15:41 更新✏

テザリング非対応スマホでroot化せずにUSBテザリング

非rootなスマホをUSBモデム化し、UbuntuからUSBテザリングを行う方法のメモです。 今回ご紹介する方法では、テザリング非対応な古いスマホやroot化が困難なモデルのスマホを再利用することができます。

前提

以下を利用します:

インストール

利用ツール群をインストールします。 まだインストールしていない場合は、以下の手順でインストールしておきましょう。 ※これは初回のみ必要な作業です。

adbをインストール

Ubuntu PC側に adb をインストールします:

$ sudo apt-get install android-tools-adb

Azilinkをインストール

スマホ側へ Azilink をインストールします: (参考: azilink/HOWTO)

openvpnをインストール

Ubuntu PC側に openvpn をインストールします:

$ sudo apt install openvpn
## ネットワークマネージャーを再起動:
$ sudo /etc/init.d/network-manager restart

AziLink用のopenvpn設定ファイルを新規作成し、どこか適当な場所に保存しておきます:

$ nano /path/to/azilink.ovpn

# azilink.ovpnファイルの中身:
dev tun
remote 127.0.0.1 41927 tcp-client
ifconfig 192.168.56.2 192.168.56.1
route 0.0.0.0 128.0.0.0
route 128.0.0.0 128.0.0.0
socket-flags TCP_NODELAY
keepalive 10 30
dhcp-option DNS 192.168.56.1

USBテザリングを開始

USBテザリングを開始するためには以下の手順を行います。 Ubuntu PCとスマホがUSB接続されている前提で、

$ adb forward tcp:41927 tcp:41927
$ sudo openvpn /path/to/azilink.ovpn

openvpnが起動しUSBテザリングできるようになります。 Ubuntu PC側からスマホ経由でインターネットに接続できることを確認しましょう。

USBテザリングの終了

おまけ: USBテザリング開始処理をシェルスクリプト化

USBテザリング開始処理をコマンド一発で行えるようにシェルスクリプト化してみます。

resolv.confの雛形を作成:

$ nano azilink-resolv.conf

## azilink.resolv.confの中身:
domain lan
search lan
nameserver 192.168.56.1

USBテザリング開始処理シェルスクリプトを作成:

$ nano start-azilink.sh

## start-azilink.shの中身:
#!/bin/bash

adb forward tcp:41927 tcp:41927
sudo cp /etc/resolv.conf /etc/resolv.conf.bk
sudo cp azilink-resolv.conf /etc/resolv.conf
sudo openvpn azilink.ovpn

USBテザリングの終了させ方は前述の [USBテザリングの終了] と同じです。

ひとこと

今回実験に使ったスマホ機種は、テザリングがデフォルトで無効化されていて既にOSアップデートも止まってしまっている不人気モデル SoftBank AQUOS CRYSTAL 2 403SHです。こんなスマホでも少しは役に立ちそうです(笑)

テザリング

芽萌丸IOT研究会 @iot
芽萌丸IOT研究会@iot
芽萌丸のIOT関連アカウント。ラズパイとか色々。記事は主に @TanakaSoftwareLab が担当。
オススメ:Zattoyomiで時事ネタチェックの時間節約!