コンテンツにスキップ

「Android テザリング」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
編集の要約なし
英語版と同期
(2人の利用者による、間の6版が非表示)
1行目: 1行目:
[[Category:ネットワーク]]
[[Category:Android]]
[[Category:携帯端末]]
[[Category:ネットワーク共有]]
[[en:Android tethering]]
[[en:Android tethering]]
[[fr:Modem attache Android]]
[[fr:Modem attache Android]]
[[ru:Android tethering]]
[[ru:Android tethering]]
テザリングとはスマートフォンのネットワーク接続を使って PC からインターネットにアクセスする手法です。Android Froyo (2.2) から USB テザリングと Wi-Fi アクセスポイントテザリングがネイティブでサポートされています。古いバージョンの Android OS でも、非公式の ROM にはこのオプションが有効になっているものが多く存在します。
[[Wikipedia:ja:テザリング|テザリング]]とはスマートフォンのネットワーク接続を使って PC からインターネットにアクセスする手法です。Android 2.2 (Froyo) から USB テザリングと Wi-Fi アクセスポイントテザリングがネイティブでサポートされています。


== Wi-Fi アクセスポイント ==
== Wi-Fi アクセスポイント ==
Android スマートフォンを Wi-Fi アクセスポイントとして使う (3G を使用) ことは Froyo (Android 2.2) からデフォルト root 化する必要なく出来るようになっています。加えて、この方法は USB による方法と違って、バッテリーを急速に消費し、著しい発熱をすることがあります。
Android 2.2 "Froyo" から (3G/4G モバイルネットワークに接続して) Android スマートフォンを Wi-Fi アクセスポイントとして使うことるようになっています。


以下の設定で有効にすることができます:
参照: '''menu/wireless & networks/Internet tethering/Wi-Fi access point'''

* ''Settings > Wireless & networks > Internet tethering > Wi-Fi access point''
* ''Settings > More... > Tethering & mobile hotspot > Mobile Wi-Fi hotspot''

{{Note|一部のスマートフォンでは、Wi-Fi アクセスポイントを有効にするとバッテリーを急速に消費し、著しい発熱をすることがあるので注意してください。}}


== USB テザリング ==
== USB テザリング ==


Froyo (Android 2.2) 以降ではネイティブで USB テザリングが可能です。
===必要なツール===
* スマートフォンの root 権限 (Android のバージョンが古い場合。Froyo (Android 2.2) 以降ではネイティブで可能です)
* スマートフォンから PC に接続するための USB 接続ケーブル


=== 手順 ===
* コンピュータをあらゆる無線・有線ネットワークから切断します
* USB ケーブルを使ってスマートフォンをコンピュータに接続します (USB 接続モード -- Phone Portal, メモリカードまたは充電のみ -- は重要ではありませんが、テザリング中に USB モードを変更することはできないので注意してください)
* USB ケーブルを使ってスマートフォンをコンピュータに接続します (USB 接続モード -- Phone Portal, メモリカードまたは充電のみ -- は重要ではありませんが、テザリング中に USB モードを変更することはできないので注意してください)
* スマートフォンからテザリングオプションを有効にします。通常は {{ic|Settings --> Wireless & Networks --> Internet tethering}} (最近バージョンは {{ic|Tethering & portable hotspot}}) から有効にます
* スマートフォンからテザリングオプションを有効にします。以下設定で有効にできます:
** ''Settings --> Wireless & Networks --> Internet tethering'' (最近のバージョンでは {{ic|Tethering & portable hotspot}})
* 次のコマンドを使って USB インターフェースがシステムによって認識されているか確認します:
** ''Settings -> More... -> Tethering & mobile hotspot -> USB tethering''
: {{bc|$ ip link}}
* [[ネットワーク設定]] に従って設定します。
: 以下のように {{ic|usb0}} または {{ic|enp?s??u?}} デバイスが表示されるはずです (ここでは enp0s20u3 デバイス):
{{hc|# ip link|
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether ##:##:##:##:##:## brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
link/ether ##:##:##:##:##:## brd ff:ff:ff:ff:ff:ff
5: enp0s20u3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether ##:##:##:##:##:## brd ff:ff:ff:ff:ff:ff
}}


