OpenWrt 初始設定步驟

OpenWrt 初始設定步驟

4 min read

設定指南

BESTNET 提供之 OpenWrt 範本 初始設定說明

首次啟動後安全開始使用的步驟。請先設定 WAN,再以 HTTPS 保護 LuCI 的同時逐步進行設定。

WAN = eth0
工作 LAN = eth1
HTTPS GUI(LuCI)
僅在必要時使用 SSH

適用範圍與前提條件 #

  • 適用對象:BESTNET 提供之 OpenWrt 範本
  • WAN = eth0(設定全域 IP 的介面)
  • 工作 LAN = eth1(DHCP/用於主控台復原的網路)
  • 初次登入透過 HTTPS GUI(LuCI)進行
  • SSH僅在必要時啟用(於註冊金鑰/開放連接埠 22 後啟用,禁止使用密碼進行 SSH)

重要注意事項(請務必閱讀) #

此範本不支援 cloud-init,因此首次使用時需要手動設定。

  • 必須限制存取來源 IP(將雲端側 FW/SG 與 OpenWrt 側 FW 皆設定為僅允許來自您管理 IP 的 443/22 連接埠)
  • 設定錯誤可能導致無法存取執行個體。作業過程中請保持主控台開啟
  • 主控台可能會以美式鍵盤配置解讀輸入(尤其是 / 與 :)。本指南主要用到的符號為 .、/ 及空格

整體流程 #

  1. (選用)在入口網站建立 OpenWrt 執行個體
  2. 在入口網站記錄 WAN 資訊與管理 IP
  3. 透過主控台以 root 登入
  4. 執行 firstboot.sh 以初步設定 WAN 及 HTTPS
  5. 在雲端側 FW/SG 中,僅允許來自管理 IP 的 TCP 443
  6. 登入 LuCI(HTTPS)
  7. (如有需要)註冊 SSH 公開金鑰 → 使用 enable_ssh.sh 啟用 SSH → 在雲端側 FW/SG 中僅允許來自管理 IP 的 TCP 22

步驟 0(選用)在入口網站建立 OpenWrt 執行個體 #

若執行個體已經佈建完成,可略過此步驟。入口網站介面可能因供應商而異,但範例遵循以下流程:

步驟 0.1 將範本(OS)設為 OpenWrt #

Example of selecting OpenWrt template in creation screen圖片:建立畫面中選擇範本的範例(1 = OS 範本/2 = 主機名稱)。

步驟 0.2 確認 Public IP 配置設定並建立 #

Example of verifying Public IP allocation in network settings圖片:網路設定範例(1 = 將 IPv4 Pool 設為 Public IP/2 = IP 數量(通常為 1)/3 = 建立按鈕)。

重點:本指南的前提是 eth0 為 WAN(Public)。若入口網站可變更網卡配置或順序,請確保 eth0 位於 Public 端。

步驟 1事前準備(於入口網站確認) #

請從入口網站記錄以下資訊(配置資訊):

WAN(全域)資訊 #

  • IPv4 位址(範例:203.0.113.2)
  • 子網路遮罩(範例:255.255.255.224)
  • 閘道(範例:203.0.113.1)
  • DNS(若無特別指定,使用 1.1.1.1 8.8.8.8 即可)

管理 IP(您裝置的全域 IP) #

  • 固定全域 IP(建議):公司線路/VPN 出口等
  • 範例:203.0.113.10/32

若您的管理 IP 會變動(行動網路/家用線路),日後很可能會將自己鎖在外面。請盡量使用固定 IP(公司/VPN)。

如有疑慮,請開立支援票與我們洽詢。

Example of location to confirm console and WAN IP in portal圖片:入口網站中確認「主控台」與「IP(WAN)」位置的範例(1 = 主控台/2 = IP)。

參考:CIDR 與子網路遮罩換算 #

