因为准备去实习,所以把宿舍很多东西都带回家了,包括一个装了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
文章作者:fanfank@CSDN