Як налаштувати зворотне прив’язання через 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
ендоліти

Відповіді:


46

Нещодавно я відкрив SimpleRT, який дуже добре працює з Linux (і, мабуть, і з OSX). Просто увімкніть налагодження USB на своєму пристрої (не потрібен корінь), встановіть APK, пов’язаний із цієї сторінки на своєму пристрої, та підключіть його до ПК через USB, а потім запустіть двійковий файл на своєму ПК.

Він встановить з'єднання як тунель VPN ( tun0за замовчуванням), і ваш пристрій повинен запропонувати вам (a) дозволити SimpleRT створювати / контролювати VPN-з'єднання, а також (b) чи запускати його, коли пристрій налаштовано як конкретний 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-кабель та активуйте Tethering 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 для встановлення мостів

У Windows перемикайте 2 мережеві інтерфейси

КРОК 4:

Налаштуйте інтерфейс usb0 свого телефону. У вас є варіанти:

  1. На комп’ютері виконайте:

    ./adb оболонка netcfg usb0 dhcp
  2. Або в кореневому терміналі телефону введіть:

    су
    netcfg usb0 dhcp

Тепер ви зможете підключитися до Інтернету на своєму телефоні за допомогою підключення до Інтернету свого комп’ютера.

Спробуйте зробити пінг www.google.com, щоб бути впевненим!

КРОК 5:

Щоб вимкнути зворотне прив’язання, спочатку на комп’ютері роз’єднайте інтерфейси:

sudo ifconfig eth0 вниз  
sudo ifconfig usb0 вниз  
sudo ifconfig br0 вниз  
sudo brctl delbr br0  
sudo ifconfig eth0 вгору  
sudo dhclient eth0

Тоді на телефоні зніміть прапорець USB Tethering!

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


3
У моєму телефоні "netcfg usb0 dhcp" має бути "netcfg rdnis0 dhcp"
diyism

3
На моєму ціаногенному моді 13 не знайдено netcfg :(
maf-soft

1
netcfg залишається відсутнім у LineageOS. Натомість вам може знадобитися зайнятий. android.stackexchange.com/questions/141900/…
Каміль Ґудесюн

Під час запуску sudo ifconfig usb0 0.0.0.0 я отримую SIOCSIFADDR: Немає такого пристрою usb0: ПОМИЛКА під час отримання прапорців інтерфейсу: Немає такого пристрою
user1917769

@ user1917769 Вам доведеться з’ясувати, як ваш пристрій називає інтерфейс USB, якщо він інший.
Матвій

19

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

Використання додатка зворотного тетера

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

Ручні методи за допомогою Wifi

Я знаю, це не USB, але для повноти (та надання альтернатив) я подумав, що також можу додати:

спотикаючись із системою та латаючи навколо

Доступні також декілька ручних методів (описаних, наприклад, у XDA ), але вони здебільшого технічно складні та очікують, що ви будете виправляти системні файли; не для щоденних користувачів, а, скоріше, для техно-фіка.

Термінал і їхати

Однак інший приємний метод повинен просто включати 3 лінії в терміналі, і описаний у публікації тут , щоб підключитися до спеціальної мережі Wifi. В основному, це повинно йти так:

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 вручну).

Легко-гороховий метод

Чи справді мені потрібно сказати? Використовуйте маршрутизатор Wifi. Навіть є невеликі "маршрутизатори" на суму менше 50 доларів США. Потім підключіть телефон, як ви використовуєте його для підключення до інших мереж Wifi ...


7

Гей! для цього є додаток

Перенаправлення портів Android Usb
http://www.codeproject.com/kb/android/usbportforwarding.aspx

Я трохи заплутався, як ним користуватися, повідомте, якщо ви працюєте бездоганно.


1
Для цього, мабуть, потрібен проксі, крім самого комп’ютера, і підтримує лише веб-перегляд?
ендоліт

1
Він говорить, що він використовує порт 8080, що не обов'язково обмежує його перегляд веб-сторінок, чи не так? Я подумав, що Market може використати це, проте Market використовує пост 5228.
Стів

2

Я знайшов хороший інструмент для зворотного прив’язки на форумі xda-developers. Це називається Android Reverse Tethering . Він працює з Windows і вимагає вкоріненого телефону.
Він чудово працює на моєму HTC Desire HD MIUI v4.


Я використовую це програмне забезпечення, воно прекрасно працює на mt galaxy s duosgts7562. Я можу використовувати всі речі, пов’язані з Інтернетом, за допомогою зворотного прив’язки.
Джассер

Щоб використовувати youtube та інші подібні додатки, вам потрібно натиснути кнопку встановити хак, тоді ви готові розпочати роботу.
Джассер

2

Етапи зворотного прив’язки Android:

Примітка. Працює лише у вкоріненому телефоні Android.

  1. Підключіть пристрій Android через USB.
  2. Увімкнути прив'язку USB. Для цього перейдіть у Налаштування → Більше ... → Зв'язування та мобільна точка доступу → Теберування USB .

  3. На хост-машині мережевий менеджер може виявити з'єднання usb-прив'язки.
    Її назва буде чимось на кшталт "Провідне з'єднання 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-адреса, наприклад "Веб-ключ для 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.

Це працює для мене.


1
Можливо, мережа Netcfg мого пристрою обмежена, і ручна версія кроку 4 виходить з ладу: no such action '10.42.0.2' usage: netcfg [<interface> {dhcp|up|down}]
Матвій

1
@MatthewRead команда неправильна, вона насправді ifconfig rndis0 10.42.0.2 netmask 255.255.255.0, btw, щоб побачити всі інтерфейси netcfgодні. аналогічні інструкції докладно описані тут
Водолій Сила

2

Для не вкорінених пристроїв

Я знаю, що це пізня відповідь, але оскільки всі існуючі відповіді говорять про те, що зворотне прив’язання через USB можливе лише в тому випадку, якщо ваш пристрій укорінений або має системну підтримку зворотного прив’язки, я хоч варто зазначити, що є ще один варіант:

Я шукав рішення щодо зворотного прив’язки, яке працювало б на моїх не вкорінених пристроях та з MacBook, але я просто нічого не зміг знайти. Врешті-решт я почав розробляти власне рішення. У результаті виходить додаток, який працює на пристроях під керуванням Android 4.0 або новіших версій на клієнті, а також на всіх основних ОС на робочому столі на хост-сервері.

Додаток ReverseTethering NoRoot

Додаток доступний у Google Play: ReverseTethering NoRoot


1
Я не зміг змусити це підключитися в Windows або Ubuntu, але, здається, він працює на OSX.
Матвій

@MatthewRead Надішліть мені електронний лист, і я дам все можливе, щоб допомогти йому працювати в Windows та Ubuntu.
FD_

2

Я знаю, що це ще пізніша відповідь, але її варто згадати.

Вкорінення не потрібно!

Не потрібно встановлювати додаток! * Що навіть неможливо, якщо у вас немає іншого інтернету.

Є проект під назвою gnirehtet .

  1. Встановіть adb на хост-ПК (Windows / Linux / Mac)
  2. Завантажте zni-файл gnirehtet на хост
  3. Розпакуйте його
  4. Виконайте команду

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

* = Позаду буде встановлено apk-файл на ваш пристрій через USB-з'єднання.


Тут є лише повний робочий некомерційний відповідь на платформі. Навіть Google Play підключається (Android 9 Pie).
cdlvcdlv
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.