树莓派论坛

 找回密码
 立即注册

树莓派2打造无线路由器

x7395759 发表于 2015-4-7 16:32:06 | 显示全部楼层 |阅读模式

宿舍区没有无线网,有线网锐捷PC客户端不允许多网卡,就用树莓派开一个热点吧。

下面是教程啦,当然也是参考了许多人的教程和经验才成功的。
本教程假定你已经在树莓派上安装好了系统并且会基本的linux的操作指令。


1.你需要一个树莓派并且使用raspbian系统,当然你也可以使用其他的系统啦,只要你能够完成接下来的步骤。
2.你需要一个USB无线网卡并且你的系统可以识别并且使用它,具体无线网卡的驱动参考其他教程,本来想贴几个教程发现长度限制。


3.接下来就正式进入校园网认证的环节。在linux下就不考虑使用锐捷给的linux客户端了,使用mentohust,点击可以查看项目主页,当然需要科学上网。
mentohust虽然很久没有更新了,但是锐捷似乎更新得更加慢,所以现在还是可以用的。


安装mentohust(参考教程:萤火之光的博客园

先安装libpcap
  1. sudo apt-get install libpcap-dev
复制代码
再检查一下一些编译用的组件,没有的会自动安装上
  1. sudo apt-get install autotools-dev libgtk2.0-dev libscim-dev libtool automake1.9
复制代码
安装git
  1. sudo apt-get install git
复制代码
再下载mentohust源码
  1. git clone https://github.com/microcai/mentohust.git
  2. cd mentohust
  3. sh autogen.sh
复制代码
编译并安装
  1. ./configure --prefix=/usr
  2. make && sudo make install
复制代码
给程序授予超级用户权限(mentohust要求root权限)
  1. sudo chmod u+s /usr/bin/mentohust
复制代码
运行mentohust
  1. 欢迎使用MentoHUST        版本: 0.3.1
  2. Copyright (C) 2009-2010 HustMoon Studio
  3. 人到华中大,有甜亦有辣。明德厚学地,求是创新家。
  4. Bug report to http://code.google.com/p/mentohust/issues/list

  5. 用法:    mentohust [-选项][参数]
  6. 选项: -h 显示本帮助信息
  7.         -k -k(退出程序) 其他(重启程序)
  8.         -w 保存参数到配置文件
  9.         -u 用户名
  10.         -p 密码
  11.         -n 网卡名
  12.         -i IP[默认本机IP]
  13.         -m 子网掩码[默认本机掩码]
  14.         -g 网关[默认0.0.0.0]
  15.         -s DNS[默认0.0.0.0]
  16.         -o Ping主机[默认0.0.0.0,表示关闭该功能]
  17.         -t 认证超时(秒)[默认8]
  18.         -e 心跳间隔(秒)[默认30]
  19.         -r 失败等待(秒)[默认15]
  20.         -l 允许失败次数[0表示无限制,默认8]
  21.         -a 组播地址: 0(标准) 1(锐捷) 2(赛尔) [默认0]
  22.         -d DHCP方式: 0(不使用) 1(二次认证) 2(认证后) 3(认证前) [默认0]
  23.         -b 是否后台运行: 0(否) 1(是,关闭输出) 2(是,保留输出) 3(是,输出到文件) [默认0]
  24.         -y 是否显示通知: 0(否) 1~20(是) [默认5]
  25.         -v 客户端版本号[默认0.00表示兼容xrgsu]
  26.         -f 自定义数据文件[默认不使用]
  27.         -c DHCP脚本[默认dhclient]
  28.         -q 显示SuConfig.dat的内容(如-q/path/SuConfig.dat)
  29. 例如:     mentohust -uusername -ppassword -neth0 -i192.168.0.1 -m255.255.255.0 -g0.0.0.0
  30. -s0.0.0.0 -o0.0.0.0 -t8 -e30 -r15 -a0 -d1 -b0 -v4.10 -fdefault.mpf -cdhclient
  31. 注意:使用时请确保是以root权限运行!
复制代码
到这里就应该已经可以用mentohust认证校园网并且上网了,各个学校的配置参数并不一样,参考运行mentohust时的命令进行配置

4.打造无线路由器

在已经成功认证了的情况下,就可以使用USB无线网卡进行无线热点的创建了。
在linux系统下面创造一个无线热点是比较简单的事情,大致分为如下几个步骤:(1)安装hostapd (2)安装dhcp服务(3)配置路由转发。

接下来就是具体的实现了(参考教程:王晔的流水账

(1)安装hostapd
  1. sudo apt-get install bridge-utils hostapd
复制代码
hostapd实现的是无线共享,但需要注意的是官方提供的程序不兼容RTL8188CUS芯片的无线网卡,不过Edimax团队为我们专门编译了兼容的版本,下面的操作需要替换hostapd为兼容版本。
由于我的无线网卡是TRL8188CU的芯片,所以进行替换,替换的命令如下:
  1. wget http://www.daveconroy.com/wp3/wp-content/uploads/2013/07/hostapd.zip
  2. unzip hostapd.zip
  3. sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.bak
  4. sudo mv hostapd /usr/sbin/hostapd.edimax
  5. sudo ln -sf /usr/sbin/hostapd.edimax /usr/sbin/hostapd
  6. sudo chown root.root /usr/sbin/hostapd
  7. sudo chmod 755 /usr/sbin/hostapd
复制代码

(2)安装dhcp服务
这里我选择使用教程上的udhcpd,不过似乎有些不稳定,推荐使用isc-dhcp-server
  1. sudo apt-get install udhcpd
复制代码
配置udhcpd,编辑/etc/udhcpd.conf,主要内容如下:
  1. start 192.168.42.2 # This is the range of IPs that the hostspot will give to client devices.
  2. end 192.168.42.20
  3. interface wlan0 # The device uDHCP listens on.
  4. remaining yes
  5. opt dns 8.8.8.8 4.2.2.2 # The DNS servers client devices will use.
  6. opt subnet 255.255.255.0
  7. opt router 192.168.42.1 # The Pi's IP address on wlan0 which we will set up shortly.
  8. opt lease 864000 # 10 day DHCP lease time in seconds
复制代码
接下来编辑/etc/default/udhcpd并且将这行添加注释符号“#”,以使DHCP Server正常工作:
  1. #DHCPD_ENABLED="no"
复制代码
通过下面的命令给无线网卡设置一个IP地址:
  1. sudo ifconfig wlan0 192.168.42.1
复制代码
当然为了下次启动仍然有效,我们需要配置/etc/network/interfaces文件:
  1. sudo nano /etc/network/interfaces
复制代码
注释掉所有的关于无线网卡的部分,最后应该变成下面所示:
  1. allow-hotplug wlan0
复制代码
编辑hostapd配置
  1. sudo nano /etc/hostapd/hostapd.conf
复制代码
内容如下:
  1. interface=wlan0
  2. driver=rtl871xdrv
  3. ssid=My_SSID_Name
  4. hw_mode=g
  5. channel=6
  6. macaddr_acl=0
  7. auth_algs=1
  8. ignore_broadcast_ssid=0
  9. wpa=2
  10. wpa_passphrase=MYPASSWORD
  11. wpa_key_mgmt=WPA-PSK
  12. wpa_pairwise=TKIP
  13. rsn_pairwise=CCMP
复制代码
这里的ssid是你的wifi热点的名字,wpa_passphrase是你的热点的密码


(3)配置路由转发
启动IP转向功能以便于开通NAT
  1. sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
复制代码
编辑/etc/sysctl.conf改动下面这行:
  1. net.ipv4.ip_forward=1
复制代码
配置iptables防火墙
  1. sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  2. sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
  3. sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
复制代码
到这里路由的NAT功能已经被启用,我们将刚才配置的iptables保存下来以便于下次使用:
  1. sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
复制代码
编辑/etc/network/interfaces然后在最后加上下面这行以使每次启动都自动加载iptables配置:
  1. up iptables-restore < /etc/iptables.ipv4.nat
复制代码
重启并测试hostapd
  1. sudo reboot
复制代码
重启完成后,使用下面的命令测试是否正确:
  1. sudo hostapd -dd /etc/hostapd/hostapd.conf
复制代码

如果没有错误的话,你这时应该能搜索到你所配置的无线信号。然后Ctrl+C退出这个测试。


接下来设置hostapd的配置文件路径

  1. sudo nano /etc/default/hostapd
复制代码
去掉注释符号并改动下面这行为我们的配置文件路径:
  1. DAEMON_CONF="/etc/hostapd/hostapd.conf"
复制代码
启动相应软件,并加入启动项
  1. sudo service hostapd start
  2. sudo service udhcpd start
  3. sudo update-rc.d hostapd enable
  4. sudo update-rc.d udhcpd enable
复制代码
修改ifplugd:
  1. sudo nano /etc/default/ifplugd
复制代码
内容如下:
  1. INTERFACES="eth0"
  2. HOTPLUG_INTERFACES="eth0"
  3. ARGS="-q -f -u0 -d10 -w -I"
  4. SUSPEND_ACTION="stop"
复制代码
到这里就OK啦,如果有不稳定就重启啦,只要你曾经连上过,就一定可以的。

打造无线路由器.txt

9.6 KB, 下载次数: 145

排版完全不能看。

teddyrpi 发表于 2015-4-22 12:34:15 | 显示全部楼层
谢谢分享,学习中。。。
Cobra 发表于 2015-6-4 11:59:24 | 显示全部楼层
Thanks for sharing.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版 | Archiver | 树莓派论坛 ( 粤ICP备15075382号-1 )