我們之前已經實作過把 Raspberry Pi 變成 Wi-Fi 無線基地台,若是我們只打算讓 Raspberry Pi 用 Wi-Fi 上網而已,要怎麼做呢?
事前準備
- Raspberry Pi Type A、B、B+ 均可。
- Raspbian 作業系統。
- USB 無線網卡,這裡用的是 Edimax EW-7811Un。
- 無線基地台 (AP,Access Point) 一台。
開始實作
先依 Raspberry Pi 的基礎 - 系統設定的調教 把 Raspbian 安裝並做好基本設定,接著把無線網卡插上 Raspberry Pi 的 USB 接孔。
如果是 Linux Kernel 支援的型號,就可以直接偵測的到已驅動的 USB 設備,elinux.org - RPi USB Wi-Fi Adapters 有列出 Raspbian 原生支援的清單。
lsusb
無線網卡 wlan0 直接被啟動了。
ifconfig wlan0
如果 Kernel 不支援的話,就必須到網卡製造商的官網下載 for Linux 的驅動程式,再自己編譯及安裝了。
目前可以看到無線網卡尚未連上任何一個 AP,
iwconfig wlan0
先來掃瞄一下附近可用的 AP 清單,這裡可以看到我附近有四個可連線的基地台。
iwlist wlan0 scan
以 SQM 這一台 AP 為例,我們來看一下這些資訊是什麼意思。
- Address - AP 的 MAC Address。
- ESSID - 基地台的連線名稱。
- Protocol - 支援的通訊協定,這台支援了 802.11b/g/n 三種協定。
- Frequency - 傳輸的頻率是 2.4GHz。
- Encryption key - 已啟用加密。
- Bit Rates - 傳輸速度為 144Mbps。
- IE - 加密法,我們用的是 WPA2-PSK + CCMP。
- Quality & Singal Level - 訊號強度。
為了讓無線網卡連上 AP,先看一下網路卡的主設定檔。
sudo vi /etc/network/interfaces
- allow-hotplug wlan0 - 支援熱插拔
- iface wlan0 inet manual - 手動指定網路設定
- wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf - 使用 wpa_supplicant 設定網路參數
sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
預設的內容只有兩行。
開始輸入設定值,這邊就以 SQM 這個 AP 的設定值為例,它是用 WPA2 加密協定。
network={
ssid="SQM" # 基地台名稱
psk="No-Money-No-Wifi-Password" # 密碼
proto=RSN # WPA2 加密協定
pairwise=CCMP # WPA2 加密協定
key_mgmt=WPA-PSK # WPA2 金鑰管理協定
auth_alg=OPEN # WPA2 認證演算法
}
若加密協定用的是 WPA 時,設定值請改成
network={
ssid="SQM" # 基地台名稱
psk="No-Money-No-Wifi-Password" # 密碼
proto=WPA # WPA 加密協定
key_mgmt=NONE # WPA 未使用
auth_alg=OPEN # WPA 認證演算法
}
若加密協定用的是 WEP 時,設定值請改成
network={
ssid="SQM" # 基地台名稱
wep_key0="No-Money-No-Wifi-Password" # 密碼
key_mgmt=NONE # WEP 未使用
auth_alg=SHARED # WEP 認證演算法
}
重新啟動無線網卡。
sudo ifdown wlan0
sudo ifup wlan0
若需要 wpa_supplicant.conf 的進階設定說明,請參閱 wpa_supplicant Linux documentation page。
讓無線網卡與基地台進行驗證,並從 DHCP 取得 IP 位址。
sudo kill -9 $(ps -ef | grep wpa | awk '{print $2}')
sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
sudo dhclient wlan0
無線網卡需要一點點時間通過基地台的驗證,稍等一下可以對外連線了。
ifconfig wlan0
無線網路卡的燈號亮起就代表連線成功了。
如果常常要讓 Raspberry Pi 在不同地點的無線基地台之間連線,可以直接把設定值全部寫在一起。
將密碼加密
可以正常連線了是很好,可是密碼這麼大剌剌的用明碼顯示出來,不會太危險了些嗎? 所以,我們把它加密處理一下吧!!!
使用 wpa_passphrase 指令加密,後面用「'」單引號把基地台名稱及密碼包起來。
wpa_passphrase 'SQM' 'NO-Money-No-Wifi-Password'
編輯 wpa_supplicant.conf 的內容,把密碼換下來,別忘了前後的「"」雙引號要刪掉。
sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
如此就可以安心的使用無線網卡連線,又不會被偷看密碼了。
系列文章
- Raspberry Pi 的基礎 - 使用 Wi-Fi 無線網卡連上網路
- Raspberry Pi 的應用 - Wi-Fi 無線基地台
- Raspberry Pi 的應用 - 可以隱藏上網足跡的 Tor 洋蔥路由器
- Raspberry Pi 的應用 - 加快上網速度的 Squid 快取伺服器
參考資料
- Raspberry Pi - Setting WiFi up via the command line
- 台灣樹莓派 - [基礎] 命令列設置無線網路
- 周丕中的生活技术博客 - CentOS 命令行下连接加密模式为 WPA/WPA2-PSK 的无线网络
- 玩具烏托邦 - 赤手空拳也要用 wpa_supplicant 接通無線網路
圖片來源
更新紀錄
- 2015/01/13 撰文。
請問要如何設定連線第一組SSID01對應固定IP1,第二組SSID02對應固定IP2
回覆刪除因為在家裡連無線網路SSID01,樹莓派固定IP假設為192.168.43.88
在外面用手機無線網路SSID02,樹莓派固定IP假設為192.168.1.89
要如何整合自動連線多組AP後,各自對應固定IP,因為兩地在用每天都要一直改很煩惱
因為樹莓派沒裝螢幕,GPIO直接輸出到設備,大多用筆電、桌機或手機連線,也常斷電開關機。另外也會讓別人手機裝xrdp遠端控制root權限到X-windows下當作人機介面操作。不使用DDNS,能達成兩組以上自動連線AP後對應設定不同固定IP嗎?
家裡可能有機會在 AP 裡設定 Static IP 對應,手機就無解了,所以最簡單的方法是寫成 Shell Script 來執行。
刪除Great Article Cloud Computing Projects
刪除Networking Projects
Final Year Projects for CSE
JavaScript Training in Chennai
JavaScript Training in Chennai
The Angular Training covers a wide range of topics including Components, Angular Directives, Angular Services, Pipes, security fundamentals, Routing, and Angular programmability. The new Angular TRaining will lay the foundation you need to specialise in Single Page Application developer. Angular Training
請問要如何設定連線第一組SSID01對應固定IP1,第二組SSID02對應固定IP2
回覆刪除因為在家裡連無線網路SSID01,樹莓派固定IP假設為192.168.43.88
在外面用手機無線網路SSID02,樹莓派固定IP假設為192.168.1.89
要如何整合自動連線多組AP後,各自對應固定IP,因為兩地在用每天都要一直改很煩惱
因為樹莓派沒裝螢幕,GPIO直接輸出到設備,大多用筆電、桌機或手機連線,也常斷電開關機。另外也會讓別人手機裝xrdp遠端控制root權限到X-windows下當作人機介面操作。不使用DDNS,能達成兩組以上自動連線AP後對應設定不同固定IP嗎?
請問要如何設定連線第一組SSID01對應固定IP1,第二組SSID02對應固定IP2
回覆刪除因為在家裡連無線網路SSID01,樹莓派固定IP假設為192.168.43.88
在外面用手機無線網路SSID02,樹莓派固定IP假設為192.168.1.89
要如何整合自動連線多組AP後,各自對應固定IP,因為兩地在用每天都要一直改很煩惱
因為樹莓派沒裝螢幕,GPIO直接輸出到設備,大多用筆電、桌機或手機連線,也常斷電開關機。另外也會讓別人手機裝xrdp遠端控制root權限到X-windows下當作人機介面操作。不使用DDNS,能達成兩組以上自動連線AP後對應設定不同固定IP嗎?
請問Raspberry Pi B
回覆刪除不外接任何無線設備
可以直接連wifi嗎?
除了 3B 跟 Zero W 有內建 WiFi 功能之外,其他的型號都必須外接 USB WiFi 網卡才行。
刪除想請問連接網路時 開網頁很慢是CPU的問題嗎?還是網卡?
回覆刪除我ping google還蠻快的 不過google以外的都超慢回應..
都有可能,無線基地台跟對外頻寬也會有影響,
刪除而且 ping 的 response time 快,並不代表網路真的很快,那是兩回事。
"Your style is unique in comparison to other people I have read stuff from.
回覆刪除Thanks for posting when you have the opportunity, Guess I’ll just bookmark this
web site."
Regards: Eve Hunt