ラップトップ/ubuntuが電話/アンドロイドがUSBに接続されていることを検出するセットアップを行いました:
/etc/udev/rules.d/99-input.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6863", RUN+="/root/usb.sh", MODE="0666" # samsung
次に、usb.sh が実行されます。逆テザリングのコマンドを実行します。
sudo ifconfig usb0 10.42.0.1 netmask 255.255.255.0 >>/root/log 2>>/root/log_err
echo 1 > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -F >>/root/log 2>>/root/log_err
sudo iptables -t nat -A POSTROUTING -j MASQUERADE >>/root/log 2>>/root/log_err
ログは、操作が正常に行われ、usb0 IP が正しいことを示しています。
inet addr:10.42.0.1
しかし、「ifconfig」を実行して手動で確認すると、usb0 の IP は次のようになります。
inet addr:192.168.x.x
設定が保持されないのはなぜですか?
(ラズベリー Pi では正しく動作します。なぜラップトップ/Ubuntu では動作しないのですか?)