PI3體驗之無線網AP模式設定及熱點分享

隨着PI3極其迅速的市場普及率,越來越多的用戶開始針對PI3做一些研發設計。特別是板載的WIFI功能,毫無疑問,提供了更加廣闊的探索空間。
藉此機會,可以嘗試利用其便利將PI3設成AP模式,做成一個熱點分享,啓動IP轉向功能以便於開通NAT,通過路由方式實現無線上網。所以PI3可以成爲家用無線路由器的首選!
由於BCM43438芯片提供了開源的brcmfmac驅動支持,所以樹莓派發燒友們可以很方便的DIY一些WIFI應用。這樣可以省去購買及配置外置無線網卡的麻煩了,因爲在樹莓派系統下,並不是所有的無線網卡都支持AP模式。
配好後的熱點AP很簡單,只需要SD卡,供電,再插一根網線到網口就行。如果不接網線,WiFi熱點依然可以正常工作,然後連接的設備將組成局域網。

下面分享一下設置的具體過程。

首先看需要哪些設備及軟件:
☆ 樹莓派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

二.接口配置
將無線接口wlan0的IP配置成靜態地址。以太網接口eth0默認DHCP配置並接入因特網。在樹莓派系統中,默認是DHCPCD配置網絡接口。所以要告訴系統我們給wlan0分配靜態IP地址,操作是打開配置文件並增加配置參數指令。
sudo nano /etc/dhcpcd.conf
interface wlan0
static ip_address=192.168.2.1/24
爲了防止wpa_supplicant運行和干擾設定wlan0爲接入點模式。需要打開接口配置文件,在wlan0段落中註釋掉wpa-conf這行
sudo nano /etc/network/interfaces
allow-hotplug wlan0
iface wlan0 inet manual
#wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

執行完後還要重啓dhcpcd服務,系統將會給wlan0接口分配一個靜態IP,樹莓派也需要重啓,因爲只有重啓後才生效。
sudo service dhcpcd restart
sudo reboot

三. 配置HOSTAPD
創建一個新的文件配置HOSTAPD
sudo nano /etc/hostapd/hostapd.conf
內容如下
interface=wlan0
driver=nl80211
ssid=pi3ap
hw_mode=g
channel=6
wmm_enabled=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
rsn_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.conf

這個時候試圖連接SSID的時候,發現無法獲取IP,是因爲DNS和NAT還沒有配置,但會有打印信息如下,按下CTRL+C可以退出檢查模式。
wlan0: AP-STA-CONNECTEDec:85:2f:18:f2:be
wlan0: STA ec:85:2f:18:f2:beRADIUS: starting accounting session 56A31C81-00000000
wlan0: STA ec:85:2f:18:f2:be WPA:pairwise key handshake completed (RSN)
wlan0: STA ec:85:2f:18:f2:be IEEE802.11: disassociated
wlan0: AP-STA-DISCONNECTEDec:85:2f:18:f2:be
wlan0: STA ec:85:2f:18:f2:be IEEE802.11: associated
wlan0: AP-STA-CONNECTEDec:85:2f:18:f2:be
wlan0: STA ec:85:2f:18:f2:beRADIUS: starting accounting session 56A31C81-00000001
wlan0: STA ec:85:2f:18:f2:be WPA:pairwise key handshake completed (RSN)
wlan0: STA ec:85:2f:18:f2:be IEEE802.11: disassociated
wlan0: AP-STA-DISCONNECTEDec:85:2f:18:f2:be
wlan0: STA ec:85:2f:18:f2:be IEEE802.11: associated
wlan0: AP-STA-CONNECTEDec:85:2f:18:f2:be
wlan0: STA ec:85:2f:18:f2:beRADIUS: starting accounting session 56A31C81-00000002
爲了能讓系統每次啓動都自動加載AP模式下的配置,我們需要配置hostapd爲自啓動模式。打開默認配置文件,找到#DAEMON_CONF=””,將前面的#號去掉,
sudo nano /etc/default/hostapd
DAEMON_CONF=”/etc/hostapd/hostapd.conf”。

四.配置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.2.2,192.168.2.254,12h

五.設置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
# Note: This may impact IPv6 TCPsessions too
#net.ipv4.tcp_syncookies=1

# Uncomment the next line toenable packet forwarding for IPv4
net.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 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
當然,爲了不每次都手動配置,需要將以上規則設爲自啓動。
sudo sh -c “iptables-save> /etc/iptables.ipv4.nat”
通過獲取DHCPCD來運行NAT需要創建一個新文件
sudo nano/lib/dhcpcd/dhcpcd-hooks/70-ipv4-nat
iptables-restore 最後需要重啓服務:
sudo service hostapdstart
sudo service dnsmasq start
sudo reboot
可以通過無線網卡客戶端或手機WIFI關聯pi3ap,以下是用WI-PIdongle在WIN7系統上連接pi3ap後的成功例子,上網速度也超快。另外在多個用戶的手機上也都連接成功。

發佈了55 篇原創文章 · 獲贊 22 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章