jessie向けの新ページを作成しました。こちらからどうぞ

ex1.RaspberryPiでAndroidスマホのUSBテザリングを利用する(+ルーター化) - RaspberryPiで各種サーバー作り! - ある阪大生の物置小屋

今回は、RaspberryPiでAndroidスマホのUSBテザリングを利用する、というちょっと変則的なことをやってみます。
ついでに、テザリングを利用して有線LANも含めた、家庭内ネットワーク全体でテザリングを利用できるように、
RaspberryPiをルーター化する方法も説明していきます。

ex1.1.RaspberryPiでAndroidスマホのUSBテザリングを利用する

実は、USBテザリングだけであれば案外簡単で、
RaspberryPiにAndroidスマホを接続したうえでUSBテザリングを有効にすればすんなり認識します。
後は、「/etc/network/interfaces」に以下のように追記すればOKです。

auto usb0
allow-hotplug usb0
iface usb0 inet dhcp

(「usb0」という名称は場合によって異なることがあるので、「ifconfig」コマンドを実行して確認しておくのがベター)

ex1.2.家庭内ネットワーク全体でテザリングを利用する

こっちの方はちょっと面倒です。

1.「ifmetric」をインストール

「ifmetric」はインターフェイスに優先順位をつけることができるようになるパッケージで、
これを利用して、外部への接続を家庭内ネットワークよりもテザリング側を優先させます。
「ifmetric」は以下のコマンドでインストールできます。

sudo apt-get install ifmetric

2.「/etc/network/interfaces」を編集

ifmetricによる優先順位をつけるために、
「/etc/network/interfaces」を以下のように編集します。

allow-hotplug eth0
iface eth0 inet static
 address  (RaspberryPiに割り当てるIPアドレス)
 netmask (ネットワークのネットマスク)
metric 1

auto usb0
allow-hotplug usb0
iface usb0 inet dhcp
metric 0

3.「/etc/sysctl.conf」を編集

デフォルトでは、IPフォワード機能は無効になっているので、
「/etc/sysctl.conf」を以下のように編集し、IPフォワード機能を有効にします。

#net.ipv4.ip_forward=1
↓
net.ipv4.ip_forward=1

4.iptablesの設定変更

filterテーブルのFORWARDチェーンに、ルールを追加し、
natテーブルのPOSTROUTINGチェーンに、出ていくパケットのソースIPを書き換えるルールを追加します。

sudo iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE
sudo iptables -A FORWARD -i usb0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o usb0 -j ACCEPT

2.5.の通り、iptablesの設定の変更後は以下のコマンドで設定を記録しておくこと。

sudo iptables-save | sudo tee /etc/iptables/rules.v4

5.接続チェック

RaspberryPiを再起動し、LAN側から接続しきちんと接続できるかチェックします。
デフォルトゲートウェイはRaspberryPiに割り当てたIPアドレスにセットします。

ex1.参考サイト

製品紹介(Amazonアフィリエイト)