layout: post
title: "RaspberryPi 3b+ 安裝OpenWrt教程"
date: 2019-09-28 22:00:00 +0800
categories: RaspberryPi
近日在研究p2p原理的時候,因為NAT類型的限制,遇到了不少麻煩,而我們宿舍的路由器又不支持控制NAT方式,於是想在我的樹莓派上安裝OpenWrt以實現一個NAT可控的路由器,本以為既然有了OpenWrt官方固件,應該會比較簡單,可還是遇到了不少麻煩,因此簡單記錄一下,供遇到同樣問題的朋友們參考。
硬件
- Raspberrypi 3b+
首次說明一下需要的硬件,因為 Raspberrypi 3b+
本身帶有無線網卡,網線接口,如果只是打算用樹莓派連接WAN,作為無線路由器的話,是不需要任何其他配件的,對於之前的型號,可能就需要配網卡了。
- 顯示器、鍵盤
注意snapshot版本是不帶 lcui
的,所以沒法直接在瀏覽器進入管理界面,不過理論上來說,開機之后,通過網線和電腦相連應該就可以通過 192.168.1.1
登錄 ssh
了,但是不排除因為網絡調整之類的原因導致無法連接,最好直接連接顯示器和鍵盤,便於調試。
固件說明
接下來說一下固件,有兩種類型固件,一種是release版本
,另一種是snapshot版本
。在我安裝的時候,release版本不帶無線網卡驅動
,而snapshot版本不帶lcui
(也就是用於在瀏覽器登錄的那個路由器管理程序)。
我原本安裝的是release版本,安裝好之后發現無線網卡無法啟動,於是從我的Raspbian系統中復制了相應的無線網卡驅動到OpenWrt系統中,然后就可以成功連接WIFI,也能開AP了,但是由於在之后我連接WAN的時候,樹莓派總是莫名重啟,頻繁到根本無法連接到熱點,於是我決定試試snapshot版本。所以下面就從說說snapshot版本
的安裝與配置過程吧,建議讀者安裝snapshot版本
,我當時查資料的時候大家都推薦的snapshot版本,這應該都是大家試驗之后得出的結論。
下載安裝
下載
有好幾種鏡像,分兩種文件系統、兩種類型( factory
和 sysupgrade
),文件系統都可以,但是要注意 sysupgrade
是用於在路由器管理界面升級使用的,factory
才是使用SD卡刷系統使用的,因為相對更了解ext4,所以我下載了ext4-factory版本。
解壓並寫入鏡像文件
注意sdX代表你SD卡對應的設備文件
gzip -d openwrt-brcm2708-bcm2710-rpi-3-ext4-factory.img.gz
sudo dd if=openwrt-brcm2708-bcm2710-rpi-3-ext4-factory.img of=/dev/sdX bs=2M conv=fsync
開機
接好顯示器和鍵盤,把sd卡裝入樹莓派開機,如果不出意外應該就可以看到輸出,等屏幕上提示按Enter啟動console的時候,就可以按Enter啟動終端了。
如果沒有顯示器的話,可以嘗試用網線直接連接電腦,看能否通過 root@192.168.1.1
登錄,默認是可以直接登錄的,登錄之后可以通過 passwd
設置root密碼。
當然也可以先把sd卡掛載到電腦上,根據下面的說明,改好配置文件后再裝進去開機測試。
啟用無線網卡
確認無線網卡是否正常驅動
使用 ip addr
命令,查看 interface 信息如果存在 wlan0
,則可確定無線網卡驅動沒有問題。
啟用無線網卡
我在剛開機時執行 ip addr
命令,wlan0
的狀態為 DOWN
也就是關閉狀態,因此需要手動啟用。於是我嘗試使用 wifi up
命令來啟用,但是並沒有成功,好像是提示 wlan0處於disabled狀態,這時候如果你執行 wifi status
應該可以看到 radio0
的 disabled
屬性為 true
。
因此需要修改 /etc/config/wireless
文件(系統帶有 vi
命令),將 radio0
配置中的 disabled
改為 0
...
config wifi-device 'radio0'
...
option disabled '0'
...
然后執行 /etc/init.d/network restart
重啟網絡服務,這時候再次使用 ip addr
查看網絡情況,無線網卡應該就已經啟用了,如果沒有的活,可以嘗試使用 wifi up
或者 ip
命令手動啟用
配置網絡
我的配置方式是使用wlan0(無線網卡)建立本地無線局域網,而eno0(以太網卡)只用於連接WAN。
因此我將原本配置文件的 lan
配置中包含 bridge
那一行刪掉了,因為我並不打算用於橋接,並且改成了使用無線網卡 wlan0
(原本是eno0
)。
還有一點值得注意的是,我將 lan
中的 ipaddr
改為了 192.168.2.1
, 這是為了避免將WAN口連接到我們宿舍的路由器上時發生地址沖突,這樣配置之后,連接到樹莓派的無線局域網中的設備的ip也將是192.168.2.*,用那些設備登錄路由器設置(現在還不能用,只有裝好了lcui才能用)或者登錄ssh的話要使用 192.168.2.1
這個地址。
如果你使用網線連接電腦的方式登錄ssh,這樣配置會導致你無法繼續使用這種方式,不過如果wifi配置正確的話,應該可以連接wifi來繼續使用ssh。
config interface 'lan'
option ifname 'wlan0'
option proto 'static'
option ipaddr '192.168.2.1'
option netmask '255.255.255.0'
option ip6assign '60'
對於WAN,要根據實際情況配置
- 如果是寬帶的話,一般是使用
PPPOE
方式
config interface 'wan'
option proto 'pppoe'
option ifname 'eth0'
option ipv6 'auto'
option username '用戶名'
option password '密碼'
- 如果是DHCP局域網,配置更為簡單
config interface 'wan'
option proto 'dhcp'
option ifname 'eth0'
改好配置文件之后, /etc/init.d/network restart
重啟網絡服務,測試一下能否連接wifi,出問題的話,也要多使用 ip addr
命令來排查錯誤,查找原因。
正常情況下,現在應該已經可以連接wifi,連接此wifi的設備也可以連接到 root@192.168.2.1
了。對於wan口,可以使用 ip addr
查看wan口是否已經獲取到了ip地址,沒有的話好好檢查下配置。
檢測是否一切正常
如果你的WAN可以正常連接,WIFI也可以正常使用的話,那么恭喜,如果WAN正常連接而WIFI不能上網的話,可能是防火牆配置的問題,下文會告訴你怎么改配置。既然已經可以連接網絡了,我們不妨先來安裝好 lcui
,然后就可以像路由器一樣登錄管理界面了。
安裝 lcui
管理程序
參見https://openwrt.org/zh-cn/doc/howto/luci.essentials
安裝
在軟件庫中檢索可用軟件包的最新列表:
opkg update
完整安裝一個不需要HTTPS支持的LuCI:
opkg install luci
完整安裝一個需要HTTPS支持的LuCI:
opkg install luci-ssl
開始使用Web服務器(uHTTPd)
Web服務器uHTTPd是LuCI安裝包的一個依賴軟件,它會在你安裝LuCI時自動安裝。
安裝后,Web服務器是未運行的!你需要手動開啟它。你還應該啟動Web服務器,以使它在你重啟路由器時自動啟動。
下面的第一個命令啟動Web服務器,第二個使它在重啟時啟動。
/etc/init.d/uhttpd start /etc/init.d/uhttpd enable
安裝好之后,應該就可以登錄OpenWrt管理界面了