架设免费无线热点!基于OpenWrt的TP-MR11U


又一个新年过去了,今年的春节,是我第一次在外地度过,是的,我去了趟北京,这个就留到下次再说吧。

节前,朋友送来了俩馒头,我觉得有必要发个图纪念下这对山东大馒头!

好大的馒头,哇哈哈哈

——————————————————–

今天我要向大家介绍,如何将现有的TP Link路由器,刷开源的OpenWrt固件,并且将其改造为免费提供网络接入的AP,效果类似大家普遍使用的免费接入认证系统。区别是,我这个不需要短信验证,只要点击确认即可!

TP Link MR11U,很新,连膜都没撕掉过,我是不是很温柔?

初衷

基于两个简单的原因,一个是家里这台3G路由器闲置着,另一个是向免费向小区的邻居们提供无线网络。

说实话,前几年,我也没少蹭网,都是别人没有设密码的wifi信号,我很感激他们。因此,现在我也搭建了我家的免费wifi,提供给需要的朋友,也倡导大家一起将家里的带宽充分利用起来。

关于OpenWrt

这个看这里吧:http://www.openwrt.org.cn/

你可以理解为路由器的操作系统。其实路由器就是一台迷你电脑,但是原厂的系统功能比较简单,无法扩展,因此利用openwrt这类第三方的开源固件(操作系统),就能很好的解决我们的需求。作为家用路由器,因为cpu较弱,因此常见的扩展功能有:

1.部署vpn(翻墙、突破公司的网络封锁,也可以用于加强连接外部免费wifi时的通信安全性)

2.外挂USB,作为共享存储(路由器要有USB)

至于其他什么bt下载、挂网站、摄像头之类,我认为价值不大。

关于TP Link MR11U

这是一台3G便携式路由器,带有一个USB口,一个网络口。

4M的ROM(可理解为硬盘),32M的RAM(内存)

是一台适合刷机的路由器,虽然rom不大,但具备usb,则有了扩充的可能性。

我的功能需求简单,4M足够了。

OpenWrt刷机

步骤很简单,这里附一篇:

http://jingyan.baidu.com/article/948f59242fa71cd80ef5f910.html

注意:这篇文章只是介绍路由器的常规设置,我这的具体配置与其有所不同。

配置路由器

这是重点,openwrt的系统,如果不安装LUCI的图形管理界面程序的话,默认需要通过命令行的方式进行管理,其实本质上是通过配置文件进行管理。

因此刷机后的第一步,通常是用网线连接电脑和路由器,通过telnet命令来管理。

我给大家的建议是:使用winscp软件来管理路由器的配置。

 

winscp类似于ftp管理软件,便于大家修改配置文件和上传文件。利用vi命令修改配置文件实在太痛苦……

1.确定网络架构。

需求:

TP Link MR11U运行于客户端模式,通过无线连接主路由,同时自己广播wifi信号,用户可以通过有线Lan和wifi两种方式连接TP路由器。

为了便于管理,我将TP上的有线和无线的网络进行了隔离。无线网络无密码公开使用,有线我自己用来管理TP路由器或上网(类似无线网卡)。

注意:通常原厂固件中的客户端模式,有线和无线是连通的。

上级主路由器,ip地址为192.168.1.1

TP路由器的WAN接口,ip设为192.168.1.2

TP路由器的LAN接口,ip段划分到192.168.2.X

TP路由器的无线接口,ip段划分到10.0.0.X

2.配置路由器的network文件(位于/etc/config/network)

再次提醒:请使用winscp软件连接路由器,否则很痛苦。

注意:

  • 我建立了三个interface,interface的名称自己随便取,这里是lan、wan、guest,注意看他们的ip地址配置
  • 这里的interface和物理接口无关,注意看lan下有一行:ifname ‘eth0’   这个表示lan接口与物理第一个RJ45网线插口绑定,也就是通过网线连接路由器后,进入了lan接口获取对应ip。
  • 下面的wan和guest中都没有定义物理接口。其实常规我们会将该eth0分配给wan,后面的例如eth1,eth2都分配给lan使用。但MR11U这台路由器只有一个网线接口,因此我将它分配给了lan。此外连接上级路由走的是无线,也不需要这个物理网线插口。
  • guest接口就是后续要分配给大伙免费用的

    3.配置路由器的wireless文件(位于/etc/config/wireless)

    注意:

  • 这里有三部分内容,第一部分wifi-device是物理无线设备,不必动。现在新的5G路由器,这里会有两组device,一组发射2.4g信号,另一个是5G信号
  • 第二部分配置用于连接主路由,他的network指向上一节中wan接口,mode是sta,表示客户端模式
  • 第三部分则是发送无密码的wifi信号配置,network指向guest接口,mode为ap

    安装nodogsplash

    它是基于openwrt上的一个插件,用于实现用户登录验证的,具体见:

    https://github.com/nodogsplash/nodogsplash

    这个名称很生动,很有趣,称为nodog。其实他是针对openwrt上的另一款类似插件:wifi dog的,那个配置起来比较复杂,需要自己部署验证服务器,不适合我使用。

    这个没有看门狗(no dog)的很适合我!

    安装插件很简单,telnet连上去后,执行命令:

    opkg updateopkg install nodogsplash
     
    注意:
    有可能执行第一行更新时报错,无法连接服务器,请检查etc/opkg.conf 中的服务器地址,是否发生了变更。
    执行第二行时,可能会提示当前固件版本与服务器上的nodogsplash不匹配,那就先升级现有固件,这里就不展开了,一般不会遇到(但我遇到了,因为我的固件是一个月前下载的,服务器上的版本已升级)

    配置nodogsplash

    官方有个配置范例介绍:http://wiki.openwrt.org/doc/howto/wireless.hotspot.nodogsplash

    但与新版插件不太符合,新版安装后,是没有/etc/nodogsplash/nodogsplash.conf这个配置文件的,需要用winscp手动建立一个

    注意:

    范例中的前半部分都不要参考,只需要复制nodogsplash章节中的配置内容即可(见下图)

    这里面介绍的很详细,一般都不必修改,唯一容易迷惑的同时也需要修改的是这个GatewayInterface配置

    其实它指的是需要由nodog来接管的interface,那就清楚了,本例中就是在network配置中的guest接口,但我们是填写guest吗?

    不是,这时候需要通过ifconfig命令来查看下当前的网络接口配置,见下图。

    我们的guest接口分配的是10.0.0.1,因此它的GatewayInterface名称是wlan0-1

    你也许会问我,那个guest名称去那儿了?别问我,我也不知道……sign

    启动nodog

    键入命令:

    /etc/init.d/nodogsplash start

    查看nodog状态的命令:

    ndsctl status

    最终配置后的nodog状态,注意看第四行,Managed interface :wlan0-1

    自动启动nodog

    你会发现,重启路由后,nodog怎么不启动??

    增加自启动配置!

    • 打开winscp,进入:  /etc/hotplug.d/iface
    • 新建文件:95-nodog
    • 修改95-nodog内容:

    #!/bin/sh

    if [ “$ACTION” = ifup ]; then
        if [ “$DEVICE” = “wlan0-1” ]; then
            /etc/init.d/nodogsplash enabled
        /etc/init.d/nodogsplash start
        fi
    fi

     

     

    具体见图:

    注意看$DEVICE=wlan0-1 这个就是上文中的Gatewayinterface名称,请按需修改

    完成

    用电脑或手机连接wifi后,会跳转至认证页面。这个欢迎页面是可以自行修改的

    /etc/nodogsplash/htdocs/splash.html/etc/nodogsplash/htdocs/infoskel.html/etc/nodogsplash/htdocs/images/splash.jpg
     

    我去,好久没码那么多字了……

    The End


  • 发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注