设为首页 收藏本站
查看: 1416|回复: 0

[经验分享] 将树莓派Raspberry Pi设置为无线路由器(WiFi热点AP,RTL8188CUS芯片)

[复制链接]

尚未签到

发表于 2015-10-1 11:45:06 | 显示全部楼层 |阅读模式
  http://wangye.org/blog/archives/845/
  最近又开始折腾起Raspberry Pi来了,因为某处上网需要锐捷拨号,于是我就想能不能让我的树莓派代劳,当然首先要将其改造为路由器,默认自带的网口作为WAN口,我们还缺一个网口, 木有办法,只好占用一个USB口,接上一个USB网卡,网上的USB转RJ45网线口的适配器比较少,价格也不便宜,于是就考虑干脆将其改造成无线路由, 也符合时下高端大气上档次的标准。
  准备工作,当然要先去购买一个USB无线网卡,可以购买的型号比较多,Raspberry Pi官方也提供了兼容性列表供大家参考,具体猛击这里。我这里购买的是网件(Netgear)WNA1000M 150M迷你USB无线网卡
  较为官方的介绍配置为无线热点的文章莫过于这一篇《RPI-Wireless-Hotspot》。但是实际配置下来始终无法成功。但是无线网卡确实能够被识别,可以通过lsusb和lsmod查看到,不过我注意到这款无线的芯片型号是RealTek RTL8188CUS,初步怀疑是驱动问题。
   DSC0000.png
  当然看到别人的老款无线网卡都配置成功了心里难免痒痒的,当然也不能再浪费银子去再买个网卡,于是只好自己摸索,不过天无绝人之路,在N次刷机重装系统后,终于找到了成功的办法,其实关键的文章就在上面那篇文章的一个链接中《Turn Your Raspberry Pi Into a WiFi Hotspot with Edimax Nano USB EW-7811Un (RTL8188CUS chipset)》。
  好了,下面我将实践的过程记录下来供大家参考,当然主要参考了上面两篇文章,这里是配置的回忆,我尽量记录详细,遗漏之处望指出。
  1. 安装系统(如果系统已经安装可以跳过这一步)
  1.1 尽量使用最新系统,首先下载官方最新镜像,然后使用Win32DiskImager烧录到SD卡上。注意这里我们选用的是Raspbian。
  1.2 Raspberry Pi连接上无线网卡,然后系统镜像刷入SD卡后,我们连接显示器键盘和鼠标进行初始化配置工作,当然没有条件的话推荐直接使用SSH连接Raspberry Pi,这样更方便,因为新系统默认开放了SSH管理。
DSC0001.png
  连接信息主要如下:

主机名 : raspberrypi
用户名 : pi
密  码 : raspberry
  如果你是直接通过SSH连接到Raspberry Pi的话,下面的配置步骤是必要的:
  1.2.1 初始化配置,下面的配置只有在新安装的系统内需要,仅做一次。
  运行下面的命令,进入配置界面:




sudo raspi-config
DSC0002.png DSC0003.png
  推荐更新下面的配置选项(新配置界面):

1 Expand Filesystem
2 Change User Password
4 Internationalisation Options
I1 Change Locale
I2 Change Timezone
8 Advanced Options
A3 Memory Split
A6 Update
  (旧配置界面)

update
expand_rootfs
change_pass
change_timezone
memory_split
  这里要注意Memory Split/memory_split,默认预留给图形界面的是64MB,作为一台无线路由基本上就用不到图形界面了,很显然64MB略有奢侈,我们将其改成32MB
  最后Finish完成初始化配置。系统会自动提示重启,如果没有按预期重启,请使用下面的命令重启系统:




sudo shutdown -r now
  2. 安装hotspot(hostapd)




sudo apt-get install bridge-utils hostapd
  hostapd实现的是无线共享,但需要注意的是官方提供的程序不兼容RTL8188CUS芯片的无线网卡,不过Edimax团队为我们专门编译了兼容的版本,下面的操作需要替换hostapd为兼容版本。
  替换的命令如下:




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
  接下来提供两种方案,一种是桥接方式设置热点,有点类似交换机工作原理,将网线口的信号转换为无线,另外一种则是路由方式实现无线上网,和大部分路由器工作方式一样。
  3. 桥接的方式设置WiFi热点(方案一)
  3.1 安装必备程序




