随着上网设备的增多,一直想搞个全局的智能梯子,本着重在折腾的原则,搞了个MikroTik 951G软路由来玩(不玩不知道,真尼玛强大),这时又偶然发现openwrt不光有x86版,也早就支持Pi了,要知道Pi的cpu和内存绝对秒杀HG255D等一系列的低端路由器啊,虽然树莓派价格相对比较高,如果有闲置的派拿来玩玩又何妨。

使用OpenWrt将Raspberry Pi树莓派变身为全能路由器
硬件准备:

  • Raspberry Pi一个,注意,B+用户暂时不能完美使用。
  • USB无线网卡一个,这里使用AR9271芯片迅捷fw150ud,如果只做有线路由使用,可以不用
  • USB有线网卡一个,这里使用AX88772B芯片山寨usb网卡,如果只做无线路由使用,可以不用
  • 需要网线上网可以接个千兆交换机或用替换下来的多口路由器代替
  • SD卡一个,有个128M或256M都够用了
  • Micro USB线及5V,2A电源,网线两根,不用解释
  • MikroTik 951G-2HnD,自建PPPoE服务器,方便测试

使用OpenWrt将Raspberry Pi树莓派变身为全能路由器

软件准备:

http://downloads.openwrt.org/barrier_breaker/14.07/brcm2708/generic/openwrt-brcm2708-sdcard-vfat-ext4.img

实现过程:

一、准备SD卡,将磁盘镜像文件openwrt-brcm2708-sdcard-vfat-ext4.img写入SD卡。

Windows环境使用win32diskimager,简单方便。

Linux系统使用dd命令,dd if=~/foo.img of=/dev/sdX,X替换成相应设备名,使用fdisk -l查看,foo替换成相应镜像文件名。

OS X环境,执行diskutil list查看SD卡所在位置,然后使用diskuitl unmountDisk /dev/diskX,卸载SD卡,最后执行,dd bs=1m if=~/foo.img of=/dev/diskX,foo替换成相应镜像文件名,X替换成diskutil list显示的设备号。
使用OpenWrt将Raspberry Pi树莓派变身为全能路由器
二、软件设置
0.Openwrt会将Pi的自带网卡IP地址设为192.168.1.1,在我的网络环境中和主路由器是相同地址,所以需要修改一下。可以先用电脑及网线单独连接Pi,在浏览中输入ip即可看到登录界面,会提醒设置root用户密码,点击提示中的链接就可以完成密码设置。然后在Network->Interfaces中编辑默认IP为192.168.1.11,网关修改为上级路由IP,192.168.1.1,DNS也是必填项,见下图:
使用OpenWrt将Raspberry Pi树莓派变身为全能路由器

另一种方法是外接键盘显示器,启动Pi后编辑/etc/config/network文件,新手朋友还是推荐第一种方法。
使用OpenWrt将Raspberry Pi树莓派变身为全能路由器

1.将Pi自带网卡有线连接到上级路由器中,就可以在浏览器地址栏中输入192.168.1.11打开管理页面。

使用OpenWrt将Raspberry Pi树莓派变身为全能路由器
使用OpenWrt将Raspberry Pi树莓派变身为全能路由器

2.安装usb网卡驱动,在菜单中选择System->Software,先点击“Update Lists"更新软件列表,

使用OpenWrt将Raspberry Pi树莓派变身为全能路由器

完成更新后在"Download and install package"文本框中分别输入,kmod-usb-net和kmod-usb-net-asix,点击"OK"即可安装好usb有线网卡的驱动。

3.安装usb无线网卡驱动,同样方法安装,kmod-ath9k-htc,最后重启一下PI,即可发现无线网卡和有线网卡。
4.配置无线AP,按上述方法安装hostapd和wireless-tools两个软件,之后到Network->Wifi中点击"Edit”配置”AP"信息。
使用OpenWrt将Raspberry Pi树莓派变身为全能路由器

使用OpenWrt将Raspberry Pi树莓派变身为全能路由器

最后点击那个绿色图标的"Enable”按钮后即可启动无线AP,打开手机即可看到一个名为OpenWrt的wifi热点。

使用OpenWrt将Raspberry Pi树莓派变身为全能路由器

连接新创建的wifi热点时如果出现连接后出现无法获取IP的问题,有可能是没有设置好无线设备和网关的桥接,最新的14.7版OpenWrt是自动设置,之前使用OpenWrt 12.9时是要手动配置的。

5.设置PPPoE拨号,在Network->Interfaces中点击“Add new interface...”添加一个接口,然后选择eth1,在“Protocol of the new interface”中选择PPPoE,
使用OpenWrt将Raspberry Pi树莓派变身为全能路由器

最后点击“Submit”后会出现以下界面,输入用户名和密码即可实现PPPoE拨号。
使用OpenWrt将Raspberry Pi树莓派变身为全能路由器

填写完用户名密码后,点击"Physical Setting",选择“eth1”接口。
使用OpenWrt将Raspberry Pi树莓派变身为全能路由器

最后点击“Save & Apply”保存并应用设置,后就会自动拨号上网,或在Network->Interfaces界面中点击WAN口的“Connect"按钮也可拨号上网。
使用OpenWrt将Raspberry Pi树莓派变身为全能路由器

注意这一步的前提是将Pi的usb有线网卡通过网线连接到光猫和ADSL猫,Pi自带网卡连接下级路由或交换机。

PS,在管理界面的每个页面操作后都需要点击"Save&Apply"来保存设置,如果出现这个按钮的话。

PS,因为是测试环境,pppoe是连接到Mikrotik 951G上实现拨号上网的,所以ip地址显示10.1.1.3。

PS,软件设置前三步的目的是利用现有路由器来安装网卡驱动,也可以先将PI自带网卡设置为PPPoE客户端进行拨号上网并安装相应驱动,方法同上文软件设置第5项,将eth1改为eh0即可。