選擇執行模式
系統設定 → 模式 會將網路拓撲與路由方式組合成數個選項。設定前,請分別釐清三件事:流量如何抵達裝置、閘道如何找到服務,以及哪些人可以存取服務。
Web 服務以 Host 路由為主要方案。路徑模式保留給既有的路徑入口或無法遷移的應用程式,不建議用於新部署。
本頁的應用程式內 Tunnel 步驟,只適用於管理後台確實提供 FRP 或 Cloudflared 的部署方式。Windows 的 7999 預設監聽所有介面,可作為公網直連或自管 Tunnel 的回源端點,但不內建 FRP、Cloudflared、直連授權或動態主機防火牆管理;是否能從外部連線,仍取決於 Windows Firewall Profile、路由器/NAT、IPv6 與 ISP 原則。詳情請參閱 Windows x86_64 部署。
1. 選擇網路拓撲
| 條件 | 後台選項 | 外部流量 |
|---|---|---|
| 裝置具備可從外部連線的公網 IPv4 / IPv6 | 子網域模式 | 網域名稱直接進入閘道 |
| 裝置沒有公網入口 | 內網穿透 | FRP 或 Cloudflared 將請求送入閘道 |
| 必須在登入後繼續存取原始連接埠 | 直連模式(不建議) | 先進入閘道登入,再由防火牆放行來源 IP |
是否擁有公網 IP 只會決定入口拓撲,不代表 Web 服務必須採用路徑路由。內網穿透 同樣可以選擇子網域映射。
2. 選擇路由
Host 路由:Web 服務的預設選擇
在公網直連的 子網域模式,或 內網穿透 → 子網域映射 中,請求會依 Host 分流:
auth.example.com -> 身分驗證服務
nas.example.com -> http://127.0.0.1:5666
alist.example.com -> http://127.0.0.1:5244每項服務都能保留 Root Path,靜態資源、WebSocket 與 Callback URL 通常也更容易正常運作。兩種拓撲共用同一套 子網域映射 設定,但功能有所不同:
- 公網直連子網域模式可搭配主機防火牆、智慧連線與通訊協定映射。
- 內網穿透子網域映射可繼續使用 FRP / Cloudflared,但不提供智慧連線與通訊協定映射。
設定步驟請參閱子網域模式快速上手。
路徑路由:相容方案
內網穿透 → 路徑模式 會在同一個 Host 下使用路徑 Prefix 分流服務:
https://example.com/alist -> http://127.0.0.1:5244
https://example.com/fnos -> http://127.0.0.1:5666部分應用程式需要移除 Prefix、改寫 HTML 或處理 Root Path 相容性,仍可能因 Absolute Path、Service Worker 或 Callback URL 而失效。既有的路徑部署可繼續使用;新服務應優先改用 Host 路由。設定步驟請參閱內網穿透快速上手。
TCP / UDP 與原始連接埠
通訊協定映射會為 SSH、資料庫、DNS 等非 HTTP 服務額外監聽 TCP / UDP 連接埠,僅在公網直連的子網域模式中提供。請參閱通訊協定映射。直連模式不會轉送服務;它會在登入後將目前的來源 IP 加入放行範圍,再存取5666、22等原始連接埠。請參閱直連模式快速上手。
3. 選擇存取原則
目前的 Host 編輯頁面直接提供 要求登入 開關。關閉代表公開,開啟則優先要求登入:
| 設定 | 公網請求的結果 | 適用情境 |
|---|---|---|
關閉 要求登入(目前優先登入映射) | 直接 Proxy 至上游 | 明確要公開的服務 |
開啟 要求登入 | 沒有有效的來源 IP 授權或工作階段時,重新導向 auth.example.com;完成後回到原本的 Host | 大多數私有 Web 服務 |
後端仍可辨識舊設定中的 strict_whitelist:這類規則即使關閉 要求登入 也不一定公開,仍會依有效的來源授權記錄判斷(手動加入或登入後自動建立),瀏覽器工作階段 Cookie 本身不能取代來源條件。目前介面沒有新增或切換嚴格允許清單規則的控制項;若要退出此規則,請先完整記下映射設定,再透過目前介面重新建立。新映射中,手動來源授權可獨立放行;自動 IP 授權通常可讓同一來源繼續存取,但不會覆蓋瀏覽器已帶有的服務範圍拒絕。IP 允許清單 不是嚴格來源限制的開關。若要在請求抵達映射前縮小來源範圍,請使用閘道可見性或外部網路層規則。
登入憑證也可限制允許存取的服務範圍。即使瀏覽器已有工作階段,超出憑證範圍的 Host 仍會遭到拒絕。
略過 Basic Auth 不屬於 fn-knock 的存取原則。此功能會將一組使用者名稱與密碼注入送往上游的請求,用來通過目標服務本身的 Basic Auth;它不是 fn-knock 提供給訪客的登入方式。
本機來源例外
當閘道辨識到 Loopback、私有網路或 Link-local 來源時,身分驗證結果會是 local_exempt,一般登入與嚴格允許清單檢查都會放行。這項行為會將區域網路視為信任邊界的一部分:
- 請勿以區域網路測試結果判斷公網身分驗證是否生效。
- Tunnel 或前置 Proxy 必須正確傳遞真實 Client IP;否則所有訪客可能顯示為同一個 Proxy 來源,甚至被辨識成本機來源。
- 應使用行動網路驗證登入、允許清單與登出後的實際結果。
建議組合
| 情境 | 網路拓撲 | 路由 | 存取原則 |
|---|---|---|---|
| 具備公網與網域名稱的 Web 服務 | 子網域模式 | Host | 開啟 要求登入;若需縮小入口範圍,另行設定閘道可見性 |
| 沒有公網,使用 Cloudflared | 內網穿透 → 子網域映射 | Host | 開啟 要求登入 |
| 沒有公網,使用 FRP | 內網穿透 → 子網域映射 | Host | 開啟 要求登入;確認 PROXY Protocol 保留來源 IP |
| 正在遷移的舊路徑部署 | 內網穿透 → 路徑模式 | 路徑 | 依映射決定是否要求登入 |
| 必須存取大量原始連接埠 | 直連模式(不建議) | 原始連接埠 | 登入後放行來源 IP |
切換時會保留或停止哪些功能
- 從路徑模式切換至任一子網域路由後,路徑映射會隱藏;進入公網直連子網域模式時,介面會詢問是否清除路徑規則。
內網穿透的子網域映射與路徑模式都可使用 FRP / Cloudflared;切離內網穿透時,系統會嘗試停止正在執行的 Tunnel。- 離開公網直連子網域模式後,通訊協定映射功能會關閉並停止 Listener,但已儲存的規則會保留;重新進入該模式並開啟功能後即可恢復。
- 直連模式仰賴主機防火牆。Docker、Synology DSM 7 SPK、Windows,以及不具備主機管理能力的部署方式無法選擇此模式。
- Docker 不會寫入主機防火牆,也不支援智慧連線;OpenWrt 不提供 SSH 安全性、Web Terminal 與應用程式內 FPK 更新,但支援智慧連線。OpenWrt 的智慧連線要求既有的
dnsmasq已啟用並 Include/etc/dnsmasq.d/,頁面無法透過apt-get自動安裝相依套件。 - Windows 不支援直連授權、應用程式內主機防火牆管理、智慧連線、內建 FRP / Cloudflared、Web Terminal 或 SSH 安全性;網頁版更新頁面也無法安裝 Windows 更新。
- Synology DSM 7 SPK 支援內建 FRP / Cloudflared,但不支援直連授權、主機防火牆管理、智慧連線、Web Terminal、SSH 安全性或網頁內更新。
切換後,請從真正的外部網路檢查入口、Host、Client IP、授權類型與上游目標,不要只確認頁面是否能開啟。
