樹莓派2的設置辦法:
1. 安裝NetworkManager管理工具(可選),以支持nmcli命令
sudo apt-get install -y network-manager
2. 安裝hostapd和dhcpd
sudo apt-get install -y hostapd isc-dhcp-server
開機不需要啟動這兩個服務,建議把它們關掉:
sudo update-rc.d -f hostapd remove
3. 配置hostapd和dhcpd
sudo vi /etc/hostapd/hostapd.conf
注意自己設置其中的無線熱點名稱ssid和認證密碼wpa_passphrase.
interface=wlan0 ssid=lysmartscreen hw_mode=g channel=10 macaddr_acl=0 auth_algs=3 wpa=2 wpa_passphrase=YOUR_AP_PASSWORD wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP CCMP rsn_pairwise=TKIP CCMP
設置dhcpd.conf
sudo vi /etc/dhcp/dhcpd.conf
subnet 192.168.0.0 netmask 255.255.255.0{ range 192.168.0.2 192.168.0.10; option routers 192.168.0.1; option domain-name-servers 192.168.0.1,180.76.76.76,8.8.8.8; }
其中180.76.76.76是百度公共DNS服務器,8.8.8.8則是Google的DNS服務器.
在自己的家目錄下創建一個放日志的logs目錄,里面新建啟動和關閉腳本:
mkdir /home/pi/logs
啟動AP的腳本:
vi /home/pi/logs/ap-start.sh
#!/bin/bash # 開啟內核IP轉發 bash -c "echo 1 > /proc/sys/net/ipv4/ip_forward" # 開啟防火牆NAT轉發(如果本機使用eth0上網,則把ppp0改為eth0) iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE # 關閉NetworkManager對無線網卡的控制(這句實測中nm參數無效, 但似乎不影響使用) nmcli nm wifi off # 設置並啟動無線網卡 ifconfig wlan0 192.168.0.1 netmask 255.255.255.0 # 解鎖無線設備,可以用rfkill list查看解鎖結果. rfkill unblock wlan # 睡眠6秒,待rfkill解鎖生效 sleep 6s # 啟動dhcpd和hostapd,如果hostapd無法啟動請查看日志hostapd.log,查看這兩個進程ps -ef|egrep "dhcpd|hostapd" nohup hostapd /etc/hostapd/hostapd.conf >/home/pi/logs/hostapd.log 2>&1 & dhcpd wlan0 -pf /var/run/dhcpd.pid ps -ef|head -n1 && ps -ef|egrep "dhcpd|hostapd"
停止AP的腳本:
vi /home/pi/logs/ap-stop.sh
#!/bin/bash killall hostapd dhcpd bash -c "echo 0 > /proc/sys/net/ipv4/ip_forward" ifconfig wlan0 down
4. 啟動hostapd和dhcpd
給2個腳本增加執行的權限
chmod +x /home/pi/logs/ap-*.sh
啟動AP:
sudo /home/pi/logs/ap-start.sh
看到上圖的內容表示AP創建成功 (注:腳本位置與上文所講略有不同, 靈活處理即可)
停止AP:
sudo /home/pi/logs/ap-stop.sh
附一張手機連上AP的圖片
樹莓派3的設置辦法:
git clone https://github.com/oblique/create_ap.git
如果未裝git, 就先裝上它
sudo apt-get install git
git下來后安裝
cd create_ap/
sudo make install
安裝依賴包
sudo apt-get install util-linux procps hostapd iproute2 iw haveged dnsmasq -y
試試創建熱點
sudo ifdown wlan0
sudo create_ap wlan0 eth0
如果不成功
試加一個參數
sudo create_ap --no-virt wlan0 eth0
按提示輸入SSID名字和密碼,看到下圖的內容表示成功, 可以在Wifi中搜索到這個熱點了
如果想一句命令包含你創建的SSID和密碼, 可以這樣
sudo create_ap --no-virt wlan0 eth0 ssidname password
done.