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

来源:互联网 发布:新淘宝网怎样充话费 编辑:程序博客网 时间:2024/06/06 03:19

原文 上 中 下

http://www.raspicn.com/thread-83-1-1.html

http://www.raspicn.com/thread-84-1-1.html

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



原创教程 转载请注明作者和出处连接

准备拿树莓派做个应用 当作无线路由器 在这里记录全部流程

实现无线共享 需要的软件包是hostapd, raspbian官方安装源提供的hostapd需要无线网卡支持nl80211协议,
不是所有的网卡都能配置成功,
如果不慎购买了不支持nl80211协议的网卡,需要自行编译适合网卡的hostapd软件包。
因此选用无线网卡的时候要留意,我选用的网卡型号是Tenda w311mi,芯片是Ralink Rt5370 可以完美支持hostapd,同款芯片的都应该可以成功配置。

以下是配置全过程

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

  1. sudo nano /etc/network/interfaces
复制代码

编辑网络配置文件

找到这几行 注释掉
  1. #allow-hotplug wlan0 这个一定要注释掉,要不会出现无法获取IP,by maij
  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



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

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
下一篇
树莓派上手实战之把Raspberry Pi 配置成无线路由器(下)



4.配置路由转发
通过前两篇
树莓派上手实战之把Raspberry Pi 配置成无线路由器(上)
树莓派上手实战之把Raspberry Pi 配置成无线路由器(中)
的配置过程
这个时候已经可以通过无线网络连接到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 当作路由器来用了

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

原创粉丝点击