听说学校下半学期就要开始一人一账号了,原本还是一个宿舍一个账号,一栋楼全都是奇葩的WiFi名字,不得不说这在某几个方面是倒退的政策,我就在想能不能实现用一个账号来实现一个宿舍全部共享网络呢?
正好手头有一个闲置的树莓派,上面装的是archlinux操作系统,Linux系统是所有路由器都装载的系统,并且Linux给予操作系统和网络最大的自由度。
直接想到的想法是用树莓派的网络接口连接宿舍的校园网接口,再用树莓派上原有的wlan接口创建一个ap热点,中间进行数据包NAT转发,这样是不是一个可行的办法呢?理论指导实践,实践是检验真理的唯一标准。
先在树莓派上创建一个AP热点,这样就可以用笔记本的无线网卡连接Linux,这样才能去用有线连接校园网接口,原本可以用hostpd(把无线网卡改为ap热点模式)加上udhcpd(提供DHCP服务,客户端自动获取IP地址),但是有人把这些需要复杂配置的步骤直接写进一个脚本里面了,那就是create_ap, 用这个照着百度直接配置ap热点,现在就会出现一个热点,用笔记本连接热点,ssh登录上去,操作终端。 ssh登录这个问题是解决了,但是现在树莓派还是不能上网,因为校园网是必须在认证之后再能上网,认证手段使用的是802.1x方法认证,本来是想直接抓包自己写客户端,可是百度到中科大已经早已经写好了Linux平台下的锐捷认证,为啥不直接使用校园网自带的Linux认证呢,因为校园网上的认证工具是直接编译好的,而他们只编译了x86_64的CPU框架的代码,而且源代码并没用公布,所以只能用中科大的开源工具。
去github上下载了中科大的mentohust代码,一个编译步骤困扰了一下午,编译成功后,一直提示,不允许使用本服务,弄了半年原来是下载的代码是错误的,选择了另一个版本的mentohust,直接可以使用了,然后按照使用步骤可以进行上网了,在树莓派成功拨号以后,现在ap热点也可以上网了,所以就成功实现了一个账号多个客户端上网。
为什么费这么大功夫去Linux下实现这个功能呢,Windows下不是也有WiFi共享工具吗?
是有共享工具,但是win下的工具会自动检测电脑上有没有像猎豹这种WiFi共享工具,一旦检测到就直接给你下线,所以不能在win下实现这个,并且一般同学并没用树莓派(树莓派并不是一个专门的路由器),但是现在的一些tplink、极路由、华为路由器、360WiFi路由器、小米路由器都可以刷openwrt这个专门在路由器上的Linux发行版,因为这个原因我并没有把一个详细的操作步骤贴出来,因为贴出来也用不到,过段时间我会把宿舍的一个360WiFi,刷成openwrt,再在这个发行版上详细实现并讲解共享锐捷校园网。
网友评论