連接埠、入口與 URL 路徑
fn-knock 有兩個面向使用者的入口:管理入口用於修改設定,閘道入口則承接業務流量。fnOS 原生 FPK 從桌面圖示進入管理頁面;Docker、OpenWrt 與 Linux 的管理面板預設使用 7991。Synology DSM 7 SPK 只能從 DSM 桌面的套件入口進入;Windows 則由 fn-knock Windows 管理程式 透過系統瀏覽器開啟本機 127.0.0.1:7991,不能將其當成區域網路或公網管理入口。閘道通常使用 7999。
7998、7997 與 7996 是元件之間使用的內部連接埠,不應直接暴露至公網。
預設連接埠
| 連接埠 | 角色 | 預設用途 |
|---|---|---|
7991 | 管理面板 | Docker、OpenWrt 與 Linux 的預設管理入口;Windows 僅限本機 Loopback 存取 |
7998 | 管理後端 | fnOS 原生 FPK 的桌面 CGI 會 Proxy 至此;Docker 也在內部使用此連接埠 |
7997 | 身分驗證服務 | 處理登入、登出、Passkey 與人機驗證 |
7996 | 閘道管理連接埠 | 管理後端與 Go 閘道之間的內部通訊 |
7999 | 閘道入口 | 接收 Web 業務流量,並執行身分驗證與路由 |
連接埠可在安裝時修改。疑難排解時,請以實際部署設定及後台顯示的存取入口為準,不要假設所有安裝都使用預設值。
各部署方式的對外連接埠
| 部署方式 | 管理入口 | 閘道入口 | 說明 |
|---|---|---|---|
| fnOS 原生 FPK | fnOS 桌面圖示 | 7999 | 桌面 CGI 會 Proxy 至本機 7998;請勿將 7991 當成 FPK 管理入口 |
| Docker Compose | 7991 | 7999 | 預設只發布這兩個連接埠 |
| OpenWrt | 7991 | 7999 | 內部管理後端預設改用 17998 |
| Linux(systemd / OpenRC) | 7991 | 7999 | 安裝時及 sudo knock config 均可修改連接埠;7998、7997、7996 僅監聽本機 |
| Synology DSM 7 SPK | DSM 桌面套件入口 | 7999 | 不開放 7991;DSM CGI 會 Proxy 內部管理服務,7998、7997、7996 僅監聽本機 |
| Windows x86_64 | 管理程式開啟 127.0.0.1:7991 | 7999,預設監聽 0.0.0.0 與 :: | 管理後台強制限本機存取;安裝程式只會為「網域/私人」Network Profile 加入靜態程式規則 |
Docker 的 Container Port 與主機 Published Port 由部署檔案共同決定。完整設定請參閱 Docker 部署。
請求進入閘道後會發生什麼
閘道入口只處理「流量從哪裡進入」;進入後還需要依序決定路由與存取原則:
- 網路拓撲:從公網或區域網路直接進入閘道,或透過 FRP、Cloudflared 等 Tunnel 轉入閘道。
- 路由:Web 服務優先依請求的
Host分流,例如nas.example.com;路徑映射只用於相容仍依賴/alist這類舊入口的服務。 - 存取原則:目前的 Host 編輯頁面使用
要求登入,在公開存取與優先登入之間切換;既有的嚴格允許清單規則仍依來源 IP 執行。
TCP / UDP 通訊協定映射會額外監聽各自的對外連接埠,不經過 7999 的 HTTP Host 路由。直連模式則以閘道作為登入入口,登入後再依來源 IP 放行原始連接埠。
local_exempt:區域網路測試不代表公網已受保護
身分驗證服務會將閘道辨識到的 Loopback、私有網路、Link-local 等來源歸類為 local_exempt。這類請求會被視為本機網路存取,略過一般登入與允許清單檢查;嚴格允許清單也不會將其當成公網來源阻擋。
因此:
- 在同一個區域網路內開啟服務,無法驗證公網登入原則是否生效。
- 透過反向代理或 Tunnel 接入時,應在請求記錄中確認閘道辨識到的是真實公網 Client IP,而不是 Proxy 節點的私有 IP。
- 公網驗證應使用行動網路等真正的外部連線。
local_exempt 是來源網路的例外規則,不是瀏覽器登入工作階段。登出不會改變該網路的本機例外屬性。
平台功能限制
- Docker 可執行 Host/路徑閘道,但不會代替主機寫入防火牆規則,也不支援直連模式與智慧連線。
- fnOS 原生 FPK 可管理主機防火牆,並提供直連模式與智慧連線。
- OpenWrt 在具備 root 權限時,可使用主機防火牆與直連模式,也提供智慧連線功能;智慧連線仰賴已安裝的
dnsmasq,且主設定必須 Include/etc/dnsmasq.d/。頁面中的apt-get安裝方式不適用於 OpenWrt。此版本不提供 SSH 安全性、Web Terminal 或應用程式內 FPK 更新。 - Synology DSM 7 SPK 會將
7999以公開閘道連接埠註冊至 DSM 防火牆介面,但套件無法自行修改主機防火牆;不支援直連模式、智慧連線、Web Terminal 或 SSH 安全性。 - Windows 的
7999預設監聽所有介面;安裝程式建立的FnKnock Gateway靜態程式規則只套用於「網域/私人」Network Profile。此版本仍不支援直連模式、應用程式內主機防火牆管理、智慧連線、內建 Tunnel、Web Terminal 或 SSH 安全性。開放公網存取前,務必檢查路由器/NAT、IPv6、ISP 與第三方安全軟體。
對 Host 或路徑路由而言,fn-knock 只能保護確實通過閘道的請求。若上游服務仍監聽公網或區域網路可達的位址,使用者依然可能繞過閘道直接連線。直連授權是例外:它仰賴受支援的主機防火牆,只有登入後的來源 IP 取得授權時,才暫時放行原始連接埠;請勿另外加入過度寬鬆的公網放行規則。
依鏈路疑難排解
fnOS 原生 FPK 的管理頁面無法開啟時,請先檢查桌面圖示、應用程式 Process 與 7998 後端;Docker 或 OpenWrt 則檢查 7991、Bind Address 與 Port Publishing。業務網域名稱無法開啟時,請依以下順序檢查:
- 外部流量是否抵達實際的閘道連接埠(通常為
7999)。 - 請求的
Host或相容路徑是否命中映射。 - 映射目標能否從
fn-knock所在環境存取。 - 請求記錄中的 Client IP、授權類型與上游目標是否符合預期。
