第二篇:把树莓派当做无线路由器
把树莓派当做无线路由器
最新的Raspberry Pi 3开发板上提供了wifi模块,我在想是不是有可能把树莓派当做一个无线路由器使用?最后发现其实很简单,因为板载的BCM43438 芯片是有开源驱动的(brcmfmac),如果安装最新的raspbian,默认驱动已经安装好了,最麻烦的驱动问题迎刃而解。
OS环境
安装最新的raspbian,相当于debian 8 jessie arm版本,安装的过程不再赘述。
RASPBIAN JESSIEFull desktop image based on Debian JessieVersion:May 2016Release date:2016-05-27Kernel version:4.4
网络环境
用网线把树莓派和tp-link的lan口连接起来,然后在tp-link的设置当中,IP与MAC绑定设置,把树莓派的IP地址固定为一个地址,我设置的是192.168.0.101。
软件包
sudo apt-get install hostapd dnsmasq
简单说明一下这两个包的功能:
hostapd - 一个用户态用于AP和认证服务器的守护进程。它实现了IEEE 802.11相关的接入管理,IEEE 802.1X/WPA/WPA2/EAP 认证, RADIUS客户端,EAP服务器和RADIUS 认证服务器。
dnsmasq - 作为DNS和DHCP服务器
dnsmasq也可以用其他软件包替代,比如bind9,isc-dhcp-server作为DNS和DHCP服务。不过dnsmasq
可以满足当前的需求,如果你有更复杂的需求,可以配置其他的服务。
软件配置
环境我们都准备好了,软件包已经安装,最重要的过程是软件的配置。
wlan0 interface
第一步给wlan0配置一个静态IP。在最新的Raspian,wlan0默认配置在dhcpcd中,我们需要让dhcpcd忽略wlan0,sudo vi /etc/dhcpcd.conf,在文件的最后加上。
denyinterfaces wlan0
下面我们给wlan0配置一个静态IP,sudo vi /etc/network/interfaces,把wlan0的那一段修改为:
allow-hotplug wlan0 iface wlan0 inet static address 172.24.1.1 netmask 255.255.255.0 network 172.24.1.0 broadcast 172.24.1.255# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
重启dhcpcd sudo service dhcpcd restart
使静态IP生效sudo ifdown wlan0; sudo ifup wlan0
hostapd
新增配置文件sudo vi /etc/hostapd/hostapd.conf
# This is the name of the WiFi interface we configured aboveinterface=wlan0# Use the nl80211 driver with the brcmfmac driverdriver=nl80211# This is the name of the networkssid=Pi3-AP# Use the 2.4GHz bandhw_mode=g# Use channel 6channel=6# Enable 802.11nieee80211n=1# Enable WMMwmm_enabled=1# Enable 40MHz channels with 20ns guard intervalht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]# Accept all MAC addressesmacaddr_acl=0# Use WPA authenticationauth_algs=1# Require clients to know the network nameignore_broadcast_ssid=0# Use WPA2wpa=2# Use a pre-shared keywpa_key_mgmt=WPA-PSK# The network passphrasewpa_passphrase=raspberry# Use AES, instead of TKIPrsn_pairwise=CCMP
我们可以测试一下sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf,现在你可以在手机上搜到Pi3-AP的wifi,输入密码连接上之后会发现一直等待的状态,因为DHCP服务还没配置,我们下一步就要配置dnsmasq。
添加系统服务
安装hostapd之后,系统服务已经添加了,但是配置文件的地址还需要配置一下sudo vi /etc/default/hostapd,把# DAEMON_CONF="" 修改为
DAEMON_CONF="/etc/hostapd/hostapd.conf"
以后可以使用service来启动和停止hostapd
dnsmasq
默认的配置包含大量的信息,但是我们用到的并不多,建议重命名,然后新建一个配置文件
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.origsudo vi /etc/dnsmasq.conf
把下面的内容粘贴进去
interface=wlan0 # Use interface wlan0 listen-address=172.24.1.1 # Explicitly specify the address to listen on bind-interfaces # Bind to the interface to make sure we aren't sending things elsewhere server=8.8.8.8 # Forward DNS requests to Google DNS domain-needed # Don't forward short names bogus-priv # Never forward addresses in the non-routed address spaces. dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time
iptables
打开ip 转发 ,在配置文件当中/etc/sysctl.conf修改 net.ipv4.ip_forward = 1,然后输入sudo sysctl -p 使配置立刻生效
使用wifi共享internet,我们需要配置nat。iptables的功能非常强大,输入下面的命令:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
iptables save and restore
每次重启之后iptables的配置都会丢失,所以需要保存一下
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"sudo iptables-restore /etc/rc.local,每次重启都会自动restore## 最后一步最后一步,启动服务,你的设备就可以连接Pi3-AP就可以上网了。
sudo service hostapd start
sudo service dnsmasq start
参考资料1. USING YOUR NEW RASPBERRY PI 3 AS A WIFI ACCESS POINT WITH HOSTAPD使用树莓派打造一个科学上网的路由器第一篇:点亮树莓派第三篇:树莓派使用VPN科学上网#产品经理#
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!