sudo apt-get install bridge-utils
  3.2 配置网卡
  编辑网卡配置文件:




sudo nano /etc/network/interfaces
  注释掉所有的关于无线网卡的部分,最后应该变成下面所示:

#allow-hotplug wlan0
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp
  加上下面这段桥接配置:

auto br0
iface br0 inet dhcp
bridge_ports eth0 wlan0
  最终的配置主要由以下几个部分组成:

#loopback adapter
auto lo
iface lo inet loopback
#wired adapter
iface eth0 inet dhcp
#bridge
auto br0
iface br0 inet dhcp
bridge_ports eth0 wlan0
  3.3 配置hostapd




sudo nano /etc/hostapd/hostapd.conf
  配置信息如下:

interface=wlan0
driver=rtl871xdrv
bridge=br0
ssid=My_SSID_Name
channel=1
wmm_enabled=0
wpa=1
wpa_passphrase=MYPASSWORD
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0
  配置文件具体我就不说了,想必大家看内容也知道各项的含义,保存这个配置文件。
  3.4 重启并测试hostapd




sudo reboot
  重启完成后,使用下面的命令测试是否正确:




sudo hostapd -dd /etc/hostapd/hostapd.conf
  如果没有错误的话,你这时应该能搜索到你所配置的无线信号。然后Ctrl+C退出这个测试。
  如果一切正常的话,我们可以设置hostapd的配置文件路径了。




sudo nano /etc/default/hostapd
  去掉注释符号并改动下面这行为我们的配置文件路径:

DAEMON_CONF="/etc/hostapd/hostapd.conf"
  桥接方式配置完成!
  4. 路由的方式设置WiFi热点(方案二)
  4.1 安装必备程序




sudo apt-get install udhcpd
  udhcpd主要为连接到WiFi的设备自动分配IP地址的,当然你也可以换用你所熟悉的软件。
  4.2 配置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"
  4.3 配置无线网卡
  通过下面的命令给无线网卡设置一个IP地址:




sudo ifconfig wlan0 192.168.42.1
  当然为了下次启动仍然有效,我们需要配置/etc/network/interfaces文件:




sudo nano /etc/network/interfaces
  注释掉所有的关于无线网卡的部分,最后应该变成下面所示:

#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp
  注意保留allow-hotplug wlan0,英文原文是不保留的,但是我操作下来发现如果不保留这段的话,无线网卡有时无法正常配置IP,最后无线网卡IP的配置信息如下:

allow-hotplug wlan0
iface wlan0 inet static
address 192.168.42.1
netmask 255.255.255.0
  4.4 编辑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
  4.7 启动IP转向功能以便于开通NAT




sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
  编辑/etc/sysctl.conf改动下面这行:

net.ipv4.ip_forward=1
  4.8 配置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
  4.9 重启并测试hostapd




sudo reboot
  重启完成后,使用下面的命令测试是否正确:




sudo hostapd -dd /etc/hostapd/hostapd.conf
  如果没有错误的话,你这时应该能搜索到你所配置的无线信号。然后Ctrl+C退出这个测试。
  如果一切正常的话,我们可以设置hostapd的配置文件路径了。




sudo nano /etc/default/hostapd
  去掉注释符号并改动下面这行为我们的配置文件路径:

DAEMON_CONF="/etc/hostapd/hostapd.conf"
  4.10 启动相应软件,并加入启动项




sudo service hostapd start
sudo service udhcpd start
sudo update-rc.d hostapd enable
sudo update-rc.d udhcpd enable
DSC0004.jpg
  2013年12月12日更新
  最近经常发现无线网卡配置的DHCP不能发挥作用,经过排查发现给无线网卡指定的静态IP失败了,也就是说无线网卡没有IP导致DHCP无法工作,在网上找到这篇文章《Why won't dnsmasq's DHCP server work when using hostapd?》,根据内容我将/etc/default/ifplugd的内容修改配置如下:




INTERFACES="eth0"
HOTPLUG_INTERFACES="eth0"
ARGS="-q -f -u0 -d10 -w -I"
SUSPEND_ACTION="stop"
  重启了几次进行测试,结果一切正常!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-121287-1-1.html 上篇帖子: 转:禁止360随身wifi驱动自动安装 下篇帖子: 用WIFI来共享电脑网络的工具
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表