我的HTC G2手机已经植根并且正在运行Cyanogenmod7。
我没有数据计划。
有时我想在没有Wi-Fi的情况下将手机连接到互联网,来更新Market应用程序,将SMS消息备份到Gmail,从Gmail同步新联系人等。使用USB大容量存储模式无法完成的事情。
我有一台Windows 7 Professional计算机已连接到Internet,但是我我不允许建立即席Wi-Fi网络。 (如果这样做,他们会注意到并追捕我。)

手机是否可以通过USB连接到计算机来访问Internet?如果是这样,我该如何设置?

评论

这看起来像是部分解决方案:forum.xda-developers.com/showthread.php?t=1371345

另请参阅:android.stackexchange.com/questions/73168/…

#1 楼

我最近发现了SimpleRT,它可以与Linux(以及显然的OSX)一起很好地工作。只需在设备上启用USB调试(无需root用户),在设备上安装从该页面链接的APK,然后通过USB将其连接到PC,然后在PC上运行二进制文件即可。

会将连接设置为VPN隧道(默认为tun0),并且您的设备应提示您(a)允许SimpleRT创建/监督VPN连接,以及(b)在将设备配置为a时是否运行该连接特定的USB附件(二进制文件就是这样做的)。

该项目不包含预构建的二进制文件,因此我已上传了我为Ubuntu构建的一个二进制文件。


以下是应该在Linux或Windows上运行的手动方法:http://blog.mathieu.carbou.me/post/60454997009/reverse-usb-tethering-with-android-2-2


步骤1:

对于Windows:从Android SDK安装USB驱动程序

对于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设置网桥

在Windows上,桥接2个网络接口

步骤4:

设置手机的usb0接口。您必须选择:



在计算机上执行:

./adb shell netcfg usb0 dhcp



或者在手机上的根终端,键入:

su
netcfg usb0 dhcp



您现在应该能够使用计算机的Internet连接来连接手机上的Internet。

尝试执行ping 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共享”选项! nexusoneforum.net/forum/nexus-one-faq-how-tos/3133-reverse-tether-getting-internet-your-phone.html

评论


在我的手机中,“ netcfg usb0 dhcp”应为“ netcfg rdnis0 dhcp”

– diyism
2014年8月28日上午10:47

在我的cyanogenmod 13上,找不到netcfg :(

– MAF-SOFT
16年8月26日在14:48

LineageOS仍然缺少netcfg。您可能需要使用busybox。 android.stackexchange.com/questions/141900/…

– Camille Goudeseune
17年7月15日在19:54

在运行sudo ifconfig usb0 0.0.0.0时,我得到了SIOCSIFADDR:没有这样的设备usb0:获取接口标志时出错:没有这样的设备

–user1917769
18年4月1日在19:07

@ user1917769您必须弄清楚设备是否为USB接口命名。

–马修·雷德(Matthew Read)
18年4月1日在19:38

#2 楼

还有更多可能-但我所知道的所有这些都需要有根设备。

使用反向系绳应用程序

首先,有一个名为反向系绳的应用程序可用于免费在Play商店上购买(这是有限的试用版,它会限制您可以连接的时间-但至少您可以通过这种方式测试您的设备是否受完全支持;完整版的价格约为5美元)。根据AndroidAuthority上的一篇文章,设置应该像1-2-3一样简单:插入USB电缆,启动应用程序,让其自动配置(也可以进行手动配置),然后就可以进行设置。您也可以让它在找到USB连接时要求您连接。

使用Wifi的手动方法

我知道,这不是USB,而是为了完整性(并给出替代方案)我想我也可以添加这些方案:

适应系统并修补

也可以使用几种手动方法(例如在XDA中进行了描述) -但是它们在技术上大多很复杂,希望您修补系统文件;

Terminal and go

但是,另一种不错的方法应该只在终端中包含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文件一次(手动添加您的临时Wifi网络)。

便捷方法

我真的要说吗?使用Wifi路由器。甚至还有一些不到50美元的小型“旅行路由器”。然后像连接旧版Wifi网络一样连接手机...

#3 楼

嘿!有一个适用于

Android Usb端口转发的应用程序http://www.codeproject.com/kb/android/usbportforwarding.aspx

我有点困惑如何使用它,请告知它是否工作正常。

评论


这显然需要除计算​​机本身以外的代理,并且仅支持Web浏览吗?

– Endolith
2011年6月6日19:05

它说它使用端口8080,不一定将其限制为Web浏览,不是吗?我以为市场可以使用此功能,但是市场使用5228之后的功能。

–史蒂夫
2011年11月11日14:01



#4 楼

我知道这是一个更晚的答案,但值得一提。

无需生根!

无需安装应用程序!*如果您这样做,甚至不可能!没有其他互联网连接。

有一个名为gnirehtet的项目。


将adb安装到主机PC(Windows / Linux / Mac)
将gnirehtet zip文件下载到主机
将其解压缩
运行命令

就这样!有关更多信息,请在其网站上阅读gnirehtet的自述文件。

* =在后台,它将通过USB连接在您的设备上安装apk文件。

评论


这里只有跨平台的全功能非商业答案。甚至Google Play都可以连接(Android 9 Pie)。

– cdlvcdlv
19-09-26在11:25

@cdlvcdlv:没有理由不应该这样做:) FWIW,它使用Android VPN API,因此通过TCP / IPv4或UDP / IPv4进行的任何操作均应起作用。 (似乎不支持IPv6)