CIDR子網路遮罩
/29255.255.255.248
/28255.255.255.240
/27255.255.255.224
/26255.255.255.192
/24255.255.255.0

步驟 2透過主控台登入(必要) #

  1. 從入口網站開啟主控台(noVNC/Proxmox 等)。
  2. 出現 login: 時,以 root 登入。

初始狀態下,root 密碼通常尚未設定(處於鎖定狀態),此範本假設可透過主控台登入。若被要求輸入您不知道的密碼,請聯絡供應商。

步驟 3執行初始設定指令碼 #

確認提示字元為 root@OpenWrt:~#,然後執行 firstboot.sh。

./firstboot.sh

若執行失敗(出現 Permission denied 等錯誤),請以指定路徑的方式執行:

sh /root/firstboot.sh
Example of running firstboot.sh in console圖片:在主控台執行 ./firstboot.sh 的範例(1 = 要執行的指令)。

步驟 4回答指令碼的提問 #

指令碼會依序提出問題。請使用您在步驟 1中記錄的資訊作為輸入值。

步驟 4.1 設定 root 密碼(必要) #

若指令碼一開始偵測到 root 密碼尚未設定,將會啟動 passwd。請依照指示設定新密碼。

此密碼為登入 LuCI(HTTPS GUI)所必需。

步驟 4.2 輸入 WAN 設定 #

本指南的前提是 eth0 為 WAN,因此即使提示顯示 WAN device [eth1]:,也請輸入 eth0。

Input example for firstboot.sh圖片:firstboot.sh 的輸入範例(1 = 將 WAN device 設為 eth0/2 = 輸入 WAN 的 IPv4、子網路遮罩、閘道、DNS)。

需要輸入的項目(範例):

  • WAN device:eth0
  • WAN IPv4 位址:入口網站中的 IP(範例:203.0.113.2)
  • WAN netmask:入口網站中的子網路遮罩(範例:255.255.255.224)
  • WAN gateway:入口網站中的閘道(範例:203.0.113.1)
  • DNS servers:若無特別指定,使用 1.1.1.1 8.8.8.8 即可
  • Admin source IP/CIDR:您的管理 IP(範例:203.0.113.10/32)

步驟 4.3 確認套用 #

最後會顯示您的設定內容。若確認無誤,請輸入 y,以回應 Apply these settings? [y/N]: 的提示。

套用完成後,指令碼會設定 OpenWrt 側的網路設定,以及以管理 IP 限制的 HTTPS 存取允許(FW)設定。

步驟 5設定基礎防火牆(雲端側)(HTTPS) #

指令碼執行完成後,請在雲端側(基礎 FW/SG)允許 HTTPS。

  • 允許:TCP 443
  • 來源:管理 IP(範例:203.0.113.10/32)
  • 目的地:此 OpenWrt 執行個體(WAN 側)
Example of permitting TCP 443 from management IP only in base firewall圖片:在基礎 FW/SG 中開放連接埠 443 的範例(1 = 將來源 IP 限制為管理 IP/2 = 目的連接埠 443/3 = 輸出方向)。※ 項目名稱與外觀可能因入口網站而異。

即使先在基礎 FW 開放連接埠 443,在 OpenWrt 側允許之前仍無法存取,因此相對安全,但仍請務必限制來源 IP。

步驟 6登入 HTTPS GUI(LuCI) #

請從瀏覽器存取以下網址:

https://<WAN_IP>/

此時會出現自簽憑證警告。請確認內容後繼續(瀏覽器顯示方式依環境而異)。

Example of self-signed certificate warning圖片:自簽憑證警告範例(1 = 進階設定)。

出現登入畫面後,請以使用者 root 及您在步驟 4.1 設定的密碼登入。

步驟 7(如有需要)啟用 SSH #

原則:先註冊金鑰後再啟用 SSH(禁止使用密碼進行 SSH)。若您的作業不使用 SSH,可略過本節。

