Как передать интернет с ПК на Android через USB и раздать его по Wi-Fi
Здесь изложены действия, необходимые для того, чтобы передать интернет с ПК через USB-кабель на устройство с Android (reverse tethering). Также описывается метод как сделать чтобы Android раздавал полученный интернет через Wi-Fi.
Для того, что обеспечить интернет на Android через USB требуется:
- root;
- busybox;
- Android 2.3 или новее.
Если необходимо, чтобы Android раздавал полученный интернет через Wi-Fi, то к требованиям добавляется:
- ядро с поддержкой iptables/netfilter;
- утилита командной строки iptables (если такой нет в составе вашей системы, то ее можно получить, установив файрвол для Android);
Алгоритм действий
- Подключить устройство с Android по USB к ПК.
- Выключить соединения Wi-Fi и 3G.
- Включить [menu]->Настройки->Беспроводные сети->USB модем.
Дальнейшее зависит от того, какая операционная система на ПК.
Для Linux
sudo dhclient usb0
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Где eth0 - название интерфейса, через который доступен интернет. Также, с помощью ifconfig узнайте ip-адрес на интерфейсе usb0 (например 192.168.42.188).
Для Windows
После подключения Android через USB windows не спеша определит новое устройство и добавит новое локальное подключение. Зайдите в его свойства и, включите автоматическое определение IP-адреса (скорее всего оно уже будет установлено).
Зайдите в настройки подключения, через которое вы получаете интернет, на вкладку "Доступ". Установите флаг общего доступа и выпадающем списке выберите сеть с Android.
Далее необходимо узнать ip адрес соединения с Android. Запустите ipconfig в командной строке и эта информация будет вам открыта (к примеру 192.168.42.188).
Дальнейшая настройка Android
Осталось настроить шлюз по умолчанию в Android. В терминале наберите, подставив вместо 192.168.42.188 тот адрес, что получили в предыдущем пункте.
su
busybox route add default gw 192.168.42.188 dev usb0
После этого на устройстве Android будет доступен интернет.
Настройка раздачи интернета через Wi-Fi
Если требуется, чтобы Android служил точкой доступа и раздавал полученный интернет всем желающим:
- Включить [menu]->Настройки->Беспроводные сети->Точка доступа Wi-Fi. Там же можно настроить имя Wi-Fi сети и пароль.
- Выполнить команду в терминале(с правами root):
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE
Таким образом можно раздать интернет с ПК по Wi-Fi сети не имея беспроводного адаптера, но только телефон с Android.