將樹莓派配置爲WIFI熱點

無線路由出了問題,常常性鏈接不上。正好手頭有個閒置樹莓派3b,把它改形成無線AP,也算閒物利用。樹莓派3B包括一個有線網卡和一個無線網卡,正好經過有線鏈接網絡,無線網卡實現熱點。vim

修改無線網卡wlan0的配置

打開配置網卡配置文件:sudo vim /etc/network/interfaces,增長如下內容:bash

# 如下爲有線網卡內容,將其設置爲固定IP,不是必須,只是習慣
auto eth0
iface eth0 inet static
address 192.168.1.20
netmask 255.255.255.0
gateway 192.168.1.254
#如下爲無線網卡內容,必須配置爲固定IP
auto wlan0
iface wlan0 inet static
address 192.168.2.1
netmask 255.255.255.0
gateway 192.168.2.1

安裝軟件

安裝命令: sudo apt install hostapd udhcpd網絡

安裝hostapd可能會出錯,提示該服務被mask,能夠使用命令: sudo systemctl unmask hostadpless

配置hostapd

用vim打開/etc/default/hostapd,將#DAEMON_CONF=""修改成DAEMON_CONF="/etc/hostapd/hostapd.conf"dom

用vim打開/etc/hostapd/hostapd.conf,添加如下內容:rest

interface=wlan0
ssid=aaaaaaaaaaa
channel=7
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=xxxxxxxxxxxx
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
ieee80211n=1
hw_mode=g
wmm_enabled=1

其中參數ssid表示WIFI熱點的名字,wpa_passphrase爲登陸密碼code

配置udhcpd

使用vim打開/etc/udhcpd.conf,修改配置文件,關鍵部分爲:router

start		192.168.2.100	#default: 192.168.0.20
end		192.168.2.200	#default: 192.168.0.254

interface	wlan0		#default: eth0

opt	dns	8.8.8.8
option	subnet	255.255.255.0
opt	router	192.168.2.1
opt	wins	192.168.2.1

option	domain	local
option	lease	14400

修改/etc/default/udhcpd,在DHCPD_ENABLED="no"前面加上註釋符#。dns

配置防火牆

首先打開配置文件/etc/sysctl.conf,去掉net.ipv4.ip_forward=1前面的註釋符。執行命令sysctl -p使配置文件生效。 再執行以下命令配置防火牆規則:ip

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的規則重啓後會失效,因此必須先保存配置: sudo iptables-save > /home/pi/iptables.ipv4.nat 而後打開/etc/rc.local,在exit 0以前加入: iptables-restore < /home/pi/iptables.ipv4.nat

重啓各項服務

sudo service hostapd restart  
sudo service dnsmasq restart

問題1:wlan0有時沒法啓動

查看網絡服務信息,還會有提示:SIOCSIFFLAGS: Operation not possible due to RF-kill 此時能夠輸入命令rfkill list all,查看結果,正常結果爲:

0: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no
1: hci0: Bluetooth
        Soft blocked: no
        Hard blocked: no

若是無線網卡中有一項爲yes,就說明是無線網卡被鎖定,能夠使用命令:rfkill unblock wifi來解鎖,若是命令rfkill list all全爲no,則能夠使用sudo ifup wlan0來啓動無線網卡。

問題2:udhcpd不能正常工做

udhcpd有時沒法正常工做,致使不能爲客戶機分配IP地址,只須要重啓該服務便可:sudo systemctl restart udhcpd。 若是常常出現該問題,則能夠把命令ystemctl restart udhcpd寫入/etc/rc.local文件中,在exit 0以前。這樣每次開機都會重啓一下該服務。

相關文章
相關標籤/搜索