這邊分享如何設定 wifi 成靜態 ip 的步驟,如果你的 Raspberry pi 有時候會斷線,可以試試看這個方法能不能改善。
建立 wpa_supplicant.conf
這份檔案主要是儲存 wifi SSID 和密碼,透過以下指令生出此檔案。請記得把 MySSID 和 MyWiFIPassword 換成你的。
sudo su -c "wpa_passphrase MySSID MyWiFIPassword > /etc/wpa_supplicant/wpa_supplicant.conf"
此時看 wpa_supplicant.conf 的內容,會長這樣
network={
ssid="MySSID"
#psk="MyWiFIPassword"
psk=eb6934445c268ab6ba6138318e69929b8b68bd6421c679410c01f2ad78fafe21
}
如果密碼沒打錯,記得密碼原文刪掉避免外洩!
修改 /etc/network/interfaces
加入以下設定,其中 address,netmask,gateway 依你的情況修改!
# device wlan0
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.6.126
netmask 255.255.255.0
gateway 192.168.6.1
dns-nameservers 8.8.8.8 8.8.4.4
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
# Disable power saving on compatible chipsets (prevents SSH/connection dropouts )
wireless-mode Managed
wireless-power off
關閉 network manager
只要 linux 有使用過 desktop 介面,預設會幫你裝 network manager,提供像一般桌面環境的連線體驗。但如果我們只使用文字介面,且當作 server 跑 docker 等服務,其實是不建議使用的!既然我們已經自己設定了 network interfaces ,就一起把 network manager 關掉。
# Debian:
sudo /etc/init.d/network-manager stop
sudo update-rc.d network-manager remove
# Ubuntu or Linux Mint
sudo service network-manager stop
echo "manual" | sudo tee /etc/init/network-manager.override
# Fedora:
sudo systemctl stop NetworkManager.service
sudo systemctl disable NetworkManager.service
修改 /etc/NetworkManager/NetworkManager.conf
[ifupdown]
managed=false # 改為 false
完成!
延伸閱讀:發生 Name or service not known?手動設定 Linux DNS 吧!
參考資料
Auto run wifi with static ip
Disable Network Manager
Should you use NetworkManager on Docker nodes?