Làm cách nào để thiết lập kết nối ngược qua USB?


125
  1. Điện thoại HTC G2 của tôi đã được root và chạy Cyanogenmod 7
  2. Tôi không có gói dữ liệu.
  3. Đôi khi, tôi muốn kết nối điện thoại với Internet khi không có Wi-Fi, để cập nhật ứng dụng Market, sao lưu tin nhắn SMS vào Gmail, đồng bộ hóa danh bạ mới từ Gmail, v.v. Những điều tôi không thể làm với chế độ lưu trữ dung lượng lớn USB.
  4. Tôi có máy tính Windows 7 Professional được kết nối với Internet, nhưng tôi không được phép thiết lập mạng Wi-Fi đặc biệt. (Nếu tôi làm, họ sẽ chú ý và săn lùng tôi.)

Có cách nào để điện thoại truy cập Internet thông qua kết nối USB với máy tính không? Nếu vậy, làm thế nào để tôi thiết lập nó?


Đây trông giống như một giải pháp một phần: forum.xda-developers.com/showthread.php?t=1371345
endolith

Câu trả lời:


46

Gần đây tôi đã phát hiện ra SimpleRT hoạt động rất tốt với Linux (và rõ ràng là OSX). Chỉ cần bật gỡ lỗi USB trên thiết bị của bạn (không cần root), cài đặt APK được liên kết từ trang đó trên thiết bị của bạn và kết nối nó với PC qua USB, sau đó chạy nhị phân trên PC.

Nó sẽ thiết lập kết nối dưới dạng đường hầm VPN ( tun0theo mặc định) và thiết bị của bạn sẽ nhắc bạn (a) cho phép SimpleRT tạo / giám sát kết nối VPN cũng như (b) có chạy nó khi thiết bị được cấu hình như một phụ kiện USB cụ thể (đó là những gì nhị phân làm).

Dự án không bao gồm nhị phân dựng sẵn, vì vậy tôi đã tải lên một tệp tôi đã tạo cho Ubuntu .


Dưới đây là một phương pháp thủ công nên hoạt động trên Linux hoặc Windows: http://blog.mathieu.carbou.me/post/60454997009/reverse-usb-tethering-with-android-2-2

BƯỚC 1:

Đối với Windows: Cài đặt trình điều khiển USB từ SDK Android

Đối với Linux: Không có gì để làm

BƯỚC 2:

Trên Nexus One: Kết nối cáp USB và kích hoạt Tethering USB. Bạn sẽ thấy trên linux hoặc windows một giao diện mạng mới.

BƯỚC 3:

Trên máy tính Linux, thiết lập một cây cầu:

# 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

Xem https://help.ubfox.com/community/NetworkConnectionBridge để thiết lập cầu nối

Trên windows, Bridge 2 giao diện mạng

BƯỚC 4:

Cài đặt giao diện usb0 của điện thoại. Bạn phải tùy chọn:

  1. Từ máy tính của bạn, thực hiện:

    ./adb shell netcfg usb0 dhcp
  2. Hoặc trong một thiết bị đầu cuối gốc trên điện thoại của bạn, gõ:

    su
    netcfg usb0 dhcp

Bây giờ bạn có thể kết nối Internet trên điện thoại bằng kết nối Internet của máy tính.

Hãy thử làm một www www.google.com để chắc chắn!

BƯỚC 5:

Để tắt tính năng kết nối ngược, trước tiên hãy hủy kết nối các giao diện trên máy tính của bạn:

sudo ifconfig eth0 xuống  
sudo ifconfig usb0 xuống  
sudo ifconfig br0 xuống  
sudo brctl delbr br0  
sudo ifconfig eth0 lên  
sudo dhclient eth0

Sau đó, trên điện thoại của bạn, bỏ chọn tùy chọn Tethering USB!

Bạn cũng có thể sử dụng Windows để tạo mạng WiFi (sử dụng Connectify ) và kết nối thiết bị của mình với mạng đó: http://www.nexusoneforum.net/forum/nexus-one-faq-how-tos/3133-reverse-tether-getting -i Internet-your-phone.html


3
Trong điện thoại của tôi, "netcfg usb0 dhcp" phải là "netcfg rdnis0 dhcp"
nghĩa tự làm

