xiao592408 发表于 2016-5-11 15:46:25

PI3体验之无线网AP模式设定及热点分享

随着PI3极其迅速的市场普及率,越来越多的用户开始针对PI3做一些研发设计。特别是板载的WIFI功能,毫无疑问,提供了更加广阔的探索空间。借此机会,可以尝试利用其便利将PI3设成AP模式,做成一个热点分享,启动IP转向功能以便于开通NAT,通过路由方式实现无线上网。所以PI3可以成为家用无线路由器的首选!由于BCM43438芯片提供了开源的brcmfmac驱动支持,所以树莓派发烧友们可以很方便的DIY一些WIFI应用。这样可以省去购买及配置外置无线网卡的麻烦了,因为在树莓派系统下,并不是所有的无线网卡都支持AP模式。配好后的热点AP很简单,只需要SD卡,供电,再插一根网线到网口就行。如果不接网线,WiFi热点依然可以正常工作,然后连接的设备将组成局域网。http://ww4.sinaimg.cn/mw690/a5736c8bjw1f3qdbg8sptj20pk0h8n7d.jpg

xiao592408 发表于 2016-5-11 15:47:05

下面分享一下设置的具体过程。 首先看需要哪些设备及软件:☆ 树莓派3☆ Raspbian OS:2016-03-18-raspbian-jessie.img☆ SD卡,最好是4G以上大小,事先用Win32diskimager或dd(Linux)烧好树莓派镜像。☆ 可上网的宽带网络,通过以太网共享经NAT转发给WLAN☆ Micro USB cable,用于供电☆ HDMI显示器或PC调试终端,用于指令输入 接下来就要开始进行软件安装及系统文件配置了。如果用的是比较老的系统镜像,就要先进行系统更新,这几乎是PI应用的必备操作。 sudo apt-get update sudo apt-get upgrade sudo reboot sudo rpi-update sudo reboot

xiao592408 发表于 2016-5-11 15:47:33

一.安装hostapd和dnsmasq软件包
使用的指令是
sudo apt-get install dnsmasq hostapd
hostapd 是 Host Access Point 守护进程,提供对基于 Linux 的无线接入点的强 WPA2 加密和身份验证。配置 hostapd 非常简单,它支持 WPA2-Personal 和 Enterprise,提供了对 WPA2-Personal 的独特修改,可让管理它变得更复杂或更简单。
dnsmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。主用适用于NAT的家庭网络,用modem,cable modem,ADSL设备连接到因特网。

xiao592408 发表于 2016-5-11 15:50:26

二.接口配置将无线接口wlan0的IP配置成静态地址。以太网接口eth0默认DHCP配置并接入因特网。在树莓派系统中,默认是DHCPCD配置网络接口。所以要告诉系统我们给wlan0分配静态IP地址,操作是打开配置文件并增加配置参数指令。sudo nano /etc/dhcpcd.confinterface wlan0    static ip_address=192.168.0.1/24为了防止wpa_supplicant运行和干扰设定wlan0为接入点模式。需要打开接口配置文件,在wlan0段落中注释掉wpa-conf这行sudo nano/etc/network/interfacesallow-hotplug wlan0iface wlan0 inet manual#    wpa-conf/etc/wpa_supplicant/wpa_supplicant.conf执行完后还要重启dhcpcd服务,系统将会给wlan0接口分配一个静态IP,树莓派也需要重启,因为只有重启后才生效。sudo service dhcpcd restartsudo reboothttp://ww3.sinaimg.cn/mw690/a5736c8bjw1f3qdbgvt04j20ka04lwft.jpg

xiao592408 发表于 2016-5-11 15:52:04