{{Warning|使用する USB ポートによってネットワークインタフェース名は変わることがあります。[[ネットワーク設定#デバイス名の変更|インターフェース名を変更]]して USB ポートと無関係な固有の名前をデバイスに付けると良いでしょう。}}
<!--{{Note|Take care to use the device name from your own system in the following commands.}}-->
{{Note|以下のコマンドでは、お持ちのシステムの環境に合わせてデバイスの名前を使用してください。}}


* モバイルデータ通信を使用して、かつ次の課金期間に入ったばかりの場合は、課金後にスマートフォンの再起動が必要になることがあります。
{{Warning|使用する usb ポートによって名は変わることがあります。[[ネットワーク設定#デバイス名の変更|デバイス名を変更]]して usb ポートと無関係な固有の名前をデバイスに付けると良いでしょう。}}


==== systemd-networkd と udev を使う ====
* 最後に、このインターフェースを使って[[ネットワーク設定#IP アドレスの設定|ネットワーク接続を設定]]します。例:
: {{bc|# dhcpcd enp0s20u3}}


[[systemd-networkd]] を使うことで接続した携帯をゲートウェイとして自動的に使うようにネットワークを設定できます。
==OpenVPN を使って USB テザリング==
この方法はどんな古いバージョンの Android でも使うことができ、スマートフォンの root 化や改造を必要としません (Android 2.2 以降でも使えますが、あまり意味はありません)。


{{hc|/etc/udev/rules.d/90-android-tethering.rules|<nowiki>
ブラウザに変更をすることはありません。それどころか、全てのネットワークトラフィックはあらゆる PC アプリケーションにおいて透過的に処理されます (ICMP の ping は除く)。多少、スマートフォンの CPU を酷使することになります (パワフルな Acer Liquid でも 500 kBytes/sec のデータ通信をするには CPU を 50% 以上使うことになります)。
# 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"
</nowiki>}}

{{ic|idVendor}} の値はあなたの使用している携帯に合わせて変更してください。''udevadm'' を使うことで確認できます:

$ udevadm info /sys/class/net/enp0s26u1u2

そして適当な systemd-networkd ファイルを作成:

{{hc|/etc/systemd/network/50-enp0s26u1u2.network|<nowiki>
[Match]
Name=enp0s26u1u2

[Network]
DHCP=ipv4
</nowiki>}}

==AziLink を使って USB テザリング==
この方法はどんな古いバージョンの Android でも使うことができ、スマートフォンの root 化や改造を必要としません (Android 2.2 以降でも使えますが、あまり意味はありません)。ブラウザに変更をすることはありません。それどころか、全てのネットワークトラフィックはあらゆる PC アプリケーションにおいて透過的に処理されます (ICMP の ping は除く)。多少、スマートフォンの CPU を酷使することになります (パワフルな Acer Liquid でも 500 kBytes/sec のデータ通信をするには CPU を 50% 以上使うことになります)。


===必要なツール===
===必要なツール===
Arch では、{{pkg|openvpn}} パッケージを[[インストール]]する必要があります。また、Android SDK トールも須です (AUR や [http://developer.android.com/sdk/index.html ここ] から取得できす)。スマートフォン側では、[http://code.google.com/p/azilink/ azilink] アプリケーションが必要になります。コンピュータの OpenVPN と通信するための Java ベースの NAT です。
Arch では、{{pkg|openvpn}} パッケージを[[インストール]]する必要があります。''adb'' ツールが含れている {{pkg|android-tools}} パッケージとデバイスを認識させるのに要な設定を行う {{ic|/usr/lib/udev/rules.d/51-android.rules}} ファイルが含れている {{pkg|android-udev}} パッケージもインストールしてください。スマートフォン側では、[http://lfx.org/azilink/azilink.apk azilink.apk] アプリケーションが必要になります ([https://github.com/aziwoqpd/azilink azilink のホームページ])。コンピュータの OpenVPN と通信するための Java ベースの NAT です。


====Arch Linux で携帯電話の接続を設定====
====Arch Linux で携帯電話の接続を設定====


Android SDKインストールたら、SDK に入っているツールを使ためにスマートフォン [[udev]] で適切に設定してあなたの使用している Linux ユーザーに権限をえる必要があります。この設定を行わない場合、Android SDK を使用するのに root 権限が必要になりますが、root を使うのは推奨されていません。設定を行うために、スマートフォンから USB デバッグを有効にして (Settings -> Applications -> Development -> USB debugging)、USB ケーブルでスマートフォンと PC を接続し、{{ic|lsusb}} コマンドを実行してください。デバイスが記載されているはずです。Acer Liquid の場合の出力例:
root で adb実行なくもように、USB デバイスを扱う権限をユーザーにます。設定を行うために、スマートフォンから USB デバッグを有効にして (Settings -> Applications -> Development -> USB debugging)、USB ケーブルでスマートフォンと PC を接続し、{{ic|lsusb}} コマンドを実行してください。デバイスが記載されているはずです。Acer Liquid の場合の出力例:


Bus 001 Device 006: ID '''0502''':3202 Acer, Inc.
Bus 001 Device 006: ID '''0502''':3202 Acer, Inc.
63行目: 71行目:
</nowiki>}}
</nowiki>}}


変更を適用するために root で {{ic|udevadm control restart}} コマンドを実行します (もしくはコンピュータを再起動してください)。
変更を適用するために root で {{ic|udevadm control --reload}} コマンドを実行します (もしくはコンピュータを再起動してください)。変更が適用されたことを確認するために、{{ic|adb devices}} を実行して 'unauthorized' ではなく 'device' と表示されることを確認してください。また、Linux PC から Android SDK の {{ic|adb shell}} コマンドを実行すると、携帯電話の方に unix プロンプトが表示されるはずです

Now run in your linux PC the {{ic|adb shell}} command from the Android SDK as plain (non root) user: you should get a unix prompt ''in your phone''.


===手順===
===手順===
携帯電話で AziLink アプリケーションを実行して下部の "About" を選択すると手順が表示されます。大筋は以下の通りです:
Run the AziLink application in the phone and select "About" at the bottom to receive instructions, which basically are:


# You will have to enable USB debugging on the phone if it was not already enabled (usually in Settings -> Applications -> Development -> USB debugging).
# 携帯電話の USB デバッグを有効にしてください (Settings -> Applications -> Development -> USB debugging)
# 携帯電話を USB ケーブルで PC に接続してください。
# Connect the phone with the USB cable to the PC.
# Run AziLink and make sure that the '''Service active''' option at the top is checked.
# AziLink を実行して上部の '''Service active''' オプションにチェックを入れてください。
# Linux PC で以下のコマンドを実行:
# Run the following commands in your Linux PC:
: {{bc|$ adb forward tcp:41927 tcp:41927}}
: {{bc|$ adb forward tcp:41927 tcp:41927}}
: {{bc|# openvpn AziLink.ovpn}}
: {{bc|# openvpn azilink.ovpn}}


設定ファイルの例 [https://raw.githubusercontent.com/aziwoqpd/azilink/master/azilink.ovpn]:
{{hc|AziLink.ovpn|<nowiki>

{{hc|azilink.ovpn|<nowiki>
dev tun
dev tun
remote 127.0.0.1 41927 tcp-client
remote 127.0.0.1 41927 tcp-client
88行目: 96行目:
</nowiki>}}
</nowiki>}}


===トラブルシューティング===

====DNS====
[[resolv.conf]] の中身を以下のように手動で更新する必要があります:
[[resolv.conf]] の中身を以下のように手動で更新する必要があります:


97行目: 102行目:
}}
}}


====NetworkManager====
NetworkManager を使っている場合、OpenVPN を実行する前に停止させる必要があります。
NetworkManager を使っている場合、OpenVPN を実行する前に停止させる必要があります。

==EasyTether を使って USB テザリング==

Linux の [http://www.mobile-stream.com/easytether/drivers.html easytether] クライアントソフトウェアを入手してください。以下のように設定・実行してください:

# pacman -U easytether-0.8.5-2-x86_64.pkg.tar.xz
# easytether-usb
# dhcpcd tap-easytether

接続するスマートフォンには Android アプリの EasyTether をインストールしてください。

{{Note|Lite アプリでは接続が使えないことがあり完全に機能させるには有料アプリが必要になります。そのため、AziLink を使うことを推奨します。}}


==Bluetooth でテザリング==
==Bluetooth でテザリング==
110行目: 126行目:
{{bc|<nowiki>$ 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'</nowiki>}}
{{bc|<nowiki>$ 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'</nowiki>}}


これでネットワークインターフェース {{ic|bnep0}} が作成されます。最後に、このインターフェースで[[Network Configuration#IP アドレスの設定|ネットワーク接続を設定]]してください。Android はデフォルトで DHCP を提供します。
これでネットワークインターフェース {{ic|bnep0}} が作成されます。最後に、このインターフェースで[[ネットワーク設定#IP アドレスの設定|ネットワーク接続を設定]]してください。Android はデフォルトで DHCP を提供します。


==SOCKS プロクシを使ってテザリング==
==SOCKS プロクシを使ってテザリング==
117行目: 133行目:


===必要なツール===
===必要なツール===
* [[AUR]] の {{AUR|android-sdk}} と {{AUR|android-sdk-platform-tools}}、[[公式リポジトリ]]の {{Pkg|android-udev}}
* {{Pkg|android-tools}} と {{Pkg|android-udev}} パッケージ
* スマートフォンから PC に接続するための USB 接続ケーブル
* スマートフォンから PC に接続するための USB 接続ケーブル
* [http://graha.ms/androidproxy/ Tetherbot] または [https://code.google.com/p/proxoid/ Proxoid] のどちらか
* [http://graha.ms/androidproxy/ Tetherbot] または [https://code.google.com/p/proxoid/ Proxoid] のどちらか
126行目: 142行目:


====Proxoid====
====Proxoid====
[http://androidcommunity.com/forums/f23/android-usb-tethering-for-linux-using-proxoid-24875/] で説明されている手順に従って下さい。
[http://www.linux-magazine.com/Online/Blogs/Productivity-Sauce/Tether-an-Android-Phone-Using-Proxoid] で説明されている手順に従って下さい。

2019年3月24日 (日) 17:20時点における版

テザリングとはスマートフォンのネットワーク接続を使って 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
ノート 一部のスマートフォンでは、Wi-Fi アクセスポイントを有効にするとバッテリーを急速に消費し、著しい発熱をすることがあるので注意してください。

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
  • ネットワーク設定 に従って設定します。
警告 使用する USB ポートによってネットワークインタフェース名は変わることがあります。インターフェース名を変更して USB ポートと無関係な固有の名前をデバイスに付けると良いでしょう。
  • モバイルデータ通信を使用して、かつ次の課金期間に入ったばかりの場合は、課金後にスマートフォンの再起動が必要になることがあります。

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

この方法はどんな古いバージョンの Android でも使うことができ、スマートフォンの root 化や改造を必要としません (Android 2.2 以降でも使えますが、あまり意味はありません)。ブラウザに変更をすることはありません。それどころか、全てのネットワークトラフィックはあらゆる PC アプリケーションにおいて透過的に処理されます (ICMP の ping は除く)。多少、スマートフォンの CPU を酷使することになります (パワフルな Acer Liquid でも 500 kBytes/sec のデータ通信をするには CPU を 50% 以上使うことになります)。

必要なツール

Arch では、openvpn パッケージをインストールする必要があります。adb ツールが含まれている android-tools パッケージとデバイスを認識させるのに必要な設定を行う /usr/lib/udev/rules.d/51-android.rules ファイルが含まれている android-udev パッケージもインストールしてください。スマートフォン側では、azilink.apk アプリケーションが必要になります (azilink のホームページ)。コンピュータの OpenVPN と通信するための Java ベースの NAT です。

Arch Linux で携帯電話の接続を設定

root で adb を実行しなくてもよいように、USB デバイスを扱う権限をユーザーに付与します。設定を行うために、スマートフォンから USB デバッグを有効にして (Settings -> Applications -> Development -> USB debugging)、USB ケーブルでスマートフォンと PC を接続し、lsusb コマンドを実行してください。デバイスが記載されているはずです。Acer Liquid の場合の出力例:

Bus 001 Device 006: ID 0502:3202 Acer, Inc. 

それから、以下のファイルを作成してください (ciri はあなたの Linux ユーザーの名前に、0502 はあなたのスマートフォンのベンダー ID に置き換えてください):

/etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR(idVendor)=="0502", MODE="0666" OWNER="ciri"

変更を適用するために root で udevadm control --reload コマンドを実行します (もしくはコンピュータを再起動してください)。変更が適用されたことを確認するために、adb devices を実行して 'unauthorized' ではなく 'device' と表示されることを確認してください。また、Linux PC から Android SDK の adb shell コマンドを実行すると、携帯電話の方に unix プロンプトが表示されるはずです。

手順

携帯電話で AziLink アプリケーションを実行して下部の "About" を選択すると手順が表示されます。大筋は以下の通りです:

  1. 携帯電話の USB デバッグを有効にしてください (Settings -> Applications -> Development -> USB debugging)。
  2. 携帯電話を USB ケーブルで PC に接続してください。
  3. AziLink を実行して上部の Service active オプションにチェックを入れてください。
  4. Linux PC で以下のコマンドを実行:
$ adb forward tcp:41927 tcp:41927
# openvpn azilink.ovpn

設定ファイルの例 [1]:

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

resolv.conf の中身を以下のように手動で更新する必要があります:

/etc/resolv.conf
nameserver 192.168.56.1

NetworkManager を使っている場合、OpenVPN を実行する前に停止させる必要があります。

EasyTether を使って USB テザリング

Linux の easytether クライアントソフトウェアを入手してください。以下のように設定・実行してください:

# pacman -U easytether-0.8.5-2-x86_64.pkg.tar.xz
# easytether-usb
# dhcpcd tap-easytether

接続するスマートフォンには Android アプリの EasyTether をインストールしてください。

ノート Lite アプリでは接続が使えないことがあり完全に機能させるには有料アプリが必要になります。そのため、AziLink を使うことを推奨します。

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:confignetwork.proxy.socks_remote_dnstrue に設定してください。

必要なツール

手順

Tetherbot

[2]Using the Socks Proxy の指示に従って下さい。

Proxoid

[3] で説明されている手順に従って下さい。