前言
在將無線路由器刷機成OpenWRT韌體之後,接著就是網路設定了。本文章中,就是要在OpenWRT中,執行各項基本的網路設定。
OpenWRT基本概覽
OpenWRT有兩個預設的存取介面可以使用,一個為透過網頁介面、另外一個為透過SSH協定進入遠端執行指令的介面。這兩個介面皆能夠執行網路設定。
- 預設情況下,網頁介面為埠號80;SSH的port為22。
- 預設情形下,OpenWRT的預設閘道器IP位址為192.168.1.1。
若要修改預設閘道器的IP位址,最簡易方法就是透過SSH遠端進入後,使用vim指令編輯「/etc/config/network」檔案,並找到關於下列節錄的設定。
config interface 'lan' option device 'br-lan' option proto 'static' option ipaddr '192.168.100.1' option netmask '255.255.255.0' option ip6assign '60' config interface 'wwan' option proto 'dhcp'
在「lan」設定中,找到關於「 option ipaddr ‘192.168.100.1’」設定,預設會設定「192.168.1.1」;搭配子網路遮罩則分配IP範圍為「192.168.1.0/24」。
預設閘道IP位址可以自行調整,例如:前述的設定就已經將閘道器IP位址調整為「192.168.100.1」;至於WAN設定預設為dhcp,即使用DHCP協定向廣域網路的路由器取得自動配發的IP位址。
設定完成後,直接執行「reboot」重新開機,不要使用「/etc/init.d/network restart」指令來重新啟動network服務,是因為執行此指令後,整個命令介面會卡住,導致無法使用。最佳方式是直接重新啟動。
OpenWRT埠號轉發設定範例
埠號轉發也是一種NAT設定方法,是DNAT類型,其目的是將WAN上的IP位址轉發流量給LAN上的IP位址。我們在此章節展示一套算是常用的網路拓樸範例與常見的兩個埠號轉發設定之案例。
首先,先看如下的網路拓樸,我們將透過網路拓樸範例來設定不同的埠號轉發實驗(Port forwarding)。
從上述的網路拓樸中,我們能夠知道幾件事情:
- Wireless Router為第一層,即為最外層的無線路由器,負責與網際網路溝通的網通設備。
- 第二層的OpenWRT Router也是無線路由器,負責使用WiFi無線網路技術向上層的「Wireless Router」溝通來設定WWAN (無線廣域網路)。
- 此無線路由器有兩組IP位址,分別為廣域網路取得的IP位址:192.168.50.130以及LAN (區域網路)預設閘道器IP位址:192.168.100.1,其IP位址的範圍為「192.168.100.0/24」。
- 第三層為OpenWRT Router,使用有線的方式與上層路由器連接。
- 此有線路由器WAN的IP位址為192.168.100.100,透過上層以DHCP取得的IP位址;LAN的預設閘道器IP位址則使用192.168.1.1。因此,其IP位址的範圍為「192.168.1.0/24」。
- PC為個人電腦並使用有線網路接在前述的第三層路由器上,取得第三層配發的區域網路IP位址為192.168.1.124。
案例1:第二層的埠號轉發
我們若是要將第三層的OpenWRT網頁設定介面,使用埠號轉發至第二層的WAN IP位址上,則要在第二層的無線路由器做設定,並先確定可透過網頁瀏覽器瀏覽「http://192.168.50.130」之OpenWRT網頁介面。埠號的設定方式如下:
- 首先,先確定第二層的無線路由器中,firewall設定的Zone是否都為允許,即WAN與LAN之間,皆互相允許封包互通。
- 設定在「Network→Firewall→Zones」的頁面設定,如下圖所示。
- 在前述頁面中,切換至「Port Forwards」設定,假設新增一組設定為「openwrt-web-rtac68u」,設定內容如下:
- 名字為:openwrt-web-rtac68u、Protocol為TCP與UDP、External Port為外埠號設定為8080、Internal Port為內部埠號為80。
- 來源Zone設定為WWAN,目標Zone為第二層的LAN區域,轉發至內部區域網路的IP位址為「192.168.100.100」;此為屬於第三層WAN廣域網路的IP位址。
- 設定完成後,按下Save並按下「Save & Apply」,即完成上述的埠號轉發設定。
- 驗證埠號轉發設定:當設定完成後,使用瀏覽器輸入「http://192.168.50.130:8080」即可以存取第三層的OpenWRT路由器的網頁設定頁面了。
案例2:第二與三層埠號轉發
此案例為,若要讓「PC」能夠使用第二層的WAN IP位址(192.168.50.130)存取到,即需要分別於第二層與第三層的路由器皆設定埠號轉發。設定方式與相關設定的截圖如下:
- 先確定目標存取的PC裝置,已經有安裝SSH服務(例如:openssh-server),並有在運行,同時假設此服務監聽並運行於埠號22。
- 先確定第二層與第三層無線路由器的OpenWRT介面中,firewall設定的Zone是否都為允許,即WAN與LAN之間,皆互相允許封包互通,設定方式參考案例1之第1項步驟。
- 接著,在第二層路由器OpenWRT介面中,設定埠號轉發,設定方式與案例1類似,設定重點範例為:將WAN轉發至LAN,192.168.50.130之2222轉發至192.168.100.100之2222。
- 在第三層路由器的OpenWRT介面中,設定埠號轉發,設定方是與案例1類似,設定重點範例為:將WAN轉發至LAN,192.168.100.100之2222轉發至192.168.1.124之22。
- 驗證設定:使用能夠執行ssh的終端機(例如:Putty或Windows Terminal),輸入「ssh username@192.168.50.130 -p 2222」指令來確定是否能夠以SSH協定遠端存取PC。
各式故障排除案例
- 依據不同OpenWRT韌體版本,分別在執行「apk update」或「opkg update」之套件更新後,無法下載套件索引壓縮檔案並出現「wget returned 4」錯誤訊息。
- 需要確定OpenWRT的設定頁面,已經有設定好DNS網域名稱。
- 需要確定OpenWRT介面中,firewall設定的Zone是否都為允許,即WAN與LAN之間,皆互相允許封包互通,設定方式參考案例1之第1項步驟。
- 執行「apk update」或「opkg update」之憑證失效,並出現關於「openwrt Connecting to 151.101.194.132:443 SSL verify error: unknown error Connection error: Invalid SSL certificate」錯誤訊息。
- 網路對時:此錯誤訊息是關於當下之OpenWRT所設定的系統日期有偏移且系統時間未與目前時間同步,或是時間非目前的時間,需要做調整。
- 調整系統日期方式有兩種:
- 手動調整:例如:執行「date -s “2026-08-16 16:50:00″」指令來設定指定的時間。
- 使用ntpd服務來校正時間,立即同步時間方式如下:
# 停止sysntpd背景服務 /etc/init.d/sysntpd stop # 強制執行ntpd指令設定與指定特定NTP伺服器,執行一次性的時間日期同步 ntpd -q -n -p pool.ntp.org # 啟動背景服務 /etc/init.d/sysntpd start
- 完成前述設定後,執行「date」指令以驗證系統時間是否已經同步,再次執行「apk update」或「opkg update」來確認是否套件索引能夠更新了。
- 調整在Raspberry Pi系列的OpenWRT使用大小。預設使用Factory (EXT4)安裝時,將會無法完整使用microSD卡的空間,因此需要使用parted調整硬碟分割區的空間大小。
opkg update opkg install parted resize2fs blkid # 檢查目前分割區大小 blkid /dev/mmcblk0p2 # 調整分割區大小 parted /dev/mmcblk0 resizepart 2 100% # 取得PARTUUID值 blkid /dev/mmcblk0p2 # 將前述取得的PARTUUID值更新至/boot/cmdline.txt的「PARTUUID=」設定 vim /boot/cmdline.txt # 關機並拔除樹莓派上的記憶卡 poweroff # 使用microSD卡的USB讀卡機,使用Linux系列的作業系統將其掛載並依序執行下列指令 lsblk /dev/sdb # 確定已經透過Linux並以USB讀卡機掛載 sudo umount /dev/sdb2 sudo e2fsck -f /dev/sdb2 # 按下「y」做確認 sudo resize2fs /dev/sdb2 # 檢查PARTUUID在分割區大小再更改後,有無改變,若有則需要調整/boot/cmdline.txt設定檔案內容 sudo blkid /dev/sdb2 sudo mkdir -p /mnt/boot sudo mount /dev/sdb1 /mnt/boot cat /boot/cmdline.txt # 需先掛載 sdb1 才能看到,並視情況做出修正 sudo umount /dev/sdb1 # 卸載 /dev/sdb1 # 移除USB讀卡機並將microSD卡插回至數莓派4 # 在樹莓派4驗證OpenWRT是否已經運作正常






