树莓派2打造无线路由器
宿舍区没有无线网,有线网锐捷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
sudo apt-get install 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 允许失败次数
-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 hostapdhostapd实现的是无线共享,但需要注意的是官方提供的程序不兼容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正常工作:
#DHCPD_ENABLED="no"通过下面的命令给无线网卡设置一个IP地址:
sudo ifconfig wlan0 192.168.42.1当然为了下次启动仍然有效,我们需要配置/etc/network/interfaces文件:
sudo nano /etc/network/interfaces注释掉所有的关于无线网卡的部分,最后应该变成下面所示:
allow-hotplug wlan0 编辑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转向功能以便于开通NATsudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"编辑/etc/sysctl.conf改动下面这行:net.ipv4.ip_forward=1配置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重启并测试hostapdsudo reboot重启完成后,使用下面的命令测试是否正确: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啦,如果有不稳定就重启啦,只要你曾经连上过,就一定可以的。 谢谢分享,学习中。。。 Thanks for sharing.
页:
[1]