一、背景內容
其實就是接了一單,有人需要我幫忙配置一下樹莓派開機啟動熱點。這邊做個記錄,該方式樹莓派4B、3B都可以使用。
二、實際操作
1、使用網線連線路由器和樹莓派
樹莓派的網路介面一共有三個,分別是:
- eth0:有線網路介面(乙太網介面)
- wlan0:無線網路介面(WiFi介面)
- lo:本地迴環介面(用於本地通訊,localhost:127.0.0.1)
由於需要配置熱點,所以需要對wlan0進行配置,故其WiFi功能需要被關閉,這裡使用eth0進行網路的連線,其已經預設配置為透過DHCP來自動獲取IP地址。連上網線之後透過
ifconfig
檢視eth0是否有固定的IP地址,用於判斷網路是否連線。
2、關閉wlan0的網路連線
終端輸入:
ip route
可以看到:
說明我的裝置透過eth0和wlan0連線到了網路,第一點已經提到了需要用到wlan0來開啟熱點,故這裡需要斷開wlan0的wifi連線功能再進行配置。
終端輸入:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
刪除裡面的全部內容,然後儲存退出重啟服務,一鍵三連~~~
3、樹莓派換源
因為後續需要使用apt install來安裝Linux軟體包,請確保自己的樹莓派的apt源是沒問題的。這裡不過多展開,後續會新增一些其他連結。
4、hostapd
hostapd可以將裝置的無線網路介面配置為熱點模式,使其成為一個軟AP,接受其他裝置的連線。
(1)安裝且停止服務
終端輸入指令進行安裝:
sudo apt install hostapd
停止hostapd的服務:
sudo systemctl stop hostapd
(2)熱點引數的配置
終端輸入:(如果沒用這個檔案,在這個路徑下新建一個即可)
sudo nano /etc/hostapd/hostapd.conf
填入:
interface=wlan0
driver=nl80211
ssid=???
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=???
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
ssid是熱點名稱;wpa_passphrase是熱點密碼,根據需要修改。
填完之後如圖:
(3)給hostapd指定熱點配置檔案的路徑
終端輸入:
sudo nano /etc/default/hostapd
去掉DAEMON_CONF的註釋,並配置成/etc/hostapd/hostapd.conf,如圖所示。意思就是告訴hostapd要從/etc/hostapd/hostapd.conf讀取配置引數。具體如圖:
最後重啟hostapd服務,終端輸入:
sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd
稍等就可以看到產生的熱點訊號了。但是此時熱點無法連線,因為此熱點訊號沒有連線網路,也無法給客戶端分配IP。
5、dhcpcd
dhcpcd是用於進行IP地址相關操作的軟體包,這裡我們用這個軟體包來進行熱點IP地址的固定。
終端輸入指令進行安裝:
(1)安裝dhcpcd
sudo apt install dhcpcd
(2)編輯配置檔案
編輯dhcpcd配置檔案,終端輸入:
sudo nano /etc/dhcpcd.conf
刪除當中的全部內容,然後輸入:
interface wlan0
static ip_address=192.168.4.1/24
nohook wpa_supplicant
這裡設定的static ip_address最好不要和你周圍的無線網路在同一個網段,比如你家無線網路的網段是192.168.2.X,那麼這裡的靜態IP的第三位就設定成其他的就好。
儲存好之後,重啟dhcpcd 服務,終端輸入:
sudo systemctl restart dhcpcd
(3)檢查
之後檢查wlan0的IP地址,終端輸入
ifconfig
可以看到IP地址被固定了,如圖:
6、dnsmasq
dnsmasq軟體包用於給連線熱帶的裝置自動分配IP地址
(1)安裝dnsmasq
終端輸入:
sudo apt install dnsmasq
停止其服務:
sudo systemctl stop dnsmasq
(2)配置引數
終端輸入:
sudo nano /etc/dnsmasq.conf
刪除其全部內容,填入:
interface=wlan0
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h
含義:dhcp 服務會給客戶端分配 192.168.4.2 到 192.168.4.20 的 IP 空間,24 小時租期。
如圖:
之後重啟服務。終端輸入:
sudo systemctl reload dnsmasq
如果報錯了,就執行如下指令:
sudo systemctl unmask dnsmasq
sudo systemctl enable dnsmasq
sudo systemctl start dnsmasq
(3)嘗試連線熱點
服務重啟之後,熱點就可以連線了。因為樹莓派給連線熱點的裝置分配了IP。不過此時還無法上網。
7、啟用IP轉發
終端輸入:
sudo nano /etc/sysctl.conf
找到並且取消註釋以下行:
net.ipv4.ip_forward=1
如圖:
8、配置樹莓派防火牆
終端輸入:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
之後儲存防火牆規則:
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
之後讓裝置每次重啟都過載這個防火牆規則:
sudo nano /etc/rc.local
將iptables-restore < /etc/iptables.ipv4.nat加到最後一行exit 0的前面,如圖:
9、重啟裝置,enjoy yourself~
重啟全部服務:
sudo systemctl unmask hostapd
sudo systemctl unmask dnsmasq
sudo systemctl enable hostapd
sudo systemctl enable dnsmasq
sudo systemctl start hostapd
sudo systemctl start dnsmasq
重啟裝置:
sudo reboot