3
Trên CyanogenMod tôi 13, netcfg không thể tìm thấy :(
MAF-soft

1
netcfg vẫn còn thiếu từ LineageOS. Bạn có thể cần busybox thay thế. android.stackexchange.com/questions/141900/
Mạnh

Trên chạy sudo ifconfig usb0 0.0.0.0 Tôi nhận SIOCSIFADDR: Không có thiết bị usb0 như: ERROR trong khi nhận được lá cờ giao diện: Không có thiết bị như vậy
user1917769

@ user1917769 Bạn sẽ phải tìm ra thiết bị của bạn đặt tên giao diện USB là gì nếu nó khác.
Matthew đọc

19

Có một số khả năng khác - nhưng tất cả chúng tôi biết đều yêu cầu một thiết bị đã root.

Sử dụng ứng dụng Reverse Tether

Đầu tiên, có một Ứng dụng có tên Reverse Tether có sẵn miễn phí trên Play Store (đây là bản dùng thử giới hạn, giới hạn thời gian bạn có thể kết nối - nhưng ít nhất bạn có thể kiểm tra theo cách này xem thiết bị của bạn có được hỗ trợ đầy đủ hay không, phiên bản đầy đủ là khoảng 5 USD). Theo một bài viết tại AndroidAuthority , việc thiết lập phải dễ dàng như 1-2-3: Cắm cáp USB, khởi động ứng dụng, để nó tự động định cấu hình (cũng có sẵn cấu hình thủ công) - và bạn sẽ đến đó. Bạn cũng có thể để nó yêu cầu bạn kết nối khi tìm thấy kết nối USB.

Phương pháp thủ công sử dụng Wifi

Tôi biết, đây không phải là USB - nhưng để hoàn thiện (và đưa ra giải pháp thay thế) tôi nghĩ tôi cũng có thể thêm những thứ này:

loay hoay với hệ thống và vá xung quanh

Một số phương pháp thủ công cũng có sẵn (và được mô tả, ví dụ như tại XDA ) - nhưng chúng hầu như phức tạp về mặt kỹ thuật và mong bạn vá các tệp hệ thống; không dành cho người dùng hàng ngày, mà là cho những người yêu thích công nghệ.

Thiết bị đầu cuối và đi

Tuy nhiên, một phương pháp hay khác chỉ cần có 3 dòng trong thiết bị đầu cuối và được mô tả trong một bài đăng ở đây , để kết nối với mạng Wifi đặc biệt. Về cơ bản, nó nên đi như thế này:

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

thao tác một số tập tin cấu hình

Một phương pháp khá dễ dàng khác cũng được mô tả ở đây và liên quan đến việc chỉnh sửa wpa_supplicant.conftệp một lần (thêm thủ công mạng Wifi ad-hoc của bạn).

Phương pháp dễ dàng

Tôi có cần phải nói không? Sử dụng bộ định tuyến Wifi. Thậm chí còn có một số "Bộ định tuyến du lịch" nhỏ với giá dưới 50 USD. Sau đó, kết nối điện thoại của bạn giống như bạn sử dụng để kết nối nó với các mạng Wifi khác ...


7

Chào! có một ứng dụng cho điều đó

Chuyển tiếp cổng USB của Android
http://www.codeproject.com/kb/android/usbportforwarding.aspx

Tôi hơi bối rối khi sử dụng nó, xin vui lòng thông báo nếu bạn làm cho nó hoạt động hoàn hảo.


1
Điều này rõ ràng đòi hỏi một proxy khác ngoài chính máy tính và chỉ hỗ trợ duyệt web?
endolith

1
Nó nói rằng nó sử dụng cổng 8080, không nhất thiết phải hạn chế nó để duyệt web, phải không? Tôi nghĩ rằng Market có thể sử dụng điều này, tuy nhiên Market sử dụng bài 5228.
Steve

3

Tôi biết đây là một câu trả lời thậm chí sau này, nhưng nó đáng được đề cập đến nó.

Không cần root máy!

Không cần cài đặt ứng dụng! * Điều này thậm chí không thể nếu bạn không có kết nối internet khác.

Có một dự án gọi là gnirehtet .

  1. Cài đặt adb trên PC chủ (Windows / Linux / Mac)
  2. Tải tập tin zip gnirehtet về máy chủ
  3. Giải nén nó
  4. Chạy lệnh

Đó là nó! Để biết thêm thông tin, hãy đọc tệp readme của gnirehtet trên trang web của họ.

* = Đằng sau hậu trường, nó sẽ cài đặt tệp apk vào thiết bị của bạn thông qua kết nối USB.


Chỉ có đa nền tảng hoạt động phi thương mại trả lời ở đây. Ngay cả Google Play cũng kết nối (Android 9 Pie).
cdlvcdlv

2

Tôi đã tìm thấy một công cụ tốt để kết nối ngược trên diễn đàn xda-developers. Nó được gọi là Android Reverse Tethering . Nó hoạt động với Windows và yêu cầu điện thoại đã root.
Nó hoạt động tốt trên HTC Desire HD của tôi chạy MIUI v4.


Tôi đang sử dụng phần mềm này, nó hoạt động hoàn toàn tốt trên mt galaxy s duosgts7562. Tôi có thể sử dụng tất cả những thứ liên quan đến internet thông qua việc kết nối ngược.
Jasser

Để sử dụng youtube và các ứng dụng khác như vậy, bạn cần phải nhấp vào nút cài đặt hack sau đó bạn đã sẵn sàng để đi.
Jasser

2

Các bước kết nối ngược của Android:

Lưu ý: Chỉ hoạt động trong điện thoại Android đã root.

  1. Kết nối thiết bị Android qua USB.
  2. Kích hoạt tính năng chia sẻ kết nối qua USB. Để làm như vậy, hãy đi tới Cài đặt → Khác ... → Chia sẻ kết nối & điểm truy cập di động → Chia sẻ kết nối qua USB .

  3. Tại máy chủ, kết nối mạng USB có thể được phát hiện bởi người quản lý mạng.
    Tên của nó sẽ là một cái gì đó như "Kết nối có dây 2" (hoặc 3).
    Bạn phải chỉnh sửa "IPV4 / Phương thức" thành "Được chia sẻ với các máy tính khác".

3.1. Nếu không có người quản lý mạng, bạn sẽ phải thực hiện thủ công:

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

Bây giờ, như được giải thích ở đây ở cuối Bước 1, bạn phải sửa đổi iptablesvới sudo iptables -t nat -A POSTROUTING -j MASQUERADE. Nhưng ... thích cho phép người quản lý mạng làm điều đó nếu có thể.

  1. Tại thiết bị Android, bạn có thể phát hành các lệnh này bằng thiết bị đầu cuối có suở đó hoặc từ máy chủ của bạn bằng cách sử dụng ADB:

    $ adb shell su -c "netcfg rndis0 dhcp"
    

    Nếu nó không nhận được địa chỉ IP hoặc nếu bạn đang sử dụng một số ứng dụng mà địa chỉ IP tĩnh mong muốn như Ứng dụng "Webkey cho Android", thì hãy gán nó theo cách thủ công:

    $ 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"
    

Bây giờ internet sẽ hoạt động trong điện thoại Android.

Để kiểm tra, tại adb shellhoặc thiết bị đầu cuối Android, hãy thử lệnh ping www.google.com.

Nó làm việc cho tôi.


1
Netcfg của thiết bị của tôi dường như bị hạn chế hơn và phiên bản thủ công của bước 4 không thành công: no such action '10.42.0.2' usage: netcfg [<interface> {dhcp|up|down}]
Matthew Đọc

1
@MatthewĐọc lệnh sai, thực ra ifconfig rndis0 10.42.0.2 netmask 255.255.255.0, btw để xem tất cả các giao diện là netcfgmột mình. hướng dẫn tương tự được trình bày chi tiết tại đây
Sức mạnh của Bảo Bình

2

Đối với unrooted thiết bị

Tôi biết đây là câu trả lời muộn, nhưng vì tất cả các câu trả lời hiện có cho thấy việc kết nối ngược USB chỉ có thể nếu thiết bị của bạn được root hoặc có hỗ trợ hệ thống để kết nối ngược, tôi nghĩ rằng đáng để chỉ ra thêm một lựa chọn nữa:

Tôi đang tìm kiếm một giải pháp kết nối ngược có thể hoạt động trên các thiết bị chưa được phân phối của tôi và với MacBook, nhưng tôi không thể tìm thấy bất cứ điều gì. Cuối cùng, tôi bắt đầu phát triển giải pháp của riêng mình. Kết quả là một ứng dụng hoạt động trên các thiết bị chạy Android 4.0 trở lên ở phía máy khách và tất cả các HĐH máy tính để bàn chính ở phía máy chủ.

Ứng dụng ReverseTethering NoRoot

Ứng dụng có sẵn trên Google Play: ReverseTethering NoRoot


1
Tôi không thể kết nối nó trên Windows hoặc Ubuntu, nhưng nó dường như hoạt động trên OSX.
Matthew Đọc

@MatthewRead Gửi cho tôi một email và tôi sẽ cố gắng hết sức để giúp nó hoạt động trên Windows và Ubuntu.
FD_
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.