树莓派上手实战之把Raspberry Pi 配置成无线路由器

转:http://cs3.swfu.edu.cn/~101152025/?p=530

准备拿树莓派做个应用 当作无线路由器 在这里记录全部流程
实现无线共享 需要的软件包是hostapd, raspbian官方安装源提供的hostapd需要无线网卡支持nl80211协议,
不是所有的网卡都能配置成功,
如果不慎购买了不支持nl80211协议的网卡,需要自行编译适合网卡的hostapd软件包。
因此选用无线网卡的时候要留意,我选用的网卡型号是Tenda w311mi,芯片是Ralink Rt5370 可以完美支持hostapd,同款芯片的都应该可以成功配置。

以下是配置全过程

1.配置无线网卡为固定ip地址
输入命令

  1. sudo nano /etc/network/interfaces

复制代码
编辑网络配置文件

找到这几行 注释掉

  1. #allow-hotplug wlan0
  2. #iface wlan0 inet manual
  3. #wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
  4. #iface default inet dhcp

复制代码

添加以下几行

  1. iface wlan0 inet static
  2. address 192.168.10.1
  3. netmask 255.255.255.0
  4. [/size][/font][/backcolor][/color]

复制代码
这里需要说明的是  192.168.10.1是给raspberry pi 做的路由器分配的网关 ip
这个不能跟局域网里其他路由网关ip重复

2 安装hostapd
输入命令

  1. sudo apt-get install hostapd

复制代码

编辑hostapd 默认配置文件

  1. sudo nano /etc/default/hostapd

复制代码


找到

  1. #DAEMON_CONF= “”

复制代码
修改如下

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

复制代码


编辑 hostapd 配置文件

  1. sudo nano /etc/hostapd/hostapd.conf

复制代码

  1. # 把无线网卡wlan0 作为接入点
  2. interface=wlan0
  3. # 使用nl80211驱动
  4. driver=nl80211
  5. #共享网络的SSID是RaspberryPi
  6. ssid=RaspberryPi
  7. # 网卡工作在802.11G模式
  8. hw_mode=g
  9. #无线网卡选用11信道
  10. channel=11
  11. # WPA2 配置
  12. wpa=2
  13. #wpa密码是raspberry
  14. wpa_passphrase=raspberry
  15. #认证方式为WPA-PSK 加密方式为CCMP
  16. wpa_key_mgmt=WPA-PSK
  17. wpa_pairwise=CCMP
  18. rsn_pairwise=CCMP
  19. beacon_int=100
  20. auth_algs=3
  21. wmm_enabled=1

复制代码
保存退出
输入命令

  1. sudo service hostapd restart

复制代码

启动hostapd 服务

—update:
因为有反映说原教程中无线网卡地址 192.168.2.1会跟一些路由器默认网关重复
所以变动了默认网关地址 为192.168.10.1

3.安装dhcp服务
输入命令

  1. sudo apt-get install isc-dhcp-server

复制代码

备份配置文件

  1. sudo mv /etc/dhcp/dhcpd.conf  /etc/dhcp/dhcpd.conf.bak

复制代码

编辑新的配置文件

  1. sudo nano /etc/dhcp/dhcpd.conf

复制代码

复制粘贴以下内容

  1. default-lease-time 600;
  2. max-lease-time 7200;
  3. log-facility local7;
  4. subnet 192.168.10.0 netmask 255.255.255.0 {
  5.   range 192.168.10.10 192.168.10.100;
  6.   option routers 192.168.10.1;
  7.   option broadcast-address 192.168.10.127;
  8.   option domain-name-servers 8.8.8.8,8.8.4.4;
  9.   default-lease-time 600;
  10.   max-lease-time 7200;
  11. }

复制代码

保存退出

重新启动服务

  1. sudo service  isc-dhcp-server restart

复制代码

这个时候可以在无线网络列表里面连接RaspberryPi
连接成功以后会分配一个IP


4.配置路由转发

这个时候已经可以通过无线网络连接到Raspberry pi的无线网卡,但是还不能连接到互联网,

下一步就是让从无线网卡 wlan0 进来的数据 转发到 有线网卡 eth0上面 通过有线网卡连接网络接到互联网。

因为eth0是获取的动态ip,所以这里通过iptables来实现简单的路由转发。

输入命令

  1. sudo iptables -F
  2. sudo iptables -X
  3. sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  4. sudo bash
  5. iptables-save > /etc/iptables.up.rules
  6. exit

复制代码

输入命令

  1. sudo nano /etc/network/if-pre-up.d/iptables

复制代码

把下面两行复制粘贴到编辑窗口

  1. #!/bin/bash
  2. /sbin/iptables-restore < /etc/iptables.up.rules

复制代码

保存退出
输入命令

  1. sudo chmod 755 /etc/network/if-pre-up.d/iptables

复制代码

开启内核转发
输入命令

  1. sudo nano /etc/sysctl.conf

复制代码

找到这里

  1. # Uncomment the next line to enable packet forwarding for IPv4
  2. #net.ipv4.ip_forward=1

复制代码

去掉 net.ipv4.ip_forward 前面的#
保存退出

输入命令

  1. sudo sysctl -p

复制代码

配置完毕 通过无线连接上以后ping一下外网 可以通了
这样就可以把Raspberry Pi 当作路由器来用了

最后留一个坑 关于防火墙规则的
这个当时没写 以后想起来再写

出自:http://www.raspicn.com/thread-85-1-1.html

    A+
发布日期:2015年02月10日  所属分类:未分类

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: