注意,是手机利用PC网络连网,而不是PC利用手机网络连网。shell
前提:网络
一、Ubuntu正常链接网络app
二、手机已rootrest
三、手机上安装了busyboxcode
步骤:server
一、设置Ubuntu上的IP转发dns
查看"/proc/sys/net/ipv4/ip_forward"文件中的值是否为"1", 若是不是, 则须要在"/etc/sysctl.conf"文件中添加"net.ipv4.ip_forward=1", 而后执行如下命令:接口
$ sudo /etc/init.d/procps restart
执行下面的命令查看表中是否有相应的表项:
ip
$ sudo iptables --table nat -L POSTROUTING
$ sudo iptables --table nat --append POSTROUTING --out-interface eth0 --jump MASQUERADE
分别在电脑和手机上输入"ifconfig"与"busybox ifconfig", 你会发现两边都有一个叫作"usb0"的网络接口, 且IP地址都是一个网段, 如"192.168.42.X", 两边也能够互相ping通. 这就是USB共享虚拟出来的网络接口, 咱们后面所有须要靠这个接口来与电脑通讯。
ci
手机上的输入可经过在Ubuntu上用adb shell进入手机终端来输入,若是提示insufficient permissions for device,则先切到root身份,再执行如下命令:
# adb kill-server # adb start-server
# busybox route add default gw 192.168.42.100
# setprop net.dns1 8.8.8.8
好了,大功告成!
最后,有点麻烦的是,每次从新打开USB共享,电脑和手机上的usb0的IP会从新分配,所以,须要从新配置手机上的路由。