步驟 7.1 在 LuCI 中註冊 SSH 公開金鑰 #

LuCI 選單範例(標示方式可能因環境略有不同):

System → Administration → SSH-Keys

Example of opening Administration screen in LuCI圖片:在 LuCI 中開啟 System 選單並選擇 Administration 的範例(1 = System/2 = Administration)。
Screen to register SSH public key in LuCI圖片:SSH-Keys 註冊畫面範例(1 = 貼上公開金鑰/2 = Add key 按鈕)。※ 公開金鑰為「非私密金鑰」(範例:~/.ssh/id_ed25519.pub)。

貼上公開金鑰(ssh-ed25519 AAAA... 需為單行)後儲存。

請勿貼上私密金鑰(id_ed25519 等)。

步驟 7.2 執行 SSH 啟用指令碼 #

請在主控台執行以下指令:

./enable_ssh.sh

若無法正常執行,請以指定路徑方式執行:

sh /root/enable_ssh.sh
Example of starting enable_ssh.sh圖片:啟動 enable_ssh.sh 並輸入允許存取 SSH(22)之來源 IP 的範例(1 = 執行位置)。

系統會詢問您管理 IP。若與 HTTPS 使用的管理 IP 相同,直接按 Enter 採用預設值即可。

此指令碼通常會執行以下作業:

  • 啟動 dropbear(SSH)
  • 設定僅使用金鑰驗證(停用密碼驗證)
  • 在 OpenWrt 防火牆新增規則,僅允許來自管理 IP 的連接埠 22

步驟 7.3 同時在雲端側 FW/SG 開放連接埠 22(限管理 IP) #

  • 允許:TCP 22
  • 來源:管理 IP(範例:203.0.113.10/32)
  • 目的地:此 OpenWrt 執行個體(WAN 側)

警告:在 OpenWrt 側完成 SSH 啟用(金鑰註冊 + enable_ssh)之前,請勿完全開放連接埠 22。

步驟 7.4 驗證連線(從您的裝置) #

ssh -i ~/.ssh/id_ed25519 root@<WAN_IP>

使用密碼進行 SSH 登入預期會失敗(僅限金鑰)。

步驟 8常見疑難排解與復原 #

步驟 8.1 無法存取 HTTPS(逾時) #

排查順序:

  1. 確認雲端側 FW/SG 是否已允許來自管理 IP 的 TCP 443
  2. 確認您的管理 IP 是否正確(線路是否已變更?)
  3. 在主控台確認 WAN 設定是否已正確設定

主控台確認:

uci show network.wan
ip -o -4 addr show
ip route

確認封包是否有送達(範例):

tcpdump -ni eth0 tcp port 443

步驟 8.2 管理 IP 已變更且無法存取 #

若管理 IP 已變更,可在主控台中改寫允許的 IP。

改寫 HTTPS 允許的來源:

uci set firewall.allow_https_from_admin.src_ip='<NEW_IP/32>'
uci commit firewall
/etc/init.d/firewall restart

若使用 SSH:

uci set firewall.allow_ssh_from_admin.src_ip='<NEW_IP/32>'
uci commit firewall
/etc/init.d/firewall restart

步驟 8.3 WAN device 設定錯誤(eth0/eth1) #

在錯誤的介面上設定 WAN 會導致無法存取執行個體。可透過主控台進行復原。請確認 network.wan.device 是否為 eth0。

uci show network.wan.device
uci show network.wan.ifname  # Depending on environment, this key may be used instead

附錄:本指南中常用的預留位置替換對照 #

<WAN_IP> #

於入口網站確認之 WAN IPv4

<ADMIN_SOURCE_CIDR> #

您的管理 IP(範例:203.0.113.10/32)

<NEW_IP/32> #

管理 IP 變更後的新 IP

Updated on 2026年6月9日

What are your feelings

  • Happy
  • Normal
  • Sad

©2020 BESTNET.LLC . All Rights Reserved.