将树莓派打造成无线路由器

准备材料

1 本地局域网

2 电脑一台

3 装有Raspbian wheezy系统的树莓派

4 USB无线网卡(支持AP模式)


步骤:

1 在电脑一端ssh登录树莓派

2 更新Raspbian wheezy系统,命令:

sudo apt-get update && sudo apt-get upgrade

3  安装必要的组件

将树莓派打造成AP需要如下组件:

rfkill: 一个无线网络工具

zd1211-firmware: 一个常见的路由器固件,与很多USB无线网卡兼容

hostapd:  hostap守护程序

hostap-utils 附加的hostap工具

iw: 无线配置工具

dnsmasq: DHCP和DNS工具

bridge-utils: 用来桥接多个以太网设备

使用以下命令来安装以上组件:

sudo apt-get install rfkill zd1211-firmware hostapd hostap-utils iw dnsmasq bridge-utils


4  设置USB无线网卡

1) 验证树莓派可以识别USB无线网卡, 命令:

lsusb

2)  验证无线网卡支持AP模式, 命令:

iw list

如果这条命令的输出没有显示关于AP模式的信息,那么无线网卡就不支持AP模式

如果使用 rtl8188cus 芯片的无线网卡,那么可能会出现错误: nl80211 not found ,执行命令:

dmesg | grep rtl

若输出结果类似于以下

[    6.240292] usbcore: registered new interface driver rtl8192cu

那么这无线网卡很可能支持AP模式


5  设置无线功能

1) 备份/etc/network/interfaces文件,然后打开此文件

sudo cp /etc/network/interfaces /etc/network/interfaces.orig

sudo vi /etc/network/interfaces

2)  将文件内容更改成如下
图片

3) 重启wlan0

ifdown wlan0

ifup wlan0


6    设置hostapd

1) 备份/etc/hostapd/hostap.conf文件,然后打开此文件

sudo cp /etc/hostapd/hostap.conf /etc/hostapd/hostap.conf.orig

sudo vi /etc/hostapd/hostap.conf

2) 将文件修改成如下,适当调整country_code, ssid等。
图片

3) 如果之前的iw list出错,那么也要备份/etc/default/hostapd(如果此文件存在的话)。

sudo cp /etc/default/hostapd /etc/default/hostapd.orig

sudo vi /etc/default/hostapd

在文件中找到DAEMON_CONF这一行,去年前面的#号,修改成如下:

DAEMON_CONF=”/etc/hostapd/hostapd.conf”

4)   如果之前的iw list出错,那么需要安装另外一个版本的/usr/sbin/hostapd,点出此链接下载

备份原来的/usr/sbin/hostapd

sudo cp /usr/sbin/hostapd /usr/sbin/hostapd.orig


删除原来的/usr/sbin/hostapd

cd /usr/sbin

sudo rm -f hostapd

sudo wget http://dl.dropbox.com/u/1663660/hostapd/hostapd ;


为新的/usr/sbin/hostapd设置文件权限

sudo chown root:root hostapd

sudo chmod 755 hostapd


重启hostapd以使设置生效。

sudo service networking restart

sudo service hostapd restart


如果hostapd重启失败,执行下面的命令看看问题出在哪里

sudo hostapd -d /etc/hostapd/hostap.conf


7  现在树莓派路由的SSID应该可以被扫描出来了。但在连接之前还需要进行一些设置,特别是dnsmasq的设置。

1)备份/etc/dnsmasq.conf文件,然后打开此文件

sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

sudo vi /etc/dnsmasq.conf

2)  找到以下三行,去掉前面的#符号,并添加相应的参数。


图片


3) 重启dnsmasq服务以使修改生效

sudo service dnsmasq restart


8  启用IPv4端口映射,命令:

sudo echo 1 > /proc/sys/net/ipv4/ip_forward

如果上面的命令返回permission denied错误,那么执行下面的命令:

sudo sysctl -w net.ipv4.ip_forward=1


启用NAT

sudo iptables -t nat -A POSTROUTING -j MASQUERADE


在使用过程中发现,自己安装的hostapd守护程序需要手动启动,也就是执行下面的命令:

sudo hostapd -d /etc/hostapd/hostap.conf

若要在开机时自动启动hostapd守护程序,可以编辑/etc/rc.local文件,在exit 0 的上一行添加如下命令:

hostapd -d /etc/hostapd/hostap.conf &



将树莓派打造成无线路由器

Comments

Popular posts from this blog

Linux系统安装WordPress.com Desktop App桌面客户端

notepadqq, Linux系统下的Notepad++编辑器

MythTV 0.28发布, Ubuntu安装MythTV观看电视节目