Как настроить обратную привязку через USB?

125
  1. Мой телефон HTC G2 рутирован и работает под управлением Cyanogenmod 7
  2. У меня нет плана данных.
  3. Иногда я хочу подключить телефон к Интернету, когда нет Wi-Fi, чтобы обновить приложения Market, сделать резервную копию SMS-сообщений в Gmail, синхронизировать новые контакты из Gmail и т. Д. Что я не могу сделать в режиме USB-накопителя.
  4. У меня есть компьютер с Windows 7 Professional, подключенный к Интернету, но мне не разрешено настраивать специальную сеть Wi-Fi. (Если я это сделаю, они заметят и выследят меня.)

Есть ли у телефона способ выхода в интернет через USB-соединение с компьютером? Если да, то как мне его настроить?

эндолиты
источник
Это выглядит как частичное решение: forum.xda-developers.com/showthread.php?t=1371345
эндолиты
Также смотрите: android.stackexchange.com/questions/73168/…
когти

Ответы:

46

Недавно я обнаружил SimpleRT, который очень хорошо работает с Linux (и, очевидно, с OSX). Просто включите USB-отладку на своем устройстве (без необходимости рута), установите APK, связанный с этой страницей, на свое устройство и подключите его к ПК через USB, а затем запустите двоичный файл на своем ПК.

Он настроит соединение как VPN-туннель ( tun0по умолчанию), и ваше устройство должно попросить вас (а) разрешить SimpleRT создавать / контролировать VPN-подключение, а также (б) запускать его, когда устройство настроено как конкретный USB-аксессуар (что делает бинарный файл).

Проект не включает в себя предварительно собранный двоичный файл, поэтому я загрузил один, который я создал для Ubuntu .


Ниже приведен ручной метод, который должен работать в Linux или Windows: http://blog.mathieu.carbou.me/post/60454997009/reverse-usb-tethering-with-android-2-2

ШАГ 1:

Для Windows: установите драйверы USB из Android SDK

Для Linux: ничего не делать

ШАГ 2:

На Nexus One: подключите USB-кабель и активируйте USB-модем. Вы должны увидеть в Linux или Windows новый сетевой интерфейс.

ШАГ 3:

На компьютере Linux настройте мост:

# usb0 is the new network interface
# eth0 is the main interface connected to internet (or a gateway)

sudo ifconfig eth0 0.0.0.0  
sudo ifconfig usb0 0.0.0.0  
sudo brctl addbr br0  
sudo brctl addif br0 eth0  
sudo brctl addif br0 usb0  
sudo ifconfig br0 up  
sudo dhclient br0

См. Https://help.ubuntu.com/community/NetworkConnectionBridge для настройки мостов.

На окнах Bridge 2 сетевых интерфейса

ШАГ 4:

Настройте интерфейс usb0 вашего телефона. У вас есть варианты:

  1. С вашего компьютера выполните:

    ./adb shell netcfg usb0 dhcp
  2. Или в корневом терминале на вашем телефоне введите:

    су
    netcfg usb0 dhcp

Теперь вы должны иметь возможность подключаться к Интернету на вашем телефоне, используя подключение к Интернету вашего компьютера.

Попробуйте сделать пинг www.google.com, чтобы быть уверенным!

ШАГ 5:

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

sudo ifconfig eth0 down  
sudo ifconfig usb0 down  
sudo ifconfig br0 down  
sudo brctl delbr br0  
sudo ifconfig eth0 up  
sudo dhclient eth0

Затем на вашем телефоне снимите флажок USB Tethering!

Вы также можете использовать Windows для создания сети WiFi (используя Connectify ) и подключить к ней свое устройство: http://www.nexusoneforum.net/forum/nexus-one-faq-how-tos/3133-reverse-tether-getting -Интернет-ваш-phone.html

