跳至正文

原始連接埠存取:直連授權

本方案適用於裝置具備公網入站能力,並且需要直接存取 SSH、遠端桌面或其他原始 TCP/UDP 連接埠的環境。訪客先透過 fn-knock 閘道完成身分驗證,再由 fn-knock 依對外 IP 暫時開放受保護的連接埠。

  • 網路拓撲:公網直連
  • 路由方式:原始 TCP/UDP 連接埠
  • 存取方式:登入後取得 IP 授權
  • 後台位置:系統設定 → 模式 → 直連模式(不建議)

直連模式仰賴主機防火牆,目前主要用於 fnOS FPK 與 OpenWrt。Docker、Synology DSM 7 SPK 與 Windows 部署無法由 fn-knock 管理主機防火牆,因此不應採用本方案。

適用範圍

選擇直連授權前,請確認:

  • 管理後台中可看到 直連模式(不建議),且目前的部署方式支援主機防火牆。
  • 裝置具備可用的公網 IPv4、IPv6,或可自行控制的連接埠轉送。
  • 目標是保護原始連接埠,而不是 HTTP/HTTPS 網站。
  • 你能從區域網路或裝置主控台還原防火牆,避免設定錯誤後失去連線。

直連模式不是 NAT 穿透方案。沒有公網入站能力時,請使用內網穿透:子網域路由;網站服務則優先使用公網直連:子網域路由

fn-knock 只負責控管網路入口。SSH、遠端桌面及其他上游服務仍應持續更新、限制權限,並啟用服務本身的身分驗證。

請求流程

  1. 訪客從公網開啟 fn-knock 閘道,預設連接埠為 7999
  2. 訪客完成登入。
  3. 若工作階段設定及所用憑證允許,fn-knock 會將訪客目前的對外 IP 寫入暫時授權;否則需要手動加入允許清單。
  4. 訪客以同一個對外 IP 連線至原始業務連接埠。
  5. 工作階段或授權到期後,業務連接埠會再次拒絕該 IP。

開始前

切換模式前,請先完成以下準備:

  • 記下管理入口、閘道入口與需要保護的連接埠。
  • 確認 TOTP、密碼、Passkey 或 OIDC 至少有一種可正常登入。
  • 備份目前的模式、路由及防火牆設定。
  • 保留區域網路存取或裝置主控台作為救援入口。

切換模式會調整防火牆規則。請勿在唯一的遠端管理連線中首次啟用此模式。

1. 啟用直連模式

前往 系統設定 → 模式,選擇 直連模式(不建議) 並儲存。

啟用後應符合以下狀態:

  • fn-knock 閘道連接埠可從規劃的公網入口存取。
  • SSH、遠端桌面等受保護連接埠預設不會對未授權 IP 開放。
  • 區域網路或明確保留的管理來源仍可用於還原設定。

fnOS FPK 與 OpenWrt 的防火牆實作不同。切換後請立即從外部網路進行一次未登入測試,確認業務連接埠確實遭到拒絕。

2. 設定身分驗證入口

請設定至少一種登入方式,並確認可從公網開啟 fn-knock 閘道。網域名稱範例:

  • auth.example.com:7999
  • 若將公網 443 轉送至閘道 7999,可使用 https://auth.example.com

身分驗證入口應使用 HTTPS,避免憑證與工作階段資訊以明文傳輸。憑證設定請參閱 SSL 憑證

3. 設定登入後的 IP 授權

前往 系統設定 → 工作階段,設定登入後的 IP 處理方式:

方式適用情境
跟隨工作階段建議用於直連模式;在工作階段有效期間維持對應的 IP 授權
不自動授權 IP僅使用登入工作階段;原始連接埠仍須手動加入允許清單才能存取
自訂需要固定授權時段時使用

直連模式保護的是網路連接埠。若關閉自動 IP 授權,即使瀏覽器已成功登入,也不代表 SSH 或遠端桌面連接埠會自動開放。

限制服務範圍的登入憑證不會建立自動 IP 授權。這包含受限的 TOTP、與其綁定的 Passkey / OIDC,以及限制服務範圍的帳號密碼帳號;如此可避免受限憑證透過來源 IP 擴大存取範圍。直連授權應使用未限制服務範圍的憑證,或手動加入目前的公網 IP / CIDR;之後再從外部網路重新驗證連接埠。

4. 設定網域名稱、DDNS 與憑證

動態公網位址可透過 DDNS 更新 auth.example.com。請只發布確實可從公網連線的位址記錄。

請為身分驗證網域名稱設定受信任的憑證。自動 HTTPS 僅適用於支援此功能的部署方式;Docker 與 OpenWrt 需要自行提供憑證,或使用前置 TLS 入口。

5. 從外部網路驗證

使用手機行動網路或另一條外部連線測試:

  1. 未登入時連線受保護的連接埠,應遭到拒絕或逾時。
  2. 開啟身分驗證入口並完成登入。
  3. 以同一個網路再次連線受保護的連接埠,此時應可進入服務本身的身分驗證流程。
  4. 系統設定 → 工作階段 或 IP 授權清單中確認目前的對外 IP 與有效期限。
  5. 登出或等待授權到期,再次確認連接埠已關閉。

測試 SSH 時,請勿沿用已建立的連線;應建立新連線以驗證規則是否生效。

對外 IP 變動

行動網路、公司 Proxy 與部分家用寬頻可能會頻繁變更對外 IP。IP 變更後,原有授權不會自動套用至新位址,需要重新開啟身分驗證入口並登入。

需要嚴格限制來源時,可手動加入固定 IP 或 CIDR。請勿為行動網路填入過大的網段,以免擴大曝露範圍。

部署限制

部署方式直連授權說明
fnOS FPK支援可管理主機防火牆
OpenWrt 外掛套件支援規則套用於路由器防火牆
Docker Compose不支援Container 無法取代主機防火牆管理
Synology DSM 7 SPK不支援套件不會修改 DSM 主機防火牆
Windows x86_64不支援安裝程式建立的程式層級規則不等同於直連授權;管理後台不提供此模式

常見問題

現象優先檢查
登入成功但原始連接埠仍無法連線登入後 IP 授權方式、目前的對外 IP、連接埠轉送
未登入也能存取業務連接埠路由器或主機仍有繞過 fn-knock 的放行規則
啟用後遠端管理失去連線從本機或主控台還原防火牆與執行模式
IPv4 可用,但 IPv6 仍直接曝露IPv6 防火牆未同步限制,或 AAAA 指向其他入口
授權很快失效工作階段有效期限過短,或對外 IP 已變更
登入成功但沒有自動 IP 授權登入憑證限制了服務範圍;改用未限制範圍的憑證,或手動加入 IP / CIDR
Docker 中找不到此模式這是部署方式限制,應改用子網域路由

完整疑難排解請參閱 FAQ

相關文件

QQ 群組:1081609274