この記事は最終更新日から1年以上が経過しています。
テザリング非対応スマホでroot化せずにUSBテザリング
非rootなスマホをUSBモデム化し、UbuntuからUSBテザリングを行う方法のメモです。 今回ご紹介する方法では、テザリング非対応な古いスマホやroot化が困難なモデルのスマホを再利用することができます。
前提
以下を利用します:
- OS: Ubuntu 16.04LTS
- AziLink
- adb
- openvpn
インストール
利用ツール群をインストールします。 まだインストールしていない場合は、以下の手順でインストールしておきましょう。※これは初回のみ必要な作業です。
adbをインストール
Ubuntu PC側にadb
をインストールします:
$ sudo apt-get install android-tools-adb
Azilinkをインストール
スマホ側へAzilinkをインストールします: (参考:azilink/HOWTO)
- スマホ側の設定でUSBデバッギングを有効化
- Ubuntu PC側へスマホをUSB接続
- Ubuntu PC側でAziLink.apkをダウンロード
- Ubuntu PC側で
adb
コマンドを使って AziLink をスマホへインストール:
$ adb install ./azilink.apk
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接続されている前提で、
- スマホ側で AziLink アプリを起動し、
Service active
というチェックボックスにチェックを入れる
- スマホ側で AziLink アプリを起動し、
- Ubuntu PC側で/etc/resolv.confをバックアップ&書き換え:
$ sudo cp /etc/resolv.conf /etc/resolv.conf.bk $ sudo nano /etc/resolv.conf # resolv.conf の中身: domain lan search lan nameserver 192.168.56.1
- Ubuntu PC側で以下のコマンドを実行し、USBテザリングを開始:
$ adb forward tcp:41927 tcp:41927
$ sudo openvpn /path/to/azilink.ovpn
openvpn
が起動しUSBテザリングできるようになります。 Ubuntu PC側からスマホ経由でインターネットに接続できることを確認しましょう。
USBテザリングの終了
- Ubuntu PC側で先ほどの
openvpn
のプロセスを終了させる (Ctrl+CでOK)
- Ubuntu PC側で先ほどの
- Ubuntu PC側で/etc/resolv.confを元に戻す
$ sudo cp /etc/resolv.conf.bk /etc/resolv.conf
- スマホ側で AziLink アプリのService activeのチェックを外す
おまけ: 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です。こんなスマホでも少しは役に立ちそうです(笑)