關掉 Network Manager 自己手動設定 static ip 吧!

這邊分享如何設定 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?

Written by J
雖然大學唸的是生物,但持著興趣與熱情自學,畢業後轉戰硬體工程師,與宅宅工程師們一起過著沒日沒夜的生活,做著台灣最薄的 intel 筆電,要與 macbook air 比拼。 離開後,憑著一股傻勁與朋友創業,再度轉戰軟體工程師,一手扛起前後端、雙平台 app 開發,過程中雖跌跌撞撞,卻也累計不少經驗。 可惜不是那 1% 的成功人士,於是加入其他成功人士的新創公司,專職開發後端。沒想到卻在採前人坑的過程中,拓寬了眼界,得到了深層的領悟。