三. 配置HOSTAPD创建一个新的文件配置HOSTAPDsudo nano /etc/hostapd/hostapd.conf内容如下interface=wlan0driver=nl80211ssid=pi3aphw_mode=gchannel=6wmm_enabled=1macaddr_acl=0auth_algs=1ignore_broadcast_ssid=0wpa=2wpa_passphrase=12345678wpa_key_mgmt=WPA-PSKrsn_pairwise=CCMP其中interface=wlan0,指定网卡名称为wlan0。wpa=2,采用WPA2加密方式。ssid=pi3ap为热点名称,可根据实际情况修改。wpa_passphrase=12345678为热点密码,可根据实际情况修改,如果采用WPA2加密方式,密码的长度应该不少于8个字符。接下来检查是否配置成功,如果出现AP-ENABLED并且客户端能搜索到SSID,表示AP模式已启用成功。如果有报错,说明驱动和hostapd配置没有正确设置。sudo /usr/sbin/hostapd /etc/hostapd/hostapd.confhttp://ww2.sinaimg.cn/mw690/a5736c8bjw1f3qdbhd0lgj20jb03qab4.jpghttp://ww3.sinaimg.cn/mw690/a5736c8bjw1f3qdbi1h5kj207j0al0tr.jpg这个时候试图连接SSID的时候,发现无法获取IP,是因为DNS和NAT还没有配置,但会有打印信息如下,按下CTRL+C可以退出检查模式。wlan0: AP-STA-CONNECTEDec:85:2f:18:f2:bewlan0: STA ec:85:2f:18:f2:beRADIUS: starting accounting session 56A31C81-00000000wlan0: STA ec:85:2f:18:f2:be WPA:pairwise key handshake completed (RSN)wlan0: STA ec:85:2f:18:f2:be IEEE802.11: disassociatedwlan0: AP-STA-DISCONNECTEDec:85:2f:18:f2:bewlan0: STA ec:85:2f:18:f2:be IEEE802.11: associatedwlan0: AP-STA-CONNECTEDec:85:2f:18:f2:bewlan0: STA ec:85:2f:18:f2:beRADIUS: starting accounting session 56A31C81-00000001wlan0: STA ec:85:2f:18:f2:be WPA:pairwise key handshake completed (RSN)wlan0: STA ec:85:2f:18:f2:be IEEE802.11: disassociatedwlan0: AP-STA-DISCONNECTEDec:85:2f:18:f2:bewlan0: STA ec:85:2f:18:f2:be IEEE802.11: associatedwlan0: AP-STA-CONNECTEDec:85:2f:18:f2:bewlan0: STA ec:85:2f:18:f2:beRADIUS: starting accounting session 56A31C81-00000002 为了能让系统每次启动都自动加载AP模式下的配置,我们需要配置hostapd为自启动模式。打开默认配置文件,找到#DAEMON_CONF=””,将前面的#号去掉,sudo nano /etc/default/hostapdDAEMON_CONF="/etc/hostapd/hostapd.conf"。

xiao592408 发表于 2016-5-11 15:53:54

四.配置DNSMASQ
为了实现上网功能,需要对DNSMASQ服务进行配置,首先备份一下系统默认的文件,然后创建一个新的配置文件。
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf
具体的配置信息如下所示:DNS请求服务器地址这里要配置成本地上网的DNS地址,否则可能解析错误。
interface=wlan0
bind-interfaces
server=202.96.134.133
server=114.114.114.114
server=8.8.8.8
domain-needed
bogus-priv
dhcp-range=192.168.1.2,192.168.1.254,12h

xiao592408 发表于 2016-5-11 15:56:06

五.设置IPV4转发打开系统配置文件sysctl.conf,将IPV4转发那一行的#去掉sudo nano /etc/sysctl.conf # Uncomment the next two lines toenable Spoof protection (reverse-path filter)# Turn on Source AddressVerification in all interfaces to# prevent some spoofing attacks#net.ipv4.conf.default.rp_filter=1#net.ipv4.conf.all.rp_filter=1 # Uncomment the next line toenable TCP/IP SYN cookies# Seehttp://lwn.net/Articles/277146/# Note: This may impact IPv6 TCPsessions too#net.ipv4.tcp_syncookies=1 # Uncomment the next line toenable packet forwarding for IPv4net.ipv4.ip_forward=1下一次重启后会生效,如果不想现在重启,可以直接输入如下指令直接生效。sudo sh -c "echo 1 >/proc/sys/net/ipv4/ip_forward"为了实现PI3以太网接口共享给wlan0上网,需要配置NAT,需先执行如下防火墙命令sudo iptables -t nat -APOSTROUTING -o eth0 -j MASQUERADEsudo iptables -A FORWARD -i eth0-o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPTsudo iptables -A FORWARD -i wlan0-o eth0 -j ACCEPT当然,为了不每次都手动配置,需要将以上规则设为自启动。sudo sh -c "iptables-save> /etc/iptables.ipv4.nat"通过获取DHCPCD来运行NAT需要创建一个新文件sudo nano/lib/dhcpcd/dhcpcd-hooks/70-ipv4-natiptables-restore </etc/iptables.ipv4.nat最后需要重启服务:sudo service hostapdstartsudo service dnsmasq startsudo reboot可以通过无线网卡客户端或手机WIFI关联pi3ap,以下是用WI-PIdongle在WIN7系统上连接pi3ap后的成功例子,上网速度也超快。另外在多个用户的手机上也都连接成功。http://ww2.sinaimg.cn/mw690/a5736c8bjw1f3qdbipgsbj20bj0e1760.jpghttp://ww2.sinaimg.cn/mw690/a5736c8bjw1f3qdbjgikmj20d10e841e.jpghttp://ww4.sinaimg.cn/mw690/a5736c8bjw1f3qdbjz4dnj20oc0e8jxw.jpg

jzz3933 发表于 2016-5-12 15:42:09

大神帮顶,学习了

kinglight 发表于 2016-5-14 23:33:51

再插上一个无线网卡 识别为 wlan1 用wlan1共享上网,应该把eth0 刚换成wlan1就行了吧。怎么老是无法上网呢

cssbit 发表于 2016-5-31 08:29:53

和9楼的问题相似,我用raspi3内置共享一个网络,还想再插入一块无线网卡增加个热点。一共弄两个热点。
页: [1] 2
查看完整版本: PI3体验之无线网AP模式设定及热点分享