跳至正文

選擇執行模式

系統設定 → 模式 會將網路拓撲與路由方式組合成數個選項。設定前,請分別釐清三件事:流量如何抵達裝置、閘道如何找到服務,以及哪些人可以存取服務。

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 分流:

text
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 分流服務:

text
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 加入放行範圍,再存取 566622 等原始連接埠。請參閱直連模式快速上手

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、授權類型與上游目標,不要只確認頁面是否能開啟。

QQ 群組:1081609274