Мэтью Рид
источник
3
В моем телефоне "netcfg usb0 dhcp" должен быть "netcfg rdnis0 dhcp"
diyism
3
На моем cyanogenmod 13 нету netcfg :(
maf-soft
1
netcfg по-прежнему отсутствует в LineageOS. Вам может понадобиться busybox вместо. android.stackexchange.com/questions/141900/…
Камиль Гудесюн
При запуске sudo ifconfig usb0 0.0.0.0 я получаю SIOCSIFADDR: Нет такого устройства usb0: ОШИБКА при получении флагов интерфейса: Нет такого устройства
user1917769
@ user1917769 Вам придется выяснить, как ваше устройство называет интерфейс USB, если он отличается.
Мэтью Прочитано
19

Есть еще несколько возможностей, но все, о которых я знаю, требуют рутированного устройства.

Использование приложения Reverse Tether

Во-первых, в Play Store есть бесплатное приложение под названием Reverse Tether (это ограниченная пробная версия, которая ограничивает время, когда вы можете подключиться - но, по крайней мере, вы можете проверить таким образом, полностью ли поддерживается ваше устройство; полная версия около 5 долларов США). Согласно статье в AndroidAuthority , настройка должна быть такой простой, как 1-2-3: подключите USB-кабель, запустите приложение, дайте ему выполнить автоматическую настройку (также доступна ручная настройка) - и все. Вы также можете позволить ему попросить вас подключиться при обнаружении USB-соединения.

Ручные методы с использованием Wi-Fi

Я знаю, что это не USB - но для полноты (и предоставления альтернатив) я подумал, что я мог бы также добавить это:

возиться с системой и исправлять

Несколько ручных методов также доступны (и описаны, например, в XDA ), но они в основном технически сложны и ожидают от вас исправления системных файлов; не для повседневного пользователя, а скорее для технического фаната.

Терминал и вперед

Тем не менее, другой приятный метод должен включать в себя 3 линии в терминале, и он описан в посте здесь , чтобы подключиться к специализированной сети Wi-Fi. По сути, это должно быть так:

su
ifconfig wlan0 up
iwconfig mode auto;
iwconfig wlan0 essid "your SSID" channel 11 mode auto
ifconfig wlan0 10.0.0.x netmask 255.255.255.0

манипулирование некоторым файлом конфигурации

Другой довольно простой метод также описан здесь , и включает в себя редактирование wpa_supplicant.confфайла один раз (вручную добавив ваше одноранговой сети Wi - Fi).

Easy-Peasy метод

Должен ли я сказать, правда? Используйте Wi-Fi роутер. Есть даже несколько небольших «Маршрутизаторов» менее чем за 50 долларов США. А затем подключите свой телефон, как вы используете, чтобы подключить его к другим сетям Wi-Fi ...

Иззи
источник
7

Привет! для этого есть приложение

Переадресация USB-портов Android
http://www.codeproject.com/kb/android/usbportforwarding.aspx

Я немного запутался, как его использовать, пожалуйста, сообщите, если он у вас работает отлично.

LifeH2O
источник
1
Это, очевидно, требует прокси, кроме самого компьютера, и поддерживает только просмотр веб-страниц?
эндолит
1
Он говорит, что использует порт 8080, который не обязательно ограничивает его просмотром веб-страниц, не так ли? Я думал, что Маркет мог бы использовать это, однако Маркет использует сообщение 5228.
Стив
3

Я знаю, что это еще более поздний ответ, но стоит упомянуть об этом.

Нет необходимости рутирования!

Установка приложения не требуется! * Что даже невозможно, если у вас нет другого подключения к интернету.

Есть проект под названием gnirehtet .

  1. Установите ADB на хост-ПК (Windows / Linux / Mac)
  2. Скачайте zn-файл gnirehtet на хост
  3. Распакуйте его
  4. Запустите команду

Это оно! Для получения дополнительной информации прочитайте файл readme gnirehtet на их веб-сайте.

* = За кулисами он установит файл apk на ваше устройство через USB-соединение.

ffonz
источник
Только кроссплатформенный полнофункциональный некоммерческий ответ здесь. Даже Google Play подключается (Android 9 Pie).
cdlvcdlv
2

Я нашел хороший инструмент для обратной привязки на форуме xda-developers. Это называется Android Reverse Tethering . Он работает с Windows и требует рутованного телефона.
Он отлично работает на моем HTC Desire HD под управлением MIUI v4.

Эбрахим Бягови
источник
Я использую это программное обеспечение, оно прекрасно работает на MT Galaxy S Duosgts7562. Я могу использовать все вещи, связанные с Интернетом, через обратную привязку.
Jasser
Чтобы использовать YouTube и другие подобные приложения, вам нужно нажать кнопку «Установить взломать», после чего вы готовы к работе.
Jasser
2

Android обратная привязка шагов:

Примечание. Работает только в телефоне с ОС Android.

  1. Подключите устройство Android через USB.
  2. Включить USB-модем Для этого перейдите в « Настройки» → «Подробнее ...» → «Модем и мобильная точка доступа» → «USB-модем» .

  3. На хост-компьютере сетевое соединение может быть обнаружено администратором сети.
    Его название будет что-то вроде «Проводное соединение 2» (или 3).
    Вы должны изменить его «IPV4 / Method» на «Общий для других компьютеров».

3.1. Без сетевого менеджера вам придется делать это вручную:

    $ sudo ifconfig usb0 10.42.0.1 netmask 255.255.255.0 
    $ echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

Теперь, как объяснено здесь в конце Step1 вы должны изменить iptablesс sudo iptables -t nat -A POSTROUTING -j MASQUERADE. Но ... предпочитаю позволить менеджеру сети сделать это, если это возможно.

  1. На устройстве Android вы можете выполнить эти команды с помощью терминала suили с вашего хост-компьютера с помощью ADB:

    $ adb shell su -c "netcfg rndis0 dhcp"
    

    Если он не получает IP-адрес или если вы используете какое-либо приложение, для которого желательно использовать статический IP-адрес, например приложение «Webkey для Android», назначьте его вручную:

    $ adb shell su -c "ifconfig rndis0 10.42.0.2 netmask 255.255.255.0"
    $ adb shell su -c "route add default gw 10.42.0.1 dev rndis0"
    

Теперь интернет будет работать в телефоне Android.

Чтобы проверить, на adb shellили терминале Android, попробуйте команду ping www.google.com.

Меня устраивает.

DreamCoder
источник
1
Netcfg моего устройства кажется более ограниченным, и ручная версия шага 4 дает сбой: no such action '10.42.0.2' usage: netcfg [<interface> {dhcp|up|down}]
Matthew Read
1
@MatthewRead команда неверна, это на самом деле ifconfig rndis0 10.42.0.2 netmask 255.255.255.0, кстати, видеть, что все интерфейсы netcfgодни. Подобные инструкции подробно описаны здесь
Водолей Power
2

Для некорневых устройств

Я знаю, что это поздний ответ, но, поскольку все существующие ответы предполагают, что обратный USB-модем возможен только в том случае, если ваше устройство имеет root-доступ или имеет системную поддержку обратного модема, хотя стоит отметить, что есть еще один вариант:

Я искал решение для обратной привязки, которое работало бы на моих рутованных устройствах и с MacBook, но я просто не мог ничего найти. Со временем я начал разрабатывать собственное решение. В результате получается приложение, которое работает на устройствах под управлением Android 4.0 или выше на стороне клиента, а также на всех основных настольных ОС на стороне хоста.

Приложение ReverseTethering NoRoot

Приложение доступно в Google Play: обратное привязывание NoRoot

FD_
источник
1
Я не мог заставить это подключиться на Windows или Ubuntu, но это, казалось, работало на OSX.
Мэтью Читал
@ MatthewRead Пришлите мне письмо, и я сделаю все возможное, чтобы он работал на Windows и Ubuntu.
FD_