用『OpenWRT』进行WIFI接力——扩大WIFI覆盖范围

用『OpenWRT』进行WIFI接力——扩大WIFI覆盖范围
6 votes, 5.00 avg. rating (99% score)
转载请注明: 吹水小镇 | reetsee.com
原文链接地址: http://blog.reetsee.com/archives/230

wifi-relay

因为准备去实习,所以把宿舍很多东西都带回家了,包括一个装了OpenWRT的路由器WR703N。

Step 0 : 为什么要这么做

在家里有一个地方不爽,就是WIFI的信号覆盖不到我的房间,所以我就想这个时候进行一下WIFI的接力,用WR703N接收WIFI使其能连接网络,然后同时发出WIFI,好让我在房间可以上网。

有的路由器本身就有WIFI接力的功能,所以我写这篇东西是因为我的路由器已经装了OpenWRT了必须要进行配置才行,在这里就把配置过程写出来。下面也会教你怎么安装OpenWRT。

Step 1 : 安装OpenWRT并使其发WIFI,然后用ssh连接

这比起上一篇教程《路由器连接校园网并发WIFI:WR703N路由器安装OpenWRT并运行H3C客户端操作步骤(主要针对中山大学东校区)》要方便不少,首先你需要安装好OpenWRT到你的路由器,安装方法(对于WR703N)请参见这个句子前面所说的那篇教程的Step 1 ~ Step 6

通过上面的步骤,你已经可以连接到你的路由器发出来的WIFI啦,然后使用命令:

ssh root@192.168.1.1

或者使用Windows下的putty软件连接到OpenWRT(不能使用ssh?参照上面那篇文章看是不是telnet的时候没有修改密码)。

Step 2 : 关于WIFI接力的个人推断(这一步跳过也没有问题)

我有一个十分不正式的理解,到底这个WIFI接力是怎么实现的?我个人推断是这样:首先你的OpenWRT连接其他人(或者是你家里)发出来的WIFI(称为WIFI1),组成了一个网络a,这个时候网络a是可以连接互联网的;然后你的OpenWRT自己发出了另外一个WIFI(称为WIFI2),你的电脑连接到WIFI2,组成了网络b。要让网络b中的设备能够连接互联网,必须将网络a和网络b打通才行。

可能会有人觉得奇怪,网络a中的OpenWRT是可以联网的,那么这个OpenWRT发出的WIFI2为什么是不能联网的?因为……说起来比较复杂,涉及到静态IP,DHCP等东西,我自己也没有搞得很明白,不过各位就记住网络a和网络b需要通过一些方法进行连接起来才能用。

以下划了删除线的部分请各位跳过,因为个人推断的成分太过多。

但是不求甚解不太好啊!要看解释的同学,请参见下面的蓝色字部分,嫌麻烦的同学直接跳过即可,因为只要按部就班地配置也能配出来。

那么我就开始解释了:

首先讲网络b,这是我们已经配置好的,电脑可以通过WIFI2连接到OpenWRT了,WIFI2是由一个设备发射出来的,这个设备被绑定到lan这个接口,/etc/config/wireless文件中“option network lan”这一行就是这个意思。当我们连接OpenWRT发出的WIFI2时,我们可以通过192.168.1.1这个地址访问OpenWRT,为什么呢?因为我们设置了lan的IP是固定的,如果这个IP不固定,那么我们还怎么连接到OpenWRT?这不是简单地接一个线就能解决的问题,一定要由一个固定的地址可以进行访问。

然后讲网络a,网络a中OpenWRT连接到了WIFI1,发出WIFI1的那个设备的网络接口也有一个固定的IP地址(通常是192.168.1.1),而连接WIFI1的网络接口的IP地址是多少呢?这个就不确定了,是由发出WIFI1的那个设备按照一定的规则(也可能是随机)分配的,因此OpenWRT连接WIFI1的那个网络接口IP地址就有可能是192.168.1.2 … 192.168.1.255,是不固定的。

我在事后发现,WR703N的OpenWRT本身就已经把两个网络a和网络b接起来了,来自网络b的请求会自动转发到网络a。如果你的OpenWRT不是这样,请参见http://wiki.openwrt.org/doc/recipes/relayclient。

Step 3 : 让OpenWRT能连接WIFI

上一段说了一些完全不知道对不对的理论,现在开始实际操作,首先编辑/etc/config下的wireless文件,命令是:

vi /etc/config/wireless

在“#option disabled 1”这一行下面加入OpenWRT连接WIFI的配置,内容如下:

config wifi-iface 'wlan0'                 
        option device   'radio0'          
        option network  'wan'             
        option mode     'sta'             
        option ssid     要连接到的WIFI名称  
        option encryption 'psk2'        
        option key      那个WIFI的连接密码是多少

然后按Esc退到普通模式,输入“:wq”保存并退出。

Step 4 : 让OpenWRT对WIFI进行接力

接着编辑/etc/config下的network文件,命令是:

vi /etc/config/network

好啦这里要注意,首先将原本的“option ipaddr ‘192.168.1.1’”改为“option ipaddr ‘192.168.2.1’”,其次在文件的最末尾加上以下内容:

config interface 'wan'
        option proto 'dhcp'
        option ifname 'wlan0'

接着保存并退出。

Step 5 : 注意事项及结果验证

这个时候要注意了!你以后要连接到OpenWRT不再是输入“ssh root@192.168.1.1”,而是输入“ssh root@192.168.2.1”,一定要记住啦!

最后输入以下命令重启OpenWRT:

reboot && exit

重启后连接到OpenWRT的WIFI,看是不是可以上网了。这样WIFI接力就完成啦~

——————教程结束——————

如果按照以上设置没有成功,有可能是有的地方配置不对,也可能是OpenWRT 版本的不同造成的。对于后面一种情况,可以参考一下划了删除线的部分,那个部分其实不太完整,我没有将所有的操作过程都贴出来(因为发现在WR703N上不用那么操作也能达到目的),同时参照这个地址http://wiki.openwrt.org/doc/recipes/relayclient,进行设置。

参考资料:

http://wiki.openwrt.org/doc/recipes/relayclient

http://wiki.openwrt.org/zh-cn/doc/uci/network

http://wiki.openwrt.org/zh-cn/doc/uci/wireless

转载请注明: 吹水小镇 | reetsee.com
原文链接地址: http://blog.reetsee.com/archives/230


咦,怎么会有个支付宝链接?
这些Money用来写新网站好了


用『OpenWRT』进行WIFI接力——扩大WIFI覆盖范围
6 votes, 5.00 avg. rating (99% score)

3 条思考于 “用『OpenWRT』进行WIFI接力——扩大WIFI覆盖范围

发表评论

电子邮件地址不会被公开。 必填项已用*标注