今回は、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)