「Android テザリング」の版間の差分
Kusakata.bot (トーク | 投稿記録) (Pkg/AUR テンプレートの更新) |
(同期) |
||
1行目: | 1行目: | ||
− | [[Category:ネットワーク]] |
+ | [[Category:ネットワーク共有]] |
[[Category:携帯端末]] |
[[Category:携帯端末]] |
||
[[en:Android tethering]] |
[[en:Android tethering]] |
||
[[fr:Modem attache Android]] |
[[fr:Modem attache Android]] |
||
[[ru:Android tethering]] |
[[ru:Android tethering]] |
||
− | テザリングとはスマートフォンのネットワーク接続を使って PC からインターネットにアクセスする手法です。Android |
+ | テザリングとはスマートフォンのネットワーク接続を使って PC からインターネットにアクセスする手法です。Android 2.2 (Froyo) から USB テザリングと Wi-Fi アクセスポイントテザリングがネイティブでサポートされています。 |
== Wi-Fi アクセスポイント == |
== Wi-Fi アクセスポイント == |
||
− | Android スマートフォンを Wi-Fi アクセスポイントとして使う |
+ | 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 モードを変更することはできないので注意してください) |
||
− | * スマートフォンからテザリングオプションを有効にします。 |
+ | * スマートフォンからテザリングオプションを有効にします。以下の設定で有効にできます: |
+ | ** ''Settings --> Wireless & Networks --> Internet tethering'' (最近のバージョンでは {{ic|Tethering & portable hotspot}}) |
||
+ | ** ''Settings -> More... -> Tethering & mobile hotspot -> USB tethering'' |
||
* 次のコマンドを使って USB インターフェースがシステムによって認識されているか確認します: |
* 次のコマンドを使って USB インターフェースがシステムによって認識されているか確認します: |
||
: {{bc|$ ip link}} |
: {{bc|$ ip link}} |
||
42行目: | 46行目: | ||
* 最後に、このインターフェースを使って[[ネットワーク設定#IP アドレスの設定|ネットワーク接続を設定]]します。例: |
* 最後に、このインターフェースを使って[[ネットワーク設定#IP アドレスの設定|ネットワーク接続を設定]]します。例: |
||
: {{bc|# dhcpcd enp0s20u3}} |
: {{bc|# dhcpcd enp0s20u3}} |
||
+ | |||
+ | * Wi-Fi ではなくモバイルデータ通信を使用する場合、課金後にスマートフォンの再起動が必要になることがあります。 |
||
==== systemd-networkd と udev を使う ==== |
==== systemd-networkd と udev を使う ==== |
||
66行目: | 72行目: | ||
</nowiki>}} |
</nowiki>}} |
||
− | == |
+ | ==AziLink を使って USB テザリング== |
− | この方法はどんな古いバージョンの Android でも使うことができ、スマートフォンの root 化や改造を必要としません (Android 2.2 以降でも使えますが、あまり意味はありません)。 |
+ | この方法はどんな古いバージョンの Android でも使うことができ、スマートフォンの root 化や改造を必要としません (Android 2.2 以降でも使えますが、あまり意味はありません)。ブラウザに変更をすることはありません。それどころか、全てのネットワークトラフィックはあらゆる PC アプリケーションにおいて透過的に処理されます (ICMP の ping は除く)。多少、スマートフォンの CPU を酷使することになります (パワフルな Acer Liquid でも 500 kBytes/sec のデータ通信をするには CPU を 50% 以上使うことになります)。 |
− | |||
− | ブラウザに変更をすることはありません。それどころか、全てのネットワークトラフィックはあらゆる PC アプリケーションにおいて透過的に処理されます (ICMP の ping は除く)。多少、スマートフォンの CPU を酷使することになります (パワフルな Acer Liquid でも 500 kBytes/sec のデータ通信をするには CPU を 50% 以上使うことになります)。 |
||
===必要なツール=== |
===必要なツール=== |
||
− | Arch では、{{pkg|openvpn}} パッケージを[[インストール]]する必要があります。ま |
+ | 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 で携帯電話の接続を設定==== |
||
− | + | sudo で 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. |
||
86行目: | 90行目: | ||
</nowiki>}} |
</nowiki>}} |
||
− | 変更を適用するために root で {{ic|udevadm control |
+ | 変更を適用するために root で {{ic|udevadm control --reload}} コマンドを実行します (もしくはコンピュータを再起動してください)。変更が適用されたことを確認するために、{{ic|adb devices}} を実行して 'unauthorized' ではなく 'device' と表示されることを確認してください。また、Linux PC から (root 以外の) 通常ユーザーで Android SDK の {{ic|adb shell}} コマンドを実行すると、携帯電話の方に unix プロンプトが表示されるはずです。 |
− | |||
− | Linux PC から (root 以外の) 通常ユーザーで Android SDK の {{ic|adb shell}} コマンドを実行すると、携帯電話の方に unix プロンプトが表示されるはずです。 |
||
===手順=== |
===手順=== |
||
98行目: | 100行目: | ||
# Linux PC で以下のコマンドを実行: |
# Linux PC で以下のコマンドを実行: |
||
: {{bc|$ adb forward tcp:41927 tcp:41927}} |
: {{bc|$ adb forward tcp:41927 tcp:41927}} |
||
− | : {{bc|# openvpn |
+ | : {{bc|# openvpn azilink.ovpn}} |
+ | |||
+ | 設定ファイルの例 [https://raw.githubusercontent.com/aziwoqpd/azilink/master/azilink.ovpn]: |
||
− | {{hc| |
+ | {{hc|azilink.ovpn|<nowiki> |
dev tun |
dev tun |
||
remote 127.0.0.1 41927 tcp-client |
remote 127.0.0.1 41927 tcp-client |
||
111行目: | 115行目: | ||
</nowiki>}} |
</nowiki>}} |
||
− | ===トラブルシューティング=== |
||
− | |||
− | ====DNS==== |
||
[[resolv.conf]] の中身を以下のように手動で更新する必要があります: |
[[resolv.conf]] の中身を以下のように手動で更新する必要があります: |
||
120行目: | 121行目: | ||
}} |
}} |
||
− | ====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 でテザリング== |
||
140行目: | 152行目: | ||
===必要なツール=== |
===必要なツール=== |
||
− | * |
+ | * {{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] のどちらか |
||
150行目: | 162行目: | ||
====Proxoid==== |
====Proxoid==== |
||
[http://androidcommunity.com/forums/f23/android-usb-tethering-for-linux-using-proxoid-24875/] で説明されている手順に従って下さい。 |
[http://androidcommunity.com/forums/f23/android-usb-tethering-for-linux-using-proxoid-24875/] で説明されている手順に従って下さい。 |
||
− | |||
− | == ClockworkMod Tether== |
||
− | |||
− | Clockworkmod Tether は Android のテザリングアプリです。デスクトップ PC にソフトウェアをインストールする必要があります。Linux アプリケーションは [http://download.clockworkmod.com/tether/tether-linux.tgz clockworkmod.com] からダウンロードできます。 |
||
− | |||
− | * {{ic|/usr/local/bin/python}} から {{ic|/usr/bin/python2}} に一時的にシンボリックリンクを作成して python2 が参照されるようにしてください。それから README ファイルの手順に従ってください。 |
||
− | |||
− | * 含まれている ''adb'' バイナリを使うには [[Multilib]] が必要です。また、{{Pkg|lib32-stdc++5}}{{Broken package link|パッケージが存在しません}} と {{AUR|lib32-ncurses5-compat-libs}} パッケージを[[インストール]]してください。他の欠けているライブラリは ''ldd'' を使って検索してください。 |
||
− | |||
− | ''adb'' を動作させると、コマンドラインは "Checking phone status..." という出力を繰り返します。そこで Android アプリも起動してください。 |
2017年11月6日 (月) 20:44時点における版
テザリングとはスマートフォンのネットワーク接続を使って 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 (最近のバージョンでは
- 次のコマンドを使って USB インターフェースがシステムによって認識されているか確認します:
$ ip link
- 以下のように
usb0
またはenp?s??u?
デバイスが表示されるはずです (ここでは enp0s20u3 デバイス):
# 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
- 最後に、このインターフェースを使ってネットワーク接続を設定します。例:
# dhcpcd enp0s20u3
- Wi-Fi ではなくモバイルデータ通信を使用する場合、課金後にスマートフォンの再起動が必要になることがあります。
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/enp0s26u1u2.network
[Match] Name=enp0s26u1u2 [Network] DHCP=ipv4
AziLink を使って USB テザリング
この方法はどんな古いバージョンの 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 で携帯電話の接続を設定
sudo で 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 から (root 以外の) 通常ユーザーで Android SDK の adb shell
コマンドを実行すると、携帯電話の方に unix プロンプトが表示されるはずです。
手順
携帯電話で AziLink アプリケーションを実行して下部の "About" を選択すると手順が表示されます。大筋は以下の通りです:
- 携帯電話の USB デバッグを有効にしてください (Settings -> Applications -> Development -> USB debugging)。
- 携帯電話を USB ケーブルで PC に接続してください。
- AziLink を実行して上部の Service active オプションにチェックを入れてください。
- 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 をインストールしてください。
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
[2] の Using the Socks Proxy の指示に従って下さい。
Proxoid
[3] で説明されている手順に従って下さい。