原始連接埠存取:直連授權
本方案適用於裝置具備公網入站能力,並且需要直接存取 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、遠端桌面及其他上游服務仍應持續更新、限制權限,並啟用服務本身的身分驗證。
請求流程
- 訪客從公網開啟 fn-knock 閘道,預設連接埠為
7999。 - 訪客完成登入。
- 若工作階段設定及所用憑證允許,fn-knock 會將訪客目前的對外 IP 寫入暫時授權;否則需要手動加入允許清單。
- 訪客以同一個對外 IP 連線至原始業務連接埠。
- 工作階段或授權到期後,業務連接埠會再次拒絕該 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. 從外部網路驗證
使用手機行動網路或另一條外部連線測試:
- 未登入時連線受保護的連接埠,應遭到拒絕或逾時。
- 開啟身分驗證入口並完成登入。
- 以同一個網路再次連線受保護的連接埠,此時應可進入服務本身的身分驗證流程。
- 在
系統設定 → 工作階段或 IP 授權清單中確認目前的對外 IP 與有效期限。 - 登出或等待授權到期,再次確認連接埠已關閉。
測試 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。
