树莓派和路由:将树莓派打造成一台路由器

本文由 极客范 - LQ 翻译自 Jacob Salmela。欢迎加入极客翻译小组,同我们一道翻译与分享。转载请参见文章末尾处的要求。

如果你想要一个装在口袋里的网络分享设备,树莓派可以做成一个很不错的路由器.

本次制作所用到的设备要求:

  1. 本地网络
  2. 一台电脑
  3. 运行Raspbian的树莓派
  4. 无线USB路由器
  5. HDMI连接线(可选)
  6. 键盘(可选)
  7. 路由器(可选)
  8. 有HDMI输入的监视器(可选)

如果树莓派已经设置好可以独立运行了.你不需要屏幕键盘鼠标-就是另外一台可以用SSH通过网络远程登录的电脑

需要下载的

  1. Older hostapd (只有apt下不到驱动的时候)

需要的知识,技术,能力

1,可以熟练操作计算机系统

2,基本的计算机术语知识

3,敢于在终端里敲命令.如果有必要也要敢于调整他们适合自己的开发环境

4,熟悉网络核心概念

所用到资源

  1. http://magpi.techjeeper.com/The-MagPi-issue-11-en.pdf
  2. http://www.pi-point.co.uk/documentation/
  3. http://blog.sip2serve.com/post/48420162196/howto-setup-rtl8188cus-on-rpi-as-an-access-point
  4. https://docs.google.com/file/d/0B3nsVzbJuBHVOWRJRDJacVd0S2s/preview?pli=1
  5. http://sirlagz.net/2012/08/11/how-to-use-the-raspberry-pi-as-a-wireless-access-pointrouter-part-3/
  6. http://www.raspberrypi.org/phpBB3/viewtopic.php?t=39096&p=393810
  7. http://unix.stackexchange.com/questions/119209/hostapd-will-not-start-via-service-but-will-start-directly
  8. http://www.daveconroy.com/turn-your-raspberry-pi-into-a-wifi-hotspot-with-edimax-nano-usb-ew-7811un-rtl8188cus-chipset/

概念总览

  1. 用apt-get安装做需要的组件
  2. 验证无线软件狗收发功能
  3. 配置/etc/network/interfaces
  4. 给你想要设置的接入点创建配置文件/etc/hostapd/hostapd.conf
  5. 把hostapd指向步骤4所创建的配置文件/etc/hostapd/hostapd.conf
  6. 老版本替代/sbin/hostapd
  7. 配置DNS
  8. 配置IPv4转发,使其可以连接网络

准备树莓派

确定你的树莓派是最新版本的,可以安装所有最新的安装包

安装所需要的组件

以下这些组件都是设置接入点做需要的:

  • rfkill: 一个无线工具
  • zd1211-firmware: 很多Wi-Fi收发器通用的固件
  • hostapd: 无线接入点的守护进程
  • hostap-utils: 补充工具
  • iw: 无线网络的配置工具
  • dnsmasq: DHCP 和 DNS 工具
  • bridge-utils:  用来将多个以太网设备连接到一起

用以下命令安装这些组件:

 配置无线收发器

验证软件狗已经被树莓派识别

检查树莓派已经识别Wi-Fi软件狗:

验证Wi-FI软件狗支持接入点模式

如果执行下面这条命令没有任何输出是关于AP mode,那么就是说你的软件狗不适合本项目。但是如果有东西的话那就继续进行下一步。

倒霉的是我的软件狗坏了,而且还有产生了一个” nl180211 not found ”的错误,不过还好了继续执行下面这条命令:

如果结果是类似这样的

可能这个还是能干活的,接下俩会修复这个问题的.

配置网络接口

先做一个 /etc/nework/interfaces 的备份,然后在文本编辑器里打开,

改成下面这个样子的:

重启 wlan0 接口

 配置hostapd

接下来,做一个 /etc/hostapd/hostap.conf 的备份然后在文本编辑器里打开做一些改动(如果这个文件不存在请忽略第一条命令)

修改这个文件使之包含以下内容,读者根据自己情况自行改动(比如国家代码,网络名等等)

如果 iwlist 命令执行结果有之前提到的 nl80211 not found  错误,创建一个内容如下的文件:

如果 iw list  命令执行出错,文件 /etc/default/hostapd也是需要备份的(如果此文件存在的话).
然后添加如下内容(千万不要注释掉)
安装一个不同版本的 /usr/sbin/hostapd 也是很有必要的,从这里下载, 根据以往经验最好在编辑之前做一个备份:
删除原始文件, 因为接下来将会在下载章节将其替换掉.

为新文件设置适当权限

重启hostapd服务以激活设置

如果hostapd重启之后有问题就试一下如下命令查看结果看是否你是否能找出配置文件中的错误并将其修复.
如果你现在用另外一台设备扫描的话应该能够可以看到无线网络了.但是如果想要其他人连上的话还是需要一些设置的.特别是 dnsmasq

配置dnsmasq

老规矩,备份先,然后仔仔文本编辑器里打开

将以下行的注释符去掉然后根据你自己的环境配置

重启 dnsmasq 使设置生效,
用其他设备尝试连接本网络,但是还是不能连上因特网的.

设置因特网转发

设置IPv4转发

如果上述命令提示拒绝访问,试试下面这个:

设置NAT

其他适配器和用法

我之所以选择Wi-Fi软件狗的主要原因是因为我可以连接我的cantenna,然后可以扩展我的信号到很远的距离.当然用一个无线适配器会非常的简单,但是现在我需要的是天线上的灵活性.

 



原文链接: Jacob Salmela 翻译: 极客范 - LQ

译文链接: http://www.geekfan.net/9849/

[ 转载请保留原文出处、译者和译文链接。]

新浪微博:@Zhang_Longqi

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">