Связать два компьютера через два Android-смартфона по Wi-Fi для доставки интернета

в 18:42, , рубрики: wi-fi, Песочница, метки: ,
Суть и требования

Суть поста: поделиться решением одной небольшой проблемы — о том, как доставить интернет по следующему маршруту:

PC#1 с Интернет → Android phone#1 → Wi-Fi Android phone#2 → PC#2 без Интернет :-(.

Что потребуется:
1. PC#1 (отдающий).
2. Смартфон LG Optimus One (далее — P500).
2.5. Wi-Fi.
3. Смартфон Samsung Galaxy Spica GT-I5700 (далее — I5700).
4. PC#2 (принимающий).

Важно: оба смартфона должны быть рутированны, иначе работать ничего не будет.

Пролог

Небольшое отклонение от темы. Чтобы провести интернет на PC#2 можно было бы использовать намного менее кровожадно-костыльные способы, которых, как минимум, три:

  1. Поставить роутер, и подключить к нему два компьютера.
  2. Поставить Wi-Fi роутеры около первого и около второго компьютера.
  3. Подключиться ко второму провайдеру, на который подсадится второй компьютер.

Но, эти способы слишком простые (на самом деле, конечно же, не такие простые, как кажется, по крайней мере, для меня). Хотелось решить проблему более изощренным способом, о котором в интернете очень мало информации (я нашел немного того, что могло мне помочь в решении, но нашел очень много советов по настройке Wi-Fi роутеров).

Единственное, что полезного отыскал — это то, как раздать интернет на телефон через компьютер. Но, это не помогло. Вернее, помогло отчасти (подтолкнуло на мысль), ситуация получалась такая:

  • Повторил все шаги для своего P500, очень обрадовался, что скоро задача будет решена.
  • Включаю «Точка доступа Wi-Fi» в «Настройки → Беспроводные сети → Режим модема», настроил точку доступа, как мне требовалось. «Все, осталось только подключиться по Wi-Fi с I5700...» — подумал я.
  • Но не тут то было — после подключения к P500 по Wi-Fi мой I5700 не получал доступ в интернет, загрузка страниц в браузере подвисала, в этот момент пришла мысль о домаршрутизации P500 через ADB.
  • Но установка маршрутов, которые я долго перебирал, всячески пытался настроить дело — не помогали. Конечно, возможно, я что-то не так понял и вообще я нуб в маршрутизациях, но все же решение нашёл.
Решение

Для того, чтобы все-таки, решить задачу, нам потребуется:

  1. Драйвера для P500 и I5700.
  2. EasyTether Pro (я использовал незарегистрированную версию, по сути, Lite версию).
  3. Wired Tether.
  4. Wi-Fi Tether.
  5. GScript.
  6. Две строчки:
    busybox route add -net 172.20.23.0 netmask 255.255.255.0 dev usb0
    busybox route add default gw 172.20.23.1

Приступим:

  1. Необходимо установить драйвера на оба компьютера. С этим шагом у меня были большие пляски с одним известным предметом: либо одни драйвера не подходили, либо другие делали не то, что должны были делать. Данный шаг я не буду описывать, но, все драйвера можно найти на 4PDA.
  2. Берем P500, подключаем USB кабелем к PC#1, включаем отладку по USB. Обязательно снимите флаг с «Передача данных» в «Настройки → Беспроводные сети → Мобильная сеть»! Иначе трафик, возможно, пойдет неизвестно откуда.
  3. Устанавливаем Wi-Fi Tether (я устанавливал все ПО через ADB — проще и быстрее, с помощью команды adb install <package>). И настраиваем его:
    — открываем в меню настроек «Изменить LAN» — меняем значение по умолчанию на «10.10.1.0/24»;
    — открываем «Изменение DNS» — меняем значение на «8.8.8.8» (в прочем, можно изменить на свой собственный DNS сервер, или на тот, которому вы доверяете больше, чем гуглу);
    — запускаем.
  4. Устанавливаем Wired Tether и настраиваем:
    — открываем в меню настроек «Изменить LAN» — меняем значение по умолчанию на «172.20.23.252/30»;
    — запускаем.
  5. Устанавливаем GScript, создаем скрипт, вбиваем (либо закачиваем готовый, через ADB или напрямую на карту памяти, скрипт) две строчки кода:
    busybox route add -net 172.20.23.0 netmask 255.255.255.0 dev usb0
    busybox route add default gw 172.20.23.1
    — запускаем на исполнение скрипт.
  6. Освобождаем руки от P500.
  7. Берем в руки I5700. Включаем отладку и снимаем флажок передачи данных.
  8. Подключаемся по Wi-Fi к P500.
  9. Устанавливаем EasyTether Pro клиентскую (серверную?) часть на I5700, затем серверную (клиентскую?) часть на PC#2. Особо настраивать не нужно, требуется лишь после обнаружения подключиться к телефону через значок в трее на PC#2.
  10. Открываем браузер на PC#2 и наслаждаемся (или плачем).

Что необходимо делать в дальнейшем, после ситуации: выключены телефоны, выключены компьютеры, все отключено друг от друга, все шнуры потерялись:

  1. Включить всё, пока все включается найти шнуры, если не нашлись — примите мои соболезнования.
  2. P500 подключить к PC#1, поставить флажок «USB-модем» в «Настройки → Беспроводные сети → Режим модема», включить отладку по USB.
  3. Запустить Wired Tether и Wi-Fi Tether на P500.
  4. Запустить скрипт в GScript с двумя строчками кода, либо выполнить их через ADB.
  5. Подключиться с I5700 по Wi-Fi к P500.
  6. Подключить I5700 к PC#2.
  7. Подключиться к I5700 через значок EasyTether Pro в трее.
  8. Открыть браузер на PC#2.
Эпилог

PC#1 с Интернет → Android phone#1 → Wi-Fi Android phone#2 → PC#2 с Интернет :-).

Задача решена, итог: заводится всё это дело за минуту, пляски с бубном минимальные (но, возможно, поплясать с очень хорошим бубном и очень долго придется при установке нужных драйверов — это одна из самых жестоких частей). Данное решение, скорее всего, претендует лишь на временное замещение более простого и работающего способа доставки интернета, куда ведь проще — поставь Wi-Fi роутер и не парься.

P.S. более конкретная конфигурация оборудования, используемого в задаче:

  1. На PC#1 установлена Windows 8 Release Preview.
  2. На LG Optimus One поставлена прошивка Oxygen-2.3.2-LGP500-KANG (рутированный девайс).
  3. На PC#2 установлена Windows XP.
  4. На Samsung Galaxy Spica GT-I5700 поставлена прошивка CyanogenMod 7 build74 for Spica (рутированный девайс).

Надеюсь, кому-нибудь пригодиться то, что написано выше.

Автор: SAGAK

* - обязательные к заполнению поля