昨日書いたLinuxでのUSB Tetheringの件、解決しました。やり方をつらつらっと書きます。
以下が、やりたいこと。
- Linuxをネットワーク(インターネット)に繋げたい。
- 使用できるネットワークはUSB Thering経由のみ。
- USB TetheringはAndroidデバイス(携帯電話等)で行う。
- 内部ネットワークにつなげるeth0はあるが、eth0は使用しない。
- Linuxは最小構成でInstallした環境。
今回はNexus7をUSB TehteringのホストにしてCentOS6.5からインターネットに繋げます。ちなみに実際に外とつながるのはWiFi Tetheringしている携帯電話。
CentOS→Nexus7(USB Tethering)→携帯電話(WiFi Tethering)となっています。
まずは現状確認。(eth0は省いています。)
ifconfig -a lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:288 (288.0 b) TX bytes:288 (288.0 b)
AndroidデバイスをLinuxマシンにUSBで接続→AndroidデバイスのUSB TetheringをONにするとこうなります。
ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:288 (288.0 b) TX bytes:288 (288.0 b) usb0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
まだIPアドレス等々設定ができていません。前回はここでDHCPのやり方がわからず詰まっていたのですが、調べてみたらdhclientコマンドでIPアドレスの取得ができることがわかりました。ちなみにRHELやCentOSはdhclient、Vine Linuxではdhcpcdというdaemonで動かすそうです。
# まずはusb0をアクティブにする。 ifconfig usb0 on # dhclientを実行 dhclient -v usb0 Internet Systems Consortium DHCP Client 4.1.1-P1 Copyright 2004-2010 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/usb0/xx:xx:xx:xx:xx:xx Sending on LPF/usb0/xx:xx:xx:xx:xx:xx Sending on Socket/fallback DHCPRELEASE on usb0 to 192.168.42.129 port 67 (xid=0x????????) send_packet: Network is unreachable send_packet: please consult README file regarding broadcast address. [root@dev4356v231c work]# dhclient -v usb0 Internet Systems Consortium DHCP Client 4.1.1-P1 Copyright 2004-2010 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/usb0/xx:xx:xx:xx:xx:xx Sending on LPF/usb0/xx:xx:xx:xx:xx:xx Sending on Socket/fallback DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 7 (xid=0x????????) DHCPOFFER from 192.168.42.129 DHCPREQUEST on usb0 to 255.255.255.255 port 67 (xid=0x????????) DHCPACK from 192.168.42.129 (xid=0x????????) bound to 192.168.42.107 -- renewal in 1422 seconds.
これで192.168.42.107が割り当てられました。
ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:288 (288.0 b) TX bytes:288 (288.0 b) usb0 Link encap:Ethernet HWaddr E2:94:B7:09:E7:09 inet addr:192.168.42.107 Bcast:192.168.42.255 Mask:255.255.255.0 inet6 addr: fe80::e094:b7ff:fe09:e709/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:31 errors:0 dropped:0 overruns:0 frame:0 TX packets:11 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1534 (1.4 KiB) TX bytes:1762 (1.7 KiB)
ping等を実行すれば外につながっているのが確認できるかと思います。
dhclientを実行すると以下のエラーが返ってくる場合があります。
dhclient -v usb0 dhclient(31399) is already running - exiting. This version of ISC DHCP is based on the release available on ftp.isc.org. Features have been added and other changes have been made to the base software release in order to make it work better with this distribution. Please report for this software via the CentOS Bugs Database: http://bugs.centos.org/ exiting.
この場合はdhclient -rを実行してください。リースしているリソースを解放し、dhclientを終了します。
dhclient -r -v usb0 Internet Systems Consortium DHCP Client 4.1.1-P1 Copyright 2004-2010 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/usb0/xx:xx:xx:xx:xx:xx Sending on LPF/usb0/xx:xx:xx:xx:xx:xx Sending on Socket/fallback DHCPRELEASE on usb0 to 192.168.42.129 port 67 (xid=0x????????)
WiFiで接続することがほとんどで USB Tetheringする機会はなかなかないかと思いますが、最近はまったまとめということで。
では。