設定指南
首次啟動後安全開始使用的步驟。請先設定 WAN,再以 HTTPS 保護 LuCI 的同時逐步進行設定。
工作 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 連接埠)
- 設定錯誤可能導致無法存取執行個體。作業過程中請保持主控台開啟
- 主控台可能會以美式鍵盤配置解讀輸入(尤其是
/與:)。本指南主要用到的符號為.、/及空格
整體流程 #
- (選用)在入口網站建立 OpenWrt 執行個體
- 在入口網站記錄 WAN 資訊與管理 IP
- 透過主控台以 root 登入
- 執行
firstboot.sh以初步設定 WAN 及 HTTPS - 在雲端側 FW/SG 中,僅允許來自管理 IP 的 TCP 443
- 登入 LuCI(HTTPS)
- (如有需要)註冊 SSH 公開金鑰 → 使用
enable_ssh.sh啟用 SSH → 在雲端側 FW/SG 中僅允許來自管理 IP 的 TCP 22
步驟 0(選用)在入口網站建立 OpenWrt 執行個體 #
若執行個體已經佈建完成,可略過此步驟。入口網站介面可能因供應商而異,但範例遵循以下流程:
步驟 0.1 將範本(OS)設為 OpenWrt #
圖片:建立畫面中選擇範本的範例(1 = OS 範本/2 = 主機名稱)。步驟 0.2 確認 Public IP 配置設定並建立 #
圖片:網路設定範例(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.18.8.8.8即可)
管理 IP(您裝置的全域 IP) #
- 固定全域 IP(建議):公司線路/VPN 出口等
- 範例:
203.0.113.10/32
若您的管理 IP 會變動(行動網路/家用線路),日後很可能會將自己鎖在外面。請盡量使用固定 IP(公司/VPN)。
如有疑慮,請開立支援票與我們洽詢。
圖片:入口網站中確認「主控台」與「IP(WAN)」位置的範例(1 = 主控台/2 = IP)。參考:CIDR 與子網路遮罩換算 #
| CIDR | 子網路遮罩 |
|---|---|
| /29 | 255.255.255.248 |
| /28 | 255.255.255.240 |
| /27 | 255.255.255.224 |
| /26 | 255.255.255.192 |
| /24 | 255.255.255.0 |
步驟 2透過主控台登入(必要) #
- 從入口網站開啟主控台(noVNC/Proxmox 等)。
- 出現
login:時,以root登入。
初始狀態下,root 密碼通常尚未設定(處於鎖定狀態),此範本假設可透過主控台登入。若被要求輸入您不知道的密碼,請聯絡供應商。
步驟 3執行初始設定指令碼 #
確認提示字元為 root@OpenWrt:~#,然後執行 firstboot.sh。
./firstboot.sh若執行失敗(出現 Permission denied 等錯誤),請以指定路徑的方式執行:
sh /root/firstboot.sh
圖片:在主控台執行 ./firstboot.sh 的範例(1 = 要執行的指令)。步驟 4回答指令碼的提問 #
指令碼會依序提出問題。請使用您在步驟 1中記錄的資訊作為輸入值。
步驟 4.1 設定 root 密碼(必要) #
若指令碼一開始偵測到 root 密碼尚未設定,將會啟動 passwd。請依照指示設定新密碼。
此密碼為登入 LuCI(HTTPS GUI)所必需。
步驟 4.2 輸入 WAN 設定 #
本指南的前提是 eth0 為 WAN,因此即使提示顯示 WAN device [eth1]:,也請輸入 eth0。
圖片: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 側)
圖片:在基礎 FW/SG 中開放連接埠 443 的範例(1 = 將來源 IP 限制為管理 IP/2 = 目的連接埠 443/3 = 輸出方向)。※ 項目名稱與外觀可能因入口網站而異。即使先在基礎 FW 開放連接埠 443,在 OpenWrt 側允許之前仍無法存取,因此相對安全,但仍請務必限制來源 IP。
步驟 6登入 HTTPS GUI(LuCI) #
請從瀏覽器存取以下網址:
https://<WAN_IP>/此時會出現自簽憑證警告。請確認內容後繼續(瀏覽器顯示方式依環境而異)。
圖片:自簽憑證警告範例(1 = 進階設定)。出現登入畫面後,請以使用者 root 及您在步驟 4.1 設定的密碼登入。
步驟 7(如有需要)啟用 SSH #
原則:先註冊金鑰後再啟用 SSH(禁止使用密碼進行 SSH)。若您的作業不使用 SSH,可略過本節。
步驟 7.1 在 LuCI 中註冊 SSH 公開金鑰 #
LuCI 選單範例(標示方式可能因環境略有不同):
System → Administration → SSH-Keys
圖片:在 LuCI 中開啟 System 選單並選擇 Administration 的範例(1 = System/2 = Administration)。
圖片: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
圖片:啟動 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(逾時) #
排查順序:
- 確認雲端側 FW/SG 是否已允許來自管理 IP 的 TCP 443
- 確認您的管理 IP 是否正確(線路是否已變更?)
- 在主控台確認 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