– Piskvor离开了建筑物
1月3日,11:07



#5 楼

我在xda-developers论坛上找到了一个反向绑定的好工具。称为Android反向网络共享。它可以在Windows上运行,并且需要带root权限的手机。
在运行MIUI v4的HTC Desire HD上运行正常。

评论


我正在使用此软件,它在mt galaxy s duosgts7562上运行良好。我可以通过反向绑定使用所有与Internet相关的东西。

–杰瑟
15年7月6日在11:20

要使用youtube和其他此类应用,您需要单击“安装hack”按钮,然后就可以开始使用了。

–杰瑟
15年7月6日在11:22

#6 楼

Android反向绑定步骤:

注意:仅在具有root权限的Android手机中有效。


通过USB连接Android设备。
启用USB网络共享。为此,请转至设置→更多...→共享网络和移动热点→USB共享网络。
在主机上,网络管理员可能会检测到USB共享网络连接。
它的名称将是例如“有线连接2”(或3)。
必须将其“ IPV4 /方法”编辑为“共享到其他计算机”。

3.1。如果没有网络管理器,则必须手动进行操作:

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


现在,如步骤1末尾所述,您必须使用iptables修改sudo iptables -t nat -A POSTROUTING -j MASQUERADE。但是...如果可能的话,最好允许网络管理员这样做。



在Android设备上,您可以使用带有su的终端或从主机发出这些命令使用ADB的计算机:

$ adb shell su -c "netcfg rndis0 dhcp"


如果没有获得IP地址,或者您正在使用某个应用程序,则需要一个静态IP地址,例如“ Webkey for 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

它对我有用。

评论


我的设备的netcfg似乎更受限制,步骤4的手动版本失败:没有这样的操作'10 .42.0.2'用法:netcfg [ {dhcp | up | down}]

–马修·雷德(Matthew Read)
15年5月28日在16:51



@MatthewRead该命令是错误的,它实际上是ifconfig rndis0 10.42.0.2 netmask 255.255.255.0,顺便说一句,看到所有接口都是netcfg本身。类似的说明在这里详细介绍

–水瓶座力量
16-2-18在2:07



#7 楼

对于无根设备
,我知道这是一个较晚的答案,但是由于所有现有答案都表明,只有在您的设备已植根或具有系统支持反向绑定的情况下,才可以进行USB反向共享,但我还是值得指出除此之外,还有一个选择:
我正在寻找一种反向绑定解决方案,该解决方案可以在无根设备和MacBook上使用,但我什么都找不到。最终,我开始开发自己的解决方案。结果是该应用程序可以在客户端运行Android 4.0或更高版本的设备上运行,而在主机端可以运行所有主要的台式机操作系统。 >

评论


我无法在Windows或Ubuntu上连接它,但似乎可以在OSX上使用。

–马修·雷德(Matthew Read)
16-09-25在0:11

给我发送电子邮件,我会尽力帮助它在Windows和Ubuntu上运行。

– FD_
16-09-25在10:01