wheezy向けの旧ページはこちら

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 manual

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

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

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

1.「/etc/dhcpcd.conf」を編集

有線LAN側とテザリングデバイス側の優先順位をつけるために、
「/etc/dhcpcd.conf」の末尾に以下の内容を追加します。

interface eth0
metric 1

interface usb0
metric 0

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

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

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

3.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

4.接続チェック

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

ex1.参考サイト

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



2016/2/13 各ネットワークデバイスのメトリック設定をifmetric+interfacesからdhcpcd.confに変更。
2017/9/3  /etc/network/interfacesの設定内容にミスがあったので修正。(inet dhcp→inet manual)