本文亦在此处更新:
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 tether,XP连接到手机上的无线网。以我的为例 手机Wireless tether的网关地址为172.20.21.254,电脑得到的地址为172.20.21.103 2.设置电脑的共享上网(c):控制面板=>本地连接=>属性=>高级=>允许其他用户访问网络,然后将家庭网络连接选中为无线网络连接A(你连接到手机的无线网),确定。此时XP会将无线网A的IP更改为192.168.0.1.右键无线网络A(我的为无线网络连接5),属性=>TCP/IP的属性=>高级=>IP设置选项卡,添加172.20.21.103,默认网关添加172.20.21.254.此时将无线网卡设置为双IP地址。XP上cmd打开命令行ping 172.20.21.254.说明正常。 3.将XP架设为VPN服务器,android作为VPN客户端访问它(b1)。 控制面板=>网络连接=>左边侧边栏=>创建一个新的连接,进入“新建连接向导”,点下一步=>选第四项 设置高级连接,下一步=>接受传入的连接,下一步=>默认直接下一步=>选允许虚拟专用连接,下一步=>选择一个用户,或者创建一个,设置密码(这个用户即为VPN的帐号,密码),下一步=>确定TCP/IP被选中,点属性,如图设置: 要确保地址一定为192.168.0.2和192.168.0.X(X>2,我选为127,后面解释原因),确定后点下一步=>完成,这时候出现传入的连接,说明VPN服务器架设完毕。 4.到此时,为了确保万一,你需要测试一下这个VPN(b2) (1)打开Better Terminal Emulator:Ping172.20.21.103检查网络连接是否正常,导航键按下再按c停止ping(ctrl+c),不正常建议重做一遍,关机重启等 (2)打开android上的设置=>无线和网络=>虚拟专用网设置=>添加虚拟专用网=>选第一个添加VPN“PPTP”(点对点隧道协议)=>接下来如图填写,名称随意,服务器地址填写172.20.21.103(即你的手机获取到的wifi地址),取消加密,DNS填写google的8.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。
//这里的原理解释下,因为手机上发出的数据包全部发送到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 //防止万一ping下DNS 结束了。手机上的所以程序应该都能访问网络了。如果你的电脑有ipv6.改过host或是电脑上有其他代理,那么应该能上youtube等网站。
|