Android テザリング
テザリングとはスマートフォンのネットワーク接続を使って PC からインターネットにアクセスする手法です。Android 2.2 (Froyo) から USB テザリングと Wi-Fi アクセスポイントテザリングがネイティブでサポートされています。
目次
Wi-Fi アクセスポイント
Android 2.2 "Froyo" から (3G/4G モバイルネットワークに接続して) Android スマートフォンを Wi-Fi アクセスポイントとして使うことができるようになっています。
以下の設定で有効にすることができます:
- Settings > Wireless & networks > Internet tethering > Wi-Fi access point
- Settings > More... > Tethering & mobile hotspot > Mobile Wi-Fi hotspot
USB テザリング
Froyo (Android 2.2) 以降ではネイティブで USB テザリングが可能です。
- USB ケーブルを使ってスマートフォンをコンピュータに接続します (USB 接続モード -- Phone Portal, メモリカードまたは充電のみ -- は重要ではありませんが、テザリング中に USB モードを変更することはできないので注意してください)
- スマートフォンからテザリングオプションを有効にします。以下の設定で有効にできます:
- Settings --> Wireless & Networks --> Internet tethering (最近のバージョンでは
Tethering & portable hotspot
) - Settings -> More... -> Tethering & mobile hotspot -> USB tethering
- Settings --> Wireless & Networks --> Internet tethering (最近のバージョンでは
- ネットワーク設定 に従って設定します。
- モバイルデータ通信を使用して、かつ次の課金期間に入ったばかりの場合は、課金後にスマートフォンの再起動が必要になることがあります。
systemd-networkd と udev を使う
systemd-networkd を使うことで接続した携帯をゲートウェイとして自動的に使うようにネットワークを設定できます。
/etc/udev/rules.d/90-android-tethering.rules
# Execute pairing program when appropriate ACTION=="add|remove", SUBSYSTEM=="net", ATTR{idVendor}=="18d1" ENV{ID_USB_DRIVER}=="rndis_host", SYMLINK+="android", RUN+="/usr/bin/systemctl restart systemd-networkd.service"
idVendor
の値はあなたの使用している携帯に合わせて変更してください。udevadm を使うことで確認できます:
$ udevadm info /sys/class/net/enp0s26u1u2
そして適当な systemd-networkd ファイルを作成:
/etc/systemd/network/50-enp0s26u1u2.network
[Match] Name=enp0s26u1u2 [Network] DHCP=ipv4
EasyTether を使って USB テザリング
Linux の easytether クライアントソフトウェアを入手してください。以下のように設定・実行してください:
# pacman -U easytether-0.8.5-2-x86_64.pkg.tar.xz # easytether-usb # dhcpcd tap-easytether
接続するスマートフォンには Android アプリの EasyTether をインストールしてください。
Bluetooth でテザリング
Android (4.0 以降。前のバージョンでも出来ることあり) はアクセスポイントモードの Bluetooth パーソナルエリアネットワーク (PAN) に対応しています。
NetworkManager がこのアクションを実行できネットワークの初期化を処理します。詳しくはドキュメントを見て下さい。
もしくは: Bluetooth の記事の記述に従って、ペアリングをしてコンピュータと Android デバイスを接続できるようにしてから、次を実行 (デバイスのアドレス (AA_BB_CC_DD_EE_FF
) は置き換えて下さい):
$ dbus-send --system --type=method_call --dest=org.bluez /org/bluez/hci0/dev_AA_BB_CC_DD_EE_FF org.bluez.Network1.Connect string:'nap'
これでネットワークインターフェース bnep0
が作成されます。最後に、このインターフェースでネットワーク接続を設定してください。Android はデフォルトで DHCP を提供します。
SOCKS プロクシを使ってテザリング
このテザリング方法はスマートフォンから PC へのポートフォワーディングによって行います。ブラウジングだけに使うことができます。Firefox の場合、about:config
で network.proxy.socks_remote_dns
を true
に設定してください。
必要なツール
- android-tools と android-udev パッケージ
- スマートフォンから PC に接続するための USB 接続ケーブル
- Tetherbot または Proxoid のどちらか
手順
Tetherbot
[1] の Using the Socks Proxy の指示に従って下さい。
Proxoid
[2] で説明されている手順に従って下さい。