解决android通过XP无线上网的问题

 

本文亦在此处更新:

http://www.in189.com/viewthread.php?tid=70451&extra=&page=1

 

本文主要写给使用XP却不想买无线路由的人们。

本文符合CC协议,转载请勿删除更改本文任何文字,配图版见附件version1.3.by antique@bupt

我的机型为华为C8500(穷人一个),但该问题适用于所有android手机

感谢in189论坛添翼圈的wvsp: 启发了我尝试该方法

http://www.in189.com/viewthread.php?tid=55178&rpid=938591&ordertype=0&page=1#pid938591


问题概述(如果你是linux,win7用户本文你就不用浪费时间了)

电脑=>wifi=>手机=>3G=>internet   //这个相信大家都会了,直接手机开共享。

手机=>wifi=>电脑=>ADSL/小区宽带=>internet   //目前XP不支持,原因如下,本文将解决该问题


常用的解决方法:

win7下安装Connectify启动无线网卡的master模式

linux下折腾无线网卡到master模式

XP由于驱动限制导致目前为止只能让网卡处于ad hoc模式,而android目前不支持处于ad hoc模式下的wifi热点。换言之,如果你的系统是XP,手机上android是无法通过电脑上的无线网卡共享上网的。


需要以下软件(附地址)

电脑连接手机的wifi软件:这个选自己能用的就行,我用的是Wirelesstether

http://www.coolapk.com/apk-1230-android.tether/


调试用的:

Busybox: http://www.coolapk.com/apk-2755-stericson.busybox/

Better Terminal Emulator:

http://www.coolapk.com/apk-2172-com.magicandroidapps.bettertermpro/


解决问题:

一.基本原理

电脑A=====>wifi=>手机                       //这一步是建立手机和电脑A(你的电脑)的网络连接(a)

172.20.21.103=wifi=> 172.20.21.254            

                                 手机====>VPN==>电脑A(VPN服务器)=> ADSL/小区宽带

                                  192.168.0.4=VPN=>192.168.0.2 //利用上一步建立的网络连接建立手机到电脑的VPN(b)

                                                               192.168.0.1=共享上网==>本地连接     //利用电脑的共享上网(c)


二.具体办法:

1.电脑=>wifi建立连接(a):

将自己的手机设置为wifi热点,保证XP可以接入手机上的wifi

(1)首先,关闭XP的防火墙,没错,你处于调试状态,防火墙会极大干扰调试。

(2)打开Wireless tetherXP连接到手机上的无线网。以我的为例

手机Wireless tether的网关地址为172.20.21.254,电脑得到的地址为172.20.21.103

2.设置电脑的共享上网(c):控制面板=>本地连接=>属性=>高级=>允许其他用户访问网络,然后将家庭网络连接选中为无线网络连接A(你连接到手机的无线网),确定。此时XP会将无线网AIP更改为192.168.0.1.右键无线网络A(我的为无线网络连接5),属性=>TCP/IP的属性=>高级=>IP设置选项卡,添加172.20.21.103,默认网关添加172.20.21.254.此时将无线网卡设置为双IP地址。XPcmd打开命令行ping 172.20.21.254.说明正常。



3.将XP架设为VPN服务器,android作为VPN客户端访问它(b1)
控制面板=>网络连接=>左边侧边栏=>创建一个新的连接,进入“新建连接向导”,点下一步=>选第四项
设置高级连接,下一步=>接受传入的连接,下一步=>默认直接下一步=>选允许虚拟专用连接,下一步=>选择一个用户,或者创建一个,设置密码(这个用户即为VPN的帐号,密码),下一步=>确定TCP/IP被选中,点属性,如图设置:


要确保地址一定为192.168.0.2192.168.0.X(X>2,我选为127,后面解释原因),确定后点下一步=>完成,这时候出现传入的连接,说明VPN服务器架设完毕。




4.到此时,为了确保万一,你需要测试一下这个VPN(b2)
      (1)打开Better Terminal EmulatorPing172.20.21.103检查网络连接是否正常,导航键按下再按c停止ping(ctrl+c),不正常建议重做一遍,关机重启等

(2)打开android上的设置=>无线和网络=>虚拟专用网设置=>添加虚拟专用网=>选第一个添加VPNPPTP(点对点隧道协议)=>接下来如图填写,名称随意,服务器地址填写172.20.21.103(即你的手机获取到的wifi地址),取消加密,DNS填写google8.8.8.8或者你当地的DNS服务器地址(电脑上用ipconfig /all),完毕保存。=>点击连接,弹出对话框让你输入帐号密码(还记得刚才设置的VPN帐号密码么)=>确定,你的手机将连接电脑上的VPN服务器。如果正常,会显示:一个以你的用户名为名字的连接。WAN微型端口(PPTP),同时传入的连接会显示1客户连接上,恭喜你,跳过以下文字直接看5


如果不正常,手机会显示无法连接。这个时候,我建议你重新启动计算机或网络。


5.再次打开Better Terminal Emulator(b3)

ping 192.168.0.2  //检查网络是否正常,正常往下继续,这个地址是VPN服务器的地址,参见原理图

busybox route add default gw 192.168.0.2  //添加VPN服务器IP到路由表作为默认网关

请仔细看这个图:图中第一条命令busybox route -n是用于查看当前路由信息的,可以不用输入。这些命令可以去参考Linux。



    ping 192.168.0.1  //ping通了外网就通了,ping不通的话有两种情况,一种是没有输入上一步添加路由,另一种是没有完成第2步 
设置电脑的共享上网

//这里的原理解释下,因为手机上发出的数据包全部发送到192.168.0.2(电脑A的VPN服务器IP),又因为192.168.0.1(电脑A无线网卡的主IP地址,参见原理图)与192.168.0.2同一网段,且设置了共享上网,所以XP(电脑A)会自动将192.168.0.2(VPN服务器)的包转到192.168.0.1(无线网卡主IP),而192.168.0.1被设置了与"本地连接"共享上网,所以所有到192.168.0.1的数据包都会转到本地连接,继而进入外网。

ping 8.8.8.8   //防止万一pingDNS


结束了。手机上的所以程序应该都能访问网络了。如果你的电脑有ipv6.改过host或是电脑上有其他代理,那么应该能上youtube等网站。


 

 

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页