Получаем интернет по USB с компьютера на Android

    image

    Статья актуальна на 2010 год, современные Android могут проделывать такое одной «галочкой» в настройках

    После покупки HTC Hero у меня возник вопрос: как получать интернет на коммуникаторе через компьютер? С моим предыдущим коммуникатором Toshiba G900 под управлением WindowsMobile 6 было все просто: установил «центр мобильных устройств», и на коммуникаторе появился интернет. «Эта функция не нужна», — скажите вы, ведь сейчас много точек доступа Wi-Fi, через которые можно подключиться двумя кликами. Но вот лично у меня нет Wi-Fi точки (есть ноутбук, но Android не обнаруживает Ad-hoс сети). Поэтому я был огорчен отсутствием этой функции. Все мои попытки найти мануалы на эту темы — не увенчались успехом. Поэтому я решил это сам.
    Внимание: Для работы ножен root пользователь.

    Установка сети между коммуникатором и компьютером


    Тут есть два способа:
    • Встроенный USB Tether (у аппаратов с Sence и может быть каких еще
    • USB Tether реализуемый сторонним софтом.

    В данной статье я буду рассматривать второй способ, так как он более универсален.
    И так, нам нужна программа Wired Tether, скачать которую можно, нажав на QR код, или же считав его с телефона:
    (268 КБ)
    После нажатия на экран в программе Wired Tether, в Windows появляется новое сетевое соединение с коммуникатором, и полученными по DHCP настройками:
    image
    У меня к примеру, сеть коммуникатора — Android USB, а соединение с интернетом для общего доступа — Internet. В дальнейшем я буду использовать эти обозначения.
    Отключаем соединение Internet, в свойствах подключения делаем его доступным для Android USB:
    image
    Идем в настройки Android USB и меняем его IP и маску на 172.20.23.253 / 255.255.255.252, а остальное делаем пустыми:
    image
    Цель ручного изменения IP адреса — это убрать шлюз по умолчанию.
    Пробуем Ping коммуникатор (он под ip — 172.20.23.254)
    C:\Users\MainNika>ping 172.20.23.254
    Обмен пакетами с 172.20.23.254 по с 32 байтами данных:
    Ответ от 172.20.23.254: число байт=32 время<1мс TTL=128


    Настраиваем коммуникатор


    Для удобства работы со скриптами, возьмем программу GScript Lite:
    (56.4 КБ)

    Создаем в программе GScript Lite новый скрипт, с пишем туда:
    ifconfig rmnet0 down
    ifconfig usb0 up
    route add default gw 172.20.23.253 dev usb0
    setprop net.dns1 8.8.8.8




    8.8.8.8 — это DNS сервер от google. Я люблю его использовать, поэтому использую его и тут. Использовать можно любой DNS сервер, который вы желаете.

    Настройка закончена, можно тестировать:
    1. Подключаем USB
    2. Включаем программу Wired Tether, включаем соединение
    3. Включаем GScript Lite, выполняем созданный нами скрипт
    4. ???
    5. PROFIT!

    Ну и чтобы убедиться, зайдем на 2ip.ru:
    image
    Чтобы отключить, достаточно перезапустить мобильное подключение.
    Все. Теперь можно вдоволь полазить в маркете, Скачать оттуда гору полезного и не только софта.

    upd: Тем, кто не может совладать с настройкой роутинга на Windows, могу посоветовать WinRoute от Kerio. Через него тоже работает, и вся настройка его заключается в указании сети, подключенной к интернету. Скриншот

    upd2: Переписал статью, стало универсально и без проблем. Спасибо «Corwin» за указание ошибки в скрипте, приводящей к «invalid argument»
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 87

    • UFO just landed and posted this here
        0
        Ну, я не откажусь, только не 500 рублей.
          –1
          А почему именно его? пыщ
            –1
            И да — «ска́жете вы»
                0
                Что бы уж сразу не так?
                  –1
                  Заданным характеристикам не соответствует ни одна модель. :D
                0
                неплохая железка, купил себе и не жалею
                производительности хватает, торренты тянет на 11.3Мб, между компами 300-500Мбит по лану, про скорость вайфай ничего не могу сказать
              +1
              Главное 300й не бери!)
                0
                кстати, почему?
                  0
                  Ужасно глючный — адекватной заводской прошивки ни одной. Модель, насколько я знаю, вообще снята с производства, хотя прошивки еще типа «пишут»…
                  У меня стоит дома такой — достался на халяву, потому что прежний владелец не смог с ним справиться.
                  С трудом и танцами с бубном залил на него dd-wrt. Стал гораздо стабильнее, но тырнет быстрее 10 Мбит/с по вафляйке не раздает, несмотря на скорость подключения 54 Мб/с(что для меня не совсем критично, потому что у меня как раз 10Мб/с интернет).
                  Процы не оч мощные, да и памяти не оч много… Короче, с ним больше геморроя, чем удобств.
                  Если, как у меня, на халяву — берите! В обратном же случае — ну его…
                    0
                    Кстати, на самой стабильной и «родных» прошивок, при подключении по вайфаю от 2х устройств раздача интернета по воздуху затыкается намертво.
                      0
                      Ну не у всех же инет 10 Мбит/с :) У меня лично в замкадье ADSL 3072/512, мне этого DIR-300 за глаза хватало. Правда с dd-wrt(про танцы с бубном не согласен, не так уж она сложно заливается, на сайте dd-wrt четкая инструкция есть)
                        0
                        Дык, там же надо этот короткий промежуток ловить, када роутер в сервисном режиме. Не знаю, что там сейчас, но мне инструкция с сайта не подошла — гуглить пришлось. Но все, слава богу, закончилось удачно и я его не брикнул, что у меня оч хорошо и часто с разными железками случается)))
                0
                а почему андроид не видит ad-hoc сети?
                  +1
                  Связано с версией андройда — не реализовано. Видит начиная только с версии 2.2. Для Hero есть кастомные 2.2, но без интерфейса htc sence, что мне не нравится.
                    +2
                    так если у Вас рутованный телефон — не легче конфиги поправить, чтобы он начал видеть ad-hoc? или эта штука прокатывала только со старыми прошивками?

                    Google — «htc hero ad-hoc»
                      0
                      У меня Ликвид, пошивка 2.1. Где мне надо править конфиги что бы он видео ad-hoc сети?
                    +1
                    откуда инфа про 2.2?
                      +1
                      Услышал в одной конференции. Поверил. После вашего комментария посмотрел список изменений — оказалось не добавили. Теперь буду знать.
                    0
                    Может 2.2 еще и прокси с аутентификацией научили, может знаете?
                  0
                  Можно чуть больше на вафляй карточку — юзать ее как АП.
                  +3
                  Есть, вроде, программа Connectify (Win7 only), которая позволяет раздавать интернет через Wi-Fi. Но у меня она как-то не работает… а было бы хорошей альтернативой, ибо здесь используется рутованный девайс.
                  Но все равно спасибо за инструкцию.
                    +2
                    Все такие программы основаны на hosted network в win 7, надежнее включать руками:
                    netsh wlan set hostednetwork mode=allow ssid=name key=pass
                    netsh wlan start hostednetwork
                    и потом расшарить инет через свойства адаптера…
                      0
                      Есть еще способ поднять виртуальную точку доступа в XP — research.microsoft.com/en-us/um/redmond/projects/virtualwifi/software.htm
                      0
                      Программа Connectfly позволяет создать на Win7 опять же Ad-hoc точку доступа, которую Андройд-девайс не увидит (увидит при манипуляциях с бубном как написали в комментариях выше). Опять же, все действия этой программы можно в несколько кликов сделать и в стандартных настройках Win7, или же в стандартном в Linux Network Manager.
                      Поправьте меня если не так, ибо я только прочитал описание программы, но не использовал ее.
                        0
                        Connectify создаёт access-point на wpa2-psk. Всё делается в пару кликов, ничего сложного. Два ноута, PSP и Samsung Spica поймали сеть без проблем. С одним только но, в последней версии сеть ловится, коннектится но шара на инет не работает. Разработчики признали проблему и дали возможность скачать старую версию у кого есть такие проблемы.
                          0
                          У меня была такая проблема, дело в том, что в последней версии разработчики используют сторонние средства, вместо ICS, и встроенный бранмауэр это дело блокирует. Как только выключил его на внутреннюю сеть — всё сразу забегало. Legend прекрасно работает, и шнурков не надо. Правда ноут у меня с Intel 5150, и чтобы расшарить WiMAX — надо еще один Wi-Fi адаптер использовать, т.к. со встроенным — WiMAX и Wi-Fi одновременно не работают…
                        +1
                        Эхх) сразу видно)) бывший пользователь Portege G900 ^_^
                        Такой low-level способ =)
                          0
                          Плюсанул карму, перенесите в блог Андроида по возможности.
                            +1
                            Спасибо, как будет возможно — обязательно
                            0
                            При переходе с Windows Mobile на Android (подобно описанному вон там, например) пользователю более всего недостаёт именно возможности подключить мобильник к компьютеру и получать Интернет с компьютера этим наиболее естественным способом, то есть не быть вынужденным засорять эфир энергией WiFi-радиоволн, а подчас и тратить деньги на аппаратное обеспечение, которое без этого оказалось бы не нужным.

                            В том числе поэтому MainNika получил от меня приглашение на Хабрахабр: его статья, его рецепт — куда лучше тех многих и многих (и бесконечно тупых!…) обсуждений на форумах (легко находимых простым погугливанием), в которых либо используются эзотерические способы, требующие иметь на компьютере непременно Linux (да ещё иногда и работать на нём из-под рута), либо восторженно являются клинические дегенераты с инструкциями о раздаче Интернета с мобильника на компьютер (тогда как просили о совершенно противоположном).

                            Правда, к сожалению, этот рецепт всё равно не идеален, потому что под рутом приходится сидеть — пускай и не на компе, но всё же на мобильнике. Однако, наверное, в обычном (непорутованном, свежекупленном) андроидомобильнике желаемого достигнуть не удастся, потому что ifconfig, или route add, или setprop выполнить не удастся, или не сработает приложение, делающее всё то же самое.

                            И если это действительно так, то неминуемо возникают самые мрачные сомнения в чистоте намерений Google при создании Android: не было ли материальной заинтересованности в создании именно такой ситуации, в которой вдали от Wi-Fi пользователю приходится пользоваться недешёвой сотовой связью? А если не было материальной заинтересованности, то неужели в Google сидят остолопы, которые не в состоянии всобачить в свою систему аналог функции конкурента? Или здесь мы опять имеем дело с пренеприятным влиянием эффекта патентования функций, так что раздача Интернета на мобильник сделалася «интеллектуальной собственностью» Корпорации Майкрософт в Штатах, в которых действуют «софтверные патенты»?

                            Остаётся лишь угрюмо гадать; сам я, увы, не знаю, какой ответ правильный.
                              –1
                              Спасибо.
                                –2
                                Пожалуйста.
                                +3
                                а просто эта фича кроме русских практически не нужна, как мне кажется…
                                  0
                                  Или здесь мы опять имеем дело с пренеприятным влиянием эффекта патентования функций, так что раздача Интернета на мобильник сделалася «интеллектуальной собственностью» Корпорации Майкрософт в Штатах, в которых действуют «софтверные патенты»?

                                  Остаётся лишь угрюмо гадать; сам я, увы, не знаю, какой ответ правильный.
                                  Зато я знаю какой ответ правильный. Следите за руками: открываю на своём андроидфоне «Настройки», перехожу «Беспроводные сети» → «Режим модема» и вижу «USB-модем», это именно то, что мы ищем.

                                  Андроид 2.2
                                    +1
                                    Ага, каюсь. Это делает совершенно противоположное. Минусуйте, чего уж. Тут не принято прощать ошибки.
                                      –1
                                      Можете быть покойны: у меня не достаточно кармы для того, чтобы голосовать.
                                    +3
                                    Во-первых, под рутом сидеть вы не будете. В андроиде с рутованием появляется аналог sudo, то есть кто просит рута, тот его получит, если ВЫ разрешите. По-дефолту весь софт продолжает работать как и прежде. Так что не надо тут сказки придумывать про «сидим из под рута», оок?

                                    Второе — инет на моб через USB это какое-то извращение никому кроме Россиян не нужное. USB кабель штука короткая, комп у меня под столом. И что? Мне лезть под стол за инетом для телефона, когда я могу спокойно лазить по инету с компа? Ололо! А если инет на телефоне действительно нужен, то во всех нормальных странах у людей дома есть WiFi, а за пределами дома — хороший тарифный план на траффик, который шёл вместе с телефоном.

                                    Проблема абсолютно надумана крайне ограниченной группой людей, поэтому никто такую фишку и не сделал. В iPhone тоже так низя, но НИКТО не ноет. Там даже тетеринга нет у AT&T и тоже никто не ноет, хотя вот это — действительно архинужная вещь.
                                      –2
                                      Ну, для меня очень актуальное решение!
                                      Wifi я не хочу ставить!!! Так как у меня совсем маленький ребёнок и мне не хочется ставить ещё один источник излучения дома. Конечно, многие могут сказать что источников и кроме вафли вокруг полно: сотовый, микроволновка, ЛЭП… согласен, но собственноручно ставить ещё один не хочу! Понимаю, излучение вафли вещь холиварная, по ентому делу я консультировался с другом, он тоже компутерный гик, маньяк на лиукс и при этом закончил мед. академию, сейчас в интернатуре и работает в МЧС. И его словам я доверяю больше нежели многим статьям и комментариям в форумах!

                                      Ну, это был немного оффтоп, а по сути, я давно искал подобное решение именно через кабель. Так что автору большое спасибо!!!
                                        +2
                                        Забота о ребёнке — это отлично! Вот только риски вами выбраны неверные. Спросите у любого хирурга и он вам подтвердит, что лёгкие некурящего жителя крупного города пропитаны вредными веществами не меньше, чем у курящего. На фоне этого воздействия на организм человека все волны WiFi просто меркнут. Вы можете обложить ребёнка десятком работающих рутеров и он пострадает за месяц меньше, чем за час гуляния на «свежем» воздухе. Лучше на всё лето вывозить ребёнка в деревню на действительно свежий воздух, чем отказывать себе в рутере.

                                        Подумайте на досуге о том, что проблему вы решаете не с той стороны.

                                        P.S. Солнце — главный источник всяко-разных излучений повышенной мощности. Мощность Солнечного излучения нагревает планету, как видите сейчас в Москве 30+ градусов. Попробуйте рутерами нагреть ночью комнату хотя бы на градус и посчитайте какое их количество вам потребуется. Базовые знания физики мне подсказывают, что в комнату такое количество не влезет.
                                          0
                                          Согласен насчёт «свежего» воздуха, но я живу далеко не большом городе! В этом плане свежий воздух местами и правда свежий, лес недалеко. Ребёнка стараюсь вывозить на природу — в лес, на озеро.
                                          Все компутерные штуки с интернетом, ноутбуком, даже домашний телефон ;) вынес в самую дальнюю комнату от места игр и где спит ребёнок.

                                          Да и мне инет то нужен на телефоне буквально обновить программы и погоду на телефоне, минут на 10, поэтому покупка WiFi — это как по воробьям из пушки. Опять же, нужность вафли — тоже вещь персональная!
                                            0
                                            Чтобы поставить софт инет в телефоне не нужен — ставьте через USB и всё. А погода не так много жрёт — раз в сутки можно и инет на телефоне включать. Да и вообще, не пользуя мобильный инет, вы теряете все плюсы андроида.
                                              0
                                              вчера специально тестировал Fancy Widget. одно обновление погоды — в районе 20-30кб будет
                                      0
                                      Кто-нить уже успел проверить данный способ? А, то я уже своего Legend собираюсь обратно прошивать до версии 2.1. В 2.2. не нашел общего интернета.
                                        0
                                        Видимо «Общий интернет» — реализация от HTC. А 2.2 он же без HTC фич типа Sence и т.п.
                                          0
                                          Да все верно, хочу вернуться к 2.1. вот только сыкотно, а заработает ли?
                                            0
                                            У меня же работает :) И в статье я показал скриншоты это доказывающие.
                                              0
                                              А тебя помучать можно в аське если что? :-)
                                                +1
                                                Да ок. Что знаю, тем помогу.
                                                  0
                                                  После долгих мучений заработало! Правда пришлось использовать Kerio.
                                                    0
                                                    Все хорошо, вот только с Маркета не качает!
                                          –1
                                          «Настройки» → «Беспроводные сети» → «Режим модема»
                                          0
                                          да уж )) не ищем легких путей. хотя оригинально, если нет роутера.
                                          взял на заметку.
                                            0
                                            Интересно, а в природе существуют средства которыми можно то же самое реализовать подключая Symbian к Jolicloud через bluetooth?
                                              0
                                              «Кстати, консоль ADB из комплекта Android SDK у меня автоматически подключается под пользователем root, насколько это связано с тем, что у меня он разблокирован — я не знаю, попробуйте — whoami. В Android root пользователь с uid=0»
                                              все root-ованые прошивки в рамдисковом default.prop прописывают ro.secure=0, что и дает данный «эффект»:
                                              — adb shell выполняется от суперпользователя
                                              — adb remount выполняет перемонтирование с чтение/запись
                                              — и много чего еще

                                              Про ad-hoc сказали выше.
                                                0
                                                Откройте для себя программу Connectify. Делает нормальный hot-spot из Windows системы. Давно пользуюсь — проблем не замечено.
                                                  0
                                                  не работает с WinXP
                                                  • UFO just landed and posted this here
                                                      0
                                                      У меня от компьютера 3м удлинитель до кровати, далее стоит USB-концентратор со своим питанием, к которому подключаю вторую мышку, чтобы переключать фильмы не вставая с кровати, плеер, слушаю музыку когда спать ложусь в одно время с зарядкой, и коммуникатор, шнурком 1.5м, читаю интернет когда лег спать. Не вижу в этой системе неудобства.
                                                    0
                                                    На ноутбуке использую Linux. Потому что мне так удобнее. А Connectify Win7 Only. Под Win7 только десктоп.
                                                      0
                                                      В Linux наверняка есть что-то аналогичное.
                                                        0
                                                        Такого же простого под Linux нет, но мануалов полно.
                                                      +3
                                                      Есть еще не совсем нормальный способ (ppp поверх adb), необходимо adb shell и компьютер с линукс, подключенный к интернет:
                                                      На компьютере в консоли:

                                                      adb forward tcp:12000 tcp:12000
                                                      sysctl net.ipv4.ip_forward=1
                                                      iptables -t nat -I POSTROUTING -s 192.168.0.254 -j MASQUERADE -o eth0

                                                      Затем в adb shell на андроиде:

                                                      ip r del default
                                                      pppd nodetach noauth pty «nc -l -p 12000» defaultroute

                                                      Затем опять на компьютере:
                                                      pppd nodetach noauth nodeflate pty «nc localhost 12000» ipparam vpn 192.168.0.16:192.168.0.254

                                                      И на андроиде:
                                                      route add default gw 192.168.0.254 dev ppp0

                                                      forum.xda-developers.com/showthread.php?t=522498
                                                        0
                                                        Интересно, это возможно сделать с помощью coLinux, перенаправить USB подключение на него?
                                                        Этот способ хорош для разработчиков, как я понял тут USB соединение в режиме дебага продолжает работать.
                                                        0
                                                        если у кого не работает Connectify, пробуйте Virtual Router. У меня заработало
                                                        virtualrouter.codeplex.com/
                                                          +1
                                                          Опять пляски с бубном… жаль, думал под Андроид выпустили готовое решение…
                                                            0
                                                            у меня на Nexus One (2.2.1) на route add default gw 192.168.100.100 пишет invalid argument
                                                              0
                                                              busybox версии 1.18 с маркета?
                                                                +1
                                                                да
                                                                  0
                                                                  Ко мне уже в джаббер по этому поводу обращались. Если честно, не знаю даже откуда 1.18 появился. На сайте разработчика busybox 1.17.3 stable последняя. В этом 1.18 очень много функций не работает, будь то chmod или route.
                                                                  Вам нужно даунгрейдить busybox.
                                                                    0
                                                                    Вам нужно скачать запакованный tar'ом бинарник busybox'a 1.17.2: dl.dropbox.com/u/3971799/busybox.tar
                                                                    Скопировать на флешку.
                                                                    Если Вы используете adb то ввести команду:
                                                                    adb remount
                                                                    если просто терминал на девайcе:
                                                                    mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
                                                                    Далее, не важно в терминале или adb:
                                                                    cd sdcard
                                                                    cp busybox.tar /system/xbin
                                                                    cd /system/xbin
                                                                    tar xf busybox.tar

                                                                    Распакуется файл busybox1
                                                                    И нужно обязательно проверить работоспособность(в основном права на запуск):
                                                                    ./busybox1
                                                                    Вы должны увидеть:
                                                                    BusyBox v1.17.2 (2010-09-05 04:15:58 CDT) multi-call binary.
                                                                    Copyright © 1998-2009 Erik Andersen, Rob Landley, Denys Vlasenko
                                                                    and others. Licensed under GPLv2.
                                                                    See source distribution for full notice.

                                                                    Если все ОК, то устанавливаем:
                                                                    cp busybox1 busybox
                                                                    ./busybox --install /system/bin
                                                                    rm busybox.tar
                                                                    rm busybox1


                                                                    Вот так получается:
                                                                    image

                                                                  0
                                                                  Переписал статью, перепишите скрипт как теперь.
                                                                  0
                                                                  Так и не появилось готовых решений без скриптов и тд?
                                                                    +1
                                                                    Как сделать похожее, но с Ubuntu?
                                                                      +1
                                                                      Если Tether работает то
                                                                      ifconfig usbnet0 192.168.0.4 up
                                                                      iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
                                                                      sysctl net.ipv4.ip_forward=1

                                                                      Где usbnet0 — сеть с андройдом
                                                                      192.168.0.4 — ip компьютера в этой сети
                                                                      eth0 — сеть с выходом в интернет

                                                                      Остальное все должно совпадать.
                                                                        +1
                                                                        К сожаление у меня комп не видит никаких новых интерфейсов после подключения к нему телефона по usb и включения на телефоне tether.

                                                                        Возможно потому, что в настройках нет такой функции что бы работать как модем.
                                                                        Телефон motorola xt720, перепрошитый на android 2.2.

                                                                        Читал что можно это как то программно исправить, есть ли решение на этот случай?
                                                                          0
                                                                          Если программа говорит «Unsupported kernel», то я не знаю. Я думаю это из-за специфичного для каждого устройства конфига ядра — во многих отключают эту функцию.
                                                                            0
                                                                            Под виндой все прекрасно работает. А под линуксом не видет ничего что бы могло быть usbnet0
                                                                              0
                                                                              Ну это другое дело.
                                                                              dmesg? ifconfig -a?
                                                                                0
                                                                                dmesg и ifconfig -a не меняются
                                                                                  0
                                                                                  вот что появлеется после подключения телефона
                                                                                  usb 1-8: new high speed USB device using ehci_hcd and address 11
                                                                                  usb 5-1: new full speed USB device using uhci_hcd and address 14
                                                                                  usb 5-1: device descriptor read/64, error -71
                                                                                  usb 5-1: device descriptor read/64, error -71
                                                                                  usb 5-1: new full speed USB device using uhci_hcd and address 15
                                                                                  usb 5-1: device descriptor read/64, error -71
                                                                                  usb 5-1: device descriptor read/64, error -71
                                                                                  usb 5-1: new full speed USB device using uhci_hcd and address 16
                                                                                  usb 5-1: device not accepting address 16, error -71
                                                                                  usb 5-1: new full speed USB device using uhci_hcd and address 17
                                                                                  usb 5-1: device not accepting address 17, error -71
                                                                                  hub 5-0:1.0: unable to enumerate USB device on port 1
                                                                                  usb 1-8: usbfs: process 1546 (gvfs-gphoto2-vo) did not claim interface 0 before use

                                                                                    0
                                                                                    Можно попробовать удалить модуль
                                                                                    modprobe -r uhci_hcd
                                                                                    Если будет работать, то в режиме usb 1.1

                                                                      Only users with full accounts can post comments. Log in, please.