宿舍区没有无线网,有线网锐捷PC客户端不允许多网卡,就用树莓派开一个热点吧。
下面是教程啦,当然也是参考了许多人的教程和经验才成功的。
本教程假定你已经在树莓派上安装好了系统并且会基本的linux的操作指令。
1.你需要一个树莓派并且使用raspbian系统,当然你也可以使用其他的系统啦,只要你能够完成接下来的步骤。
2.你需要一个USB无线网卡并且你的系统可以识别并且使用它,具体无线网卡的驱动参考其他教程,本来想贴几个教程发现长度限制。
3.接下来就正式进入校园网认证的环节。在linux下就不考虑使用锐捷给的linux客户端了,使用mentohust,点击可以查看项目主页,当然需要科学上网。
mentohust虽然很久没有更新了,但是锐捷似乎更新得更加慢,所以现在还是可以用的。
安装mentohust(参考教程:萤火之光的博客园)
先安装libpcap
- sudo apt-get install libpcap-dev
复制代码 再检查一下一些编译用的组件,没有的会自动安装上
- sudo apt-get install autotools-dev libgtk2.0-dev libscim-dev libtool automake1.9
复制代码 安装git
再下载mentohust源码
- git clone https://github.com/microcai/mentohust.git
- cd mentohust
- sh autogen.sh
复制代码 编译并安装
- ./configure --prefix=/usr
- make && sudo make install
复制代码 给程序授予超级用户权限(mentohust要求root权限)- sudo chmod u+s /usr/bin/mentohust
复制代码 运行mentohust
- 欢迎使用MentoHUST 版本: 0.3.1
- Copyright (C) 2009-2010 HustMoon Studio
- 人到华中大,有甜亦有辣。明德厚学地,求是创新家。
- Bug report to http://code.google.com/p/mentohust/issues/list
- 用法: mentohust [-选项][参数]
- 选项: -h 显示本帮助信息
- -k -k(退出程序) 其他(重启程序)
- -w 保存参数到配置文件
- -u 用户名
- -p 密码
- -n 网卡名
- -i IP[默认本机IP]
- -m 子网掩码[默认本机掩码]
- -g 网关[默认0.0.0.0]
- -s DNS[默认0.0.0.0]
- -o Ping主机[默认0.0.0.0,表示关闭该功能]
- -t 认证超时(秒)[默认8]
- -e 心跳间隔(秒)[默认30]
- -r 失败等待(秒)[默认15]
- -l 允许失败次数[0表示无限制,默认8]
- -a 组播地址: 0(标准) 1(锐捷) 2(赛尔) [默认0]
- -d DHCP方式: 0(不使用) 1(二次认证) 2(认证后) 3(认证前) [默认0]
- -b 是否后台运行: 0(否) 1(是,关闭输出) 2(是,保留输出) 3(是,输出到文件) [默认0]
- -y 是否显示通知: 0(否) 1~20(是) [默认5]
- -v 客户端版本号[默认0.00表示兼容xrgsu]
- -f 自定义数据文件[默认不使用]
- -c DHCP脚本[默认dhclient]
- -q 显示SuConfig.dat的内容(如-q/path/SuConfig.dat)
- 例如: mentohust -uusername -ppassword -neth0 -i192.168.0.1 -m255.255.255.0 -g0.0.0.0
- -s0.0.0.0 -o0.0.0.0 -t8 -e30 -r15 -a0 -d1 -b0 -v4.10 -fdefault.mpf -cdhclient
- 注意:使用时请确保是以root权限运行!
复制代码 到这里就应该已经可以用mentohust认证校园网并且上网了,各个学校的配置参数并不一样,参考运行mentohust时的命令进行配置
4.打造无线路由器
在已经成功认证了的情况下,就可以使用USB无线网卡进行无线热点的创建了。
在linux系统下面创造一个无线热点是比较简单的事情,大致分为如下几个步骤:(1)安装hostapd (2)安装dhcp服务(3)配置路由转发。
接下来就是具体的实现了(参考教程:王晔的流水账)
(1)安装hostapd
- sudo apt-get install bridge-utils hostapd
复制代码 hostapd实现的是无线共享,但需要注意的是官方提供的程序不兼容RTL8188CUS芯片的无线网卡,不过Edimax团队为我们专门编译了兼容的版本,下面的操作需要替换hostapd为兼容版本。
由于我的无线网卡是TRL8188CU的芯片,所以进行替换,替换的命令如下:
- wget http://www.daveconroy.com/wp3/wp-content/uploads/2013/07/hostapd.zip
- unzip hostapd.zip
- sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.bak
- sudo mv hostapd /usr/sbin/hostapd.edimax
- sudo ln -sf /usr/sbin/hostapd.edimax /usr/sbin/hostapd
- sudo chown root.root /usr/sbin/hostapd
- sudo chmod 755 /usr/sbin/hostapd
复制代码
(2)安装dhcp服务
这里我选择使用教程上的udhcpd,不过似乎有些不稳定,推荐使用isc-dhcp-server
- sudo apt-get install udhcpd
复制代码 配置udhcpd,编辑/etc/udhcpd.conf,主要内容如下:
- start 192.168.42.2 # This is the range of IPs that the hostspot will give to client devices.
- end 192.168.42.20
- interface wlan0 # The device uDHCP listens on.
- remaining yes
- opt dns 8.8.8.8 4.2.2.2 # The DNS servers client devices will use.
- opt subnet 255.255.255.0
- opt router 192.168.42.1 # The Pi's IP address on wlan0 which we will set up shortly.
- opt lease 864000 # 10 day DHCP lease time in seconds
复制代码 接下来编辑/etc/default/udhcpd并且将这行添加注释符号“#”,以使DHCP Server正常工作:
通过下面的命令给无线网卡设置一个IP地址:
- sudo ifconfig wlan0 192.168.42.1
复制代码 当然为了下次启动仍然有效,我们需要配置/etc/network/interfaces文件:
- sudo nano /etc/network/interfaces
复制代码 注释掉所有的关于无线网卡的部分,最后应该变成下面所示:
编辑hostapd配置
- sudo nano /etc/hostapd/hostapd.conf
复制代码 内容如下:
- interface=wlan0
- driver=rtl871xdrv
- ssid=My_SSID_Name
- hw_mode=g
- channel=6
- macaddr_acl=0
- auth_algs=1
- ignore_broadcast_ssid=0
- wpa=2
- wpa_passphrase=MYPASSWORD
- wpa_key_mgmt=WPA-PSK
- wpa_pairwise=TKIP
- rsn_pairwise=CCMP
复制代码 这里的ssid是你的wifi热点的名字,wpa_passphrase是你的热点的密码
(3)配置路由转发
启动IP转向功能以便于开通NAT- sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
复制代码 编辑/etc/sysctl.conf改动下面这行:配置iptables防火墙- sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
- sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
复制代码 到这里路由的NAT功能已经被启用,我们将刚才配置的iptables保存下来以便于下次使用:- sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
复制代码 编辑/etc/network/interfaces然后在最后加上下面这行以使每次启动都自动加载iptables配置:- up iptables-restore < /etc/iptables.ipv4.nat
复制代码 重启并测试hostapd重启完成后,使用下面的命令测试是否正确:- sudo hostapd -dd /etc/hostapd/hostapd.conf
复制代码如果没有错误的话,你这时应该能搜索到你所配置的无线信号。然后Ctrl+C退出这个测试。
接下来设置hostapd的配置文件路径 - sudo nano /etc/default/hostapd
复制代码 去掉注释符号并改动下面这行为我们的配置文件路径:- DAEMON_CONF="/etc/hostapd/hostapd.conf"
复制代码 启动相应软件,并加入启动项
- sudo service hostapd start
- sudo service udhcpd start
- sudo update-rc.d hostapd enable
- sudo update-rc.d udhcpd enable
复制代码 修改ifplugd:
- sudo nano /etc/default/ifplugd
复制代码 内容如下:
- INTERFACES="eth0"
- HOTPLUG_INTERFACES="eth0"
- ARGS="-q -f -u0 -d10 -w -I"
- SUSPEND_ACTION="stop"
复制代码 到这里就OK啦,如果有不稳定就重启啦,只要你曾经连上过,就一定可以的。 |