您的位置:首页 > 运维架构 > Linux

Android手机连接笔记本电脑上网 linux环境

2011-09-19 17:43 302 查看
前言

我的电脑有无线网卡,但是没有无线路由。我上网是从很远的地方拉的线,因此上网的时候是走的是有线,无线网卡基本上处于失业状态。同时,我的手机

用的是移动的GSM卡,要想体现Android的乐趣,上网无疑是一个好的实现方案。由于电脑和有机都有无线网络,因此考虑手机链接到电脑上,然后通过电脑

对数据包进行转发,进而达到上网目的。

准备

1.手机:中兴x876,运此android 2.1

2.笔记本电脑:Toshiba L311,已经有网线连接并可以上网。运行系统:Debian Sid,内核是2.6.32。本的许多说明,如果不特别说明,都是指在Debian下。

方案

笔记本电脑的网卡作为热点,方法有二

一。网卡的运行模式为Ad-hoc,手机通过搜索Ad-hoc与电脑链接。

试验证明这个方法不行(或者说不容易),因为Android2.1似乎不支持搜索AD-Hoc网络。尝试了网络上介绍的修改tiwlan.ini和wpa_supplicant.conf的方

法,不成功。另外也找到有网友说Android2.1不支持Ad-hoc,不要浪费时间,因此放弃。

二,网卡运此的模式为Master模式

在这里,不能使用iwconfig设置网卡的模式为master,而是通过另外一个工具hostapd.

1.下载hostapd,对于Debian/Ubuntu用户,可以这样下载安装

# apt-get install hostapd

之后配置hostapd,从例子中拷贝一份配置文件,如下:

# zcat /usr/share/doc/hostapd/examples/hostapd.conf.gz > /etc/hostapd/hostapd.conf

然后使用你喜爱的编辑器修改文件/etc/hostapd/hostapd.conf,要修改的部分包括:

interface=wlan0

wlan0是我的无线网卡,如果你的无线网卡是其他的名字,改成相应的即可。

driver=nl80211

driver一定要设置为nl80211

ssid=mytest

ssid是手机搜索网络时看到的名字,这里设置为mytest,也可以是其他。

然后可以通过启动一个终端,运行:

#hostapd /etc/hostapd/hostapd.conf

来启动。这时hostapd并没有运行在后台,如果想要运行在后台,加参数‘-B’,具体见hostapd的帮助。

这时候,已经可以通过手机链接电脑了,但是还无法获得IP地址,因此在电脑上还需要安装DHCP服务器。

使用apt命令可以快速安装,如下:

# apt-get install isc-dhcp-server

安装晚成后,对其进行配置。同样,可以从例子中复制一份,然后修改,如下:

# cp /usr/share/doc/isc-dhcp-server/examples/dhcpd.conf /etc/dhcp/dhcpd.conf

然后用你喜爱的编辑器打开/etc/dhcp/dhcpd.conf,修改以下部分

...

subnet 10.5.5.0 netmask 255.255.255.224 {

range 10.5.5.26 10.5.5.30;

option domain-name-servers ns1.internal.example.org;

option domain-name "internal.example.org";

option routers 10.5.5.1;

option broadcast-address 10.5.5.31;

default-lease-time 600;

max-lease-time 7200;

}

...

这里几乎是把例子中的注释去掉而已,没有增加什么内容。要注意的是这行

option routers 10.5.5.1;

这个IP地址,10.5.5.1是无线网卡的地址。因为我们手机要通过电脑的无线网卡上网,因此无线网卡的IP地址就成了手机的路由器的地址。

前面我们还没有配置无线网卡wlan0的IP地址,现在来配置:

# ifconfig wlan0 10.5.5.1

接着在另外的终端上启动dhcpd服务:

# dhcpd

这个时候,在手机上,会扫描到mytest(我们前面设置的ssid)这个网络,同时也可以获得IP,但是也还不能上网,为什么?

因为我们在笔记本电脑上还没有设置IP转发,数据从手机到达电脑后,就被丢弃了,所以不能访问网络。因此还有最后一步:在

笔记本电脑上设置IP转发,以root身份执行以下几个命令即可:

# iptables -F

# iptables -P INPUT ACCEPT

# iptables -P FORWARD ACCEPT

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

这个时候,在手机上打开浏览器,就可访问Google和其他网页了,当然,也包括电子市场。

后记

通过手机连笔记本上网,不仅可以从分利用资源,也可以体验充分体验ANdroid的乐趣。本文为那些没有开通3G服务或者想为3G账户节约流量的用户

提供了一种可行的办法。本文的实验基于于x876,理论上,其他的Android手机,甚至非android手机也适用。当然,本文也有不足,首先是本文中

笔记本运行的是Debian系统,对于Windows用户来说不适用。其次,hostapd没有以守护进程的方式运行,每次重启系统后,需要手动运行。另外,

本文也没有解决认证问题,这意为着隔壁的某个用户,如果它可以访问到我的电脑,那么它也可以通过我的电脑进行上网。欢迎读者改进!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