サブドメインルーティング
サブドメインマッピング は、HTTP の Host に基づいて複数のドメインをローカル Web サービスへ振り分ける機能で、新しいデプロイにおけるデフォルトのルーティング方式です。次の 2 種類のネットワーク構成で使用できます。
サブドメインモード:ドメインが、到達可能な公開エントリーポイントへ直接名前解決される。リバースプロキシモード → サブドメインマッピング:FRP または Cloudflared が、各サブドメインのリクエストをゲートウェイへ送る。
どちらの構成でも auth.example.com をログイン用エントリーポイントとして使用し、nas.example.com、alist.example.com などのサービス用 Host で同じゲートウェイを共有します。パスマッピングは以前のデプロイとの互換性を保つための方式であり、サブドメインマッピングの前提条件ではありません。
マッピング管理のサブドメインタブで Host を管理し、同じ画面のプロトコルタブで TCP / UDP を管理します。
リクエスト経路
ブラウザー -> インターネット直結またはトンネル -> fn-knock ゲートウェイ -> Host で照合 -> リバースプロキシ Target または静的レスポンス
|
+-> 認証なし / ログイン必須 / 高度な認証の一時認証情報インターネットから直接到達し、デフォルトポートを維持する場合、通常は https://nas.example.com:7999 の形式でアクセスします。前段に EdgeOne、ESA、Cloudflared がある場合、訪問者は通常、標準の https://nas.example.com を使用しますが、オリジン側では引き続き実際のゲートウェイポートへ接続します。
設定手順
システム設定 → モードでサブドメインモード、またはリバースプロキシモード → サブドメインマッピングを選択します。サブドメインマッピングで、example.comなどのルートドメインを保存します。認証サービスを追加をクリックし、auth.example.comを作成します。- 公開 DNS、ルーターのポート転送、または Tunnel Public Hostname を設定し、関連するすべての Host が同じゲートウェイへ入るようにします。
- サービス用 Host を追加し、リバースプロキシ、単一ファイル、ディレクトリのいずれかを選んで、
ログインを必須にするを有効にするか決定します。 - 送信元やリクエストの特徴に応じて許可する必要がある場合は、マッピング右側のメニューから
高度な認証を開きます。 - モバイルネットワークを使って、ログインへのリダイレクト、元のアドレスへの復帰、リクエストログのクライアント IP を検証します。
インターネットから直接接続する場合の詳しい手順については、サブドメインモードのセットアップとサブドメイン直接接続の手順を参照してください。
サブドメインモードの設定
| 項目 | 役割 | 推奨設定 |
|---|---|---|
ドメイン | サービス用 Host の親ドメイン(例:example.com)を生成 | 認証サービスやサービス用マッピングを追加する前に保存 |
現在の認証サービス | 未ログイン時に使用する共通のログイン用エントリーポイント | auth.example.com を使用。作成できるのは 1 件だけ |
認証サービスの公開 HTTPS ポート | ログインへのリダイレクト URL を生成するときに使用する、訪問者側の HTTPS ポート | 直接接続または FRP では実ポートを入力。管理 Cloudflare Tunnel では非表示になり標準 HTTPS を使用 |
エッジ経由の実クライアント IP 検出 | インターネット直結のサブドメインモードで、EdgeOne / ESA から訪問者のアドレスを取得 | 対象プラットフォームの場合だけ表示。管理 Cloudflare Tunnel では非表示 |
認証サービスの公開 HTTPS ポートが影響するのは外部 URL だけです。プログラムのリッスンポートを変更したり、ルーター、コンテナ、エッジプラットフォームでポートを開放したり、NAT 転送を作成したりすることはありません。
管理 Cloudflare Tunnel では、一覧、認証 URL、ログインリダイレクト、redirect_uri が https://host.example.com になり、古い :7999 は追加されません。Cloudflare の外部ポートと fn-knock のローカル Tunnel 入口は管理処理が設定します。
ルートドメインと Host マッピングには * を含められません。ルートドメインには example.com、サービス用マッピングには nas または nas.example.com を入力します。DNS で *.example.com のワイルドカードレコードを設定するかどうかは別の層の設定であり、fn-knock のルートドメインや Host には入力しないでください。
EdgeOne / ESA
インターネット直結のサブドメインモードでは、Tencent EdgeOne / Alibaba Cloud ESA のサポートを有効にできます。有効にすると公開 URL の :7999 を省略でき、サブドメイン一覧、マッピング URL、認証サービスにも古いゲートウェイポートを付けず公開 Host だけを表示します。これは訪問者側の表示だけで、エッジのオリジンは fn-knock の実際の待受ポートを指定します。ゲートウェイは各プラットフォームのヘッダーから実クライアント IP も取得します。
| プラットフォーム | クライアント IP ヘッダー |
|---|---|
| Tencent EdgeOne | EO-Connecting-IP |
| Alibaba Cloud ESA | Ali-Real-Client-IP |
ESA では、サイトのマネージドリクエストヘッダー変換で「実クライアント IP ヘッダーを追加」も有効にする必要があります。このスイッチが対象とするのは EdgeOne / ESA だけで、任意の CDN を一般的に信頼するスイッチではありません。Cloudflared では リバースプロキシモード → サブドメインマッピング の専用経路を使用してください。
エッジプラットフォームが外部の 80 / 443 を処理する場合でも、オリジンは fn-knock の実際のゲートウェイポートを指定します。ログインレスポンスをキャッシュするルールを無効にし、WebSocket を許可してください。証明書と名前解決については、TLS 証明書と HTTPSとDDNS 管理を参照してください。
Host マッピング
各マッピングには Host とレスポンス種別があります。リバースプロキシは Target を、静的レスポンスはサーバー上のファイルパスを使用します。
nas.example.com -> http://127.0.0.1:5666
alist.example.com -> http://127.0.0.1:5244
photos.example.com -> http://127.0.0.1:5666/photos/
download.example.com -> 単一ファイル /srv/downloads/manual.pdf
docs.example.com -> ディレクトリ /srv/docs| 項目 | 動作 |
|---|---|
Host / サブドメイン | リクエストの Host と照合。ルートドメインを保存済みの場合は nas だけを入力可能 |
レスポンス種別 | リバースプロキシ、単一ファイル、ディレクトリから選択。認証サービスはリバースプロキシに固定 |
Target | リバースプロキシだけで使用。HTTP、HTTPS、WS、WSS のアップストリームアドレス。ベースパスを含められ、fn-knock の実行環境から到達できる必要がある |
サーバーパス | 静的レスポンスだけで使用。絶対パスを直接入力するか、参照 をクリックして fn-knock ゲートウェイプロセスから見えるファイルシステム上のファイル/ディレクトリを選択する。選択を確定した後もマッピングの保存が必要 |
Target パスの用途 | Target にルート以外のパスがある場合、入口のみ または 固定プレフィックス を選択。認証サービスは常に入口モード |
ログインを必須にする | 未ログインの場合は認証 Host へ移動し、完了後に元のアドレスへ戻す |
無効化 / 有効化または無効化を予約 | 手動で公開を停止するか、サーバーのローカル時刻に基づいて毎日の公開時間を制御 |
グループ | サービス用 Host を既存のグループへ配置。認証サービスはグループ化不可 |
ポータルを表示 | ログイン後のページに、アプリ切り替えとログアウトの入口を表示するかを制御 |
表示タイトル | 一覧、ポータル、ブックマークに表示する名前を上書き |
アプリアイコン | 自動取得したアイコンを使うか、現在のサービス用 Host にカスタムアイコンをアップロード |
Basic 認証を自動入力 | アップストリームへのリクエストへ Basic 認証のユーザー名とパスワードを挿入 |
公開範囲 | グローバルルールを継承するか、現在の Host のルールで上書きするか、現在の Host だけ公開範囲の制限を無効にする |
WAF を有効にする | サービス用 Host ではデフォルトで有効。無効にすると、現在の Host はグローバル WAF をスキップ |
保存済みマッピングの Host / サブドメインを直接編集すると名前変更として扱われ、ログインポリシー、公開範囲、高度な認証が維持されます。リバースプロキシのマッピングでは、Basic Auth 認証情報の注入も維持されます。同じ Target またはサーバーパスの別名を新規作成して名前変更の代わりにしないでください。別名は独立したマッピングであり、元の Host の保護設定を継承しません。
リバースプロキシするサービスは可能な限り、ループバックまたはプライベートネットワークのアドレスだけをリッスンさせ、ゲートウェイを迂回されないようにしてください。Docker 内の 127.0.0.1 はコンテナ自身を指します。ホスト上のサービスをプロキシする場合は、コンテナから到達可能なホストのアドレスを使用します。Docker デプロイの Target 欄には、検出された到達可能な LAN IP 候補が表示されますが、候補を選んでもコンテナネットワーク、公開ポート、アップストリームのリッスン範囲は変更されません。
静的レスポンスにはアップストリームサービスが不要です。単一ファイルは Host のルートパスでのみ指定ファイルを返します。ディレクトリレスポンスはデフォルトドキュメント、ディレクトリ一覧、README の安全なレンダリングに対応します。サーバーパス、セキュリティ境界、Docker の読み取り専用マウントについては、静的ファイルとディレクトリのレスポンスを参照してください。
リバースプロキシの Target にルート以外のパスを含めると、エディターに Target パスの用途 が表示されます。
入口のみ(互換モード)がデフォルトです。訪問者が Host のルートへアクセスした場合だけ Target のパスを使い、それ以外のリクエストパスは変更しません。たとえば Target パスが/loginの場合、/はアップストリーム/loginへ進みますが、/assets/app.jsはそのままアップストリーム/assets/app.jsへ進みます。入口ページはサブパスにある一方、静的リソースやログインコールバックがアップストリームのルートにあるアプリ向けです。固定プレフィックス(ディレクトリマウント)は Target のパスをすべてのアップストリームリクエストの前へ追加します。Target パスが/webdavの場合、訪問者の/floccus/aはアップストリーム/webdav/floccus/aになります。WebDAV など、ディレクトリマウントを明示的にサポートするサービス向けです。
このフィールドがない既存マッピングは 入口のみ として扱われます。どちらのモードでも、トップページ、静的リソース、リダイレクト、Cookie、WebSocket を確認してください。この設定が決めるのはアップストリームのリクエストパスの組み立て方だけで、HTML、Cookie Path、絶対 URL の書き換えをアプリの代わりに行うことはできません。タイトルとアイコンの取得には完全な Target と明示ポートが使われます。
認証サービスは特殊な Host マッピングです。常に公開する必要があり、ログイン必須や Basic 認証の自動入力を有効にしてはいけません。有効にすると、ログイン用エントリーポイントがループするか、自身によってブロックされます。
グループ表示
一覧上部の グループ表示 を有効にすると、グループを管理 でグループの作成、名前変更、並び替え、削除ができます。サービス用 Host は個別編集、一括移動、ドラッグ&ドロップでグループへ配置できます。作成できるグループは最大 32 件です。名前は 1~40 文字で、大文字と小文字を区別せず重複できません。マッピングを含むグループを削除しても Host は削除されず、「未分類」へ移動します。
グループと Host の順序は、ログイン後のポータルと組み込みの /__select__ 選択ページへ同期されます。ブラウザーブックマークのエクスポートでも対応するグループフォルダーが作成されます。一覧表示へ戻してもグループの割り当ては保持されますが、ポータル、選択ページ、新しくエクスポートしたブックマークはフラットな順序になります。検索中は一致するグループと Host だけを表示し、結果を一時的に展開します。折りたたみ状態は現在のブラウザーにだけ保存されます。
グループ化で変わるのはナビゲーションと管理上の順序だけです。認証、公開範囲、WAF、Target は変更されません。認証サービスは常にグループの外に置かれ、実際のアクセス可否は引き続き認証情報の Host サービス範囲で判定されます。
狭い画面ではマッピングがカード一覧で表示され、デスクトップ用テーブルを横へスクロールする必要はありません。各カードにはタイトル、Host、レスポンス先(リバースプロキシアドレスまたはサーバーパス)、状態、リアルタイムトラフィック、その他の操作が表示されます。グループは引き続き折りたたみやグループ全体の選択ができ、左側のハンドルをドラッグしてグループ内またはグループ間で並べ替えられます。複数選択モードでは、現在の検索結果をすべて選択することも、個別のグループを選択することもできます。
スマートフォンでマッピングを編集し、入力欄へフォーカスすると、ダイアログはソフトウェアキーボード上の表示領域に合わせて高さを調整し、現在の入力欄が見える位置までスクロールします。下部にあるキャンセル、保存、パス選択の操作はそのまま利用できます。キーボードを閉じると、ダイアログはボトムシートのレイアウトへ戻ります。
Basic 認証はリバースプロキシ用アップストリーム認証情報の挿入
Basic 認証を自動入力 で保存するのは、転送先サービス自身の Basic 認証情報です。ゲートウェイは、リクエストのプロキシ、ページタイトル、favicon の取得時に認証情報をアップストリームへ送信し、ブラウザーに Basic 認証ダイアログが再表示されないようにします。
fn-knock のアカウントを作成する機能ではなく、auth.example.com でのログインにも代わりません。また、ログインを必須にする や既存の strict_whitelist ルールも変更しません。認証情報は機密設定として扱い、本当に必要な場合だけ保存してください。
ユーザー名とパスワードは両方入力する必要があり、ユーザー名には半角コロンを使用できません。不完全または無効な設定を保存すると、システムは一部だけを残さず、この機能を無効にして認証情報を消去します。
アプリアイコン
通常のサービス用 Host を編集するときに アプリアイコン を開くと、現在の取得元をプレビューし、アップストリームのアイコンを再取得するか、カスタム画像をアップロードできます。PNG、JPG、WebP、AVIF、SVG、ICO に対応し、元ファイルの上限は 5 MB です。ブラウザーは SVG の外部コンテンツを削除し、サーバーも安全でない DOCTYPE またはエンティティ宣言を含む SVG を拒否します。その後、画像を切り抜かずに正方形のキャンバスへ収め、128 KiB 以下の埋め込みアイコンへ変換します。
カスタムアイコンはサブドメイン一覧とポータルで優先表示され、ブックマーク出力、ナビゲーションパネル同期、ゲートウェイのアイコン入口も同じ内容を使います。設定に保存するアイコンは、対応画像形式を Base64 の data:image/...;base64,... にしたものに限ります。外部 URL、Base64 でない Data URL、デコード不能または上限超過の旧アイコンはゲートウェイへ送信・出力されません。通常のアップロードと自動取得は変換を行うため、旧バックアップや外部設定の取り込み後に消えた場合は再取得または再アップロードしてください。
自動取得に戻す を選ぶとカスタム上書きが消去され、リバースプロキシ Target から再取得されます。Target が対応アイコンを返さない場合は未取得と表示されます。静的マッピングではファイルのタイトルやアイコンを自動取得しないため、タイトルを手入力し、カスタムアイコンをアップロードしてください。認証サービスではカスタムアイコンを使用できません。アイコンは設定と .knock バックアップに含まれるため、機密性のある社内画像を通常の調査用添付ファイルとして共有しないでください。
Host ごとの公開範囲と WAF
グローバルのゲートウェイ公開範囲を有効にすると、サービス用 Host の詳細設定で グローバル公開範囲を継承、カスタム、無効 のいずれかを選択できます。カスタムルールはグローバルルールを置き換え、無効にすると現在の Host だけが公開範囲の確認をスキップします。認証 Host はグローバルルールを継承する必要があります。設定方法とロールバックの推奨事項については、ゲートウェイの公開範囲を参照してください。
サービス用 Host では WAF がデフォルトで有効で、個別に無効にするとグローバル WAF をスキップできます。グローバル WAF 自体が無効な場合、このスイッチだけでは保護されません。認証 Host は Host 設定から WAF を迂回できません。詳しいポリシーについては、Web Application Firewall(WAF)を参照してください。
高度な認証
ログインを必須にする が有効な HTTP / HTTPS のサービス用 Host では、右側のメニューに 高度な認証 が表示されます。送信元 IP、地域、URL パス、リクエスト Header、Query パラメータ、HTTP メソッドに基づいて、現在の Host だけで使える一時認証情報を発行できます。どのルールにも一致しないリクエストは、通常のログインフローへ進みます。
ルールに一致すると、条件を発動させたパスやリクエストだけでなく、現在の Host 全体へのアクセスが許可されます。システムへのログインではないため、ポータルは作成されず、他の Host へのアクセス権限も付与されません。設定前にサブドメインの高度な認証を参照してください。
アクセスポリシーと local_exempt
| 現在の画面設定 | 許可されていないインターネット側のリクエスト |
|---|---|
ログインを必須にする を無効(現在のログイン優先マッピング) | アップストリームへ直接アクセス |
ログインを必須にする を有効 | 有効な送信元 IP のアクセス許可またはセッションがない場合、認証 Host へ移動 |
ログインを必須にする と高度な認証を有効 | ルールに一致すると現在の Host 用の一時認証情報を発行。一致しない場合は送信元のアクセス許可とログインを引き続き確認 |
バックエンドは、既存設定の strict_whitelist ルールにも引き続き対応します。このルールがある場合、ログインを必須にする が無効でも必ずしも公開されず、手動またはログイン後に自動作成された有効な送信元アクセス許可に基づいて判定されます。ブラウザーセッション Cookie だけでは送信元の条件を満たせません。現在の Host 編集画面には、厳格なホワイトリストルールを新規作成または切り替えるためのコントロールはありません。このルールを解除するには、マッピング全体を記録した上で、現在の画面から作成し直してください。新しいマッピングでは、手動の送信元アクセス許可によって個別に許可できます。IP の自動許可でも通常は同じ送信元からアクセスを継続できますが、サービススコープによる拒否が伴う場合、それを上書きすることはありません。ホワイトリスト は、送信元を厳格に制限するためのスイッチではありません。リクエストがマッピングへ到達する前に送信元を絞り込む場合は、ゲートウェイの公開範囲または外部ネットワーク層のルールを使用してください。
ログイン認証情報には、アクセスを許可する Host の範囲を設定できます。1 つの認証情報でログインに成功しても、すべてのサービス用サブドメインへ自動的にアクセスできるわけではありません。
認証サービスは、まずゲートウェイが識別した送信元 IP を確認します。ループバック、プライベートネットワーク、リンクローカルなどの送信元は local_exempt となり、通常のログインと厳格なホワイトリストの確認をスキップします。つまり、LAN はデフォルトの信頼境界に含まれます。
- 既存の厳格なホワイトリストルールがあっても、LAN 内の送信元にログインを強制できません。
- 認証情報の Host サービススコープも、ローカル例外の送信元を制限しません。これはネットワークの信頼境界なので、認証情報のスコープ検証には適していません。
- LAN 内のテストでは、インターネット側のポリシーが機能していることを証明できません。
- 前段に FRP、Cloudflared、EdgeOne、ESA がある場合は、実際のグローバル IP がゲートウェイまで伝わっていることをリクエストログで確認してください。プロキシのプライベートアドレスが訪問者の送信元と誤認されると、認証結果が変わります。
送信元ネットワークの設定については、IP 許可リストとゲートウェイの公開範囲を参照してください。
一括登録とメンテナンス
サービスを検出 は、許可されたローカル IPv4 ネットワークをスキャンして Host の候補を生成します。スキャンでは最大 16 個の CIDR、合計 1024 台のホストを指定できます。対象はループバック、ネットワークインターフェース、Docker ホスト、既存のマッピング、手動で保存したローカル範囲に限られ、インターネットのスキャンには使用されません。
スキャンウィンドウでは、デバイスの推奨に従う(デフォルト)または低、中、高、最大のスキャン強度を選択できます。レベルが変えるのは同時実行数、速度、デバイス負荷だけで、スキャン範囲や検出結果は変わりません。デフォルトでは CPU、使用可能なメモリ、ファイル記述子の予算をもとに、より安全なレベルが選ばれます。NAS やルーターなどリソースが限られたデバイスでは、自動または低強度を優先してください。
スキャン対象ポート、許可される CIDR 範囲、Docker のネットワークから見える範囲、一括保存のルールについては、サービス検出と一括登録を参照してください。
一覧で利用できる操作は次のとおりです。
複数選択:選択モードに入り、現在の検索結果、1 つのグループ、または任意のサービス Host を選択できます。グループ移動、有効化、無効化、同じ日次公開時間帯の適用、削除を一括実行できます。認証サービスは選択対象外です。検索条件または表示を変更すると選択は解除され、一括削除は元に戻せません。アイコンとタイトルを更新:リバースプロキシのアップストリームメタデータを再取得します。静的マッピングはスキップされます。到達不能なサービスを整理:先にHEAD、失敗した場合はGETで HTTP / HTTPS アップストリームを確認し、管理者の確認後に到達不能なマッピングを削除します。静的マッピングは対象外です。ブックマークとしてエクスポート:サービス用 Host をエクスポートし、認証サービスは含めません。すべての設定をクリア:2 回の確認後に認証サービスとすべての Host マッピングを削除し、ルートドメインなどのモード設定は維持します。
各 Host のトラフィック詳細では、リアルタイムトラフィックとアクティブ IP を確認し、不審な送信元をグローバルブロックリストへ追加できます。
ナビゲーションパネルへ同期 は、有効なアプリ Host を Sun-Panel、OneNav、Van-Nav へ公開し、内部 Target は送信しません。プレビュー、所有権、クリーンアップ、自動同期の境界はナビゲーションパネル同期を参照してください。
Target アドレスの最適化
一覧のメンテナンスメニューにある Target アドレスの最適化 はリバースプロキシのマッピングだけを処理し、ループバックと検出済みホスト LAN アドレスの間で Target を一括変更します。デプロイ方式を変更した後に、アップストリームアドレスをまとめて修正する用途に適しています。静的ファイルとディレクトリのマッピングはプレビューに表示されません。LAN アドレスを選ぶと現在 127.0.0.1 のマッピングだけを、ループバックを選ぶと検出済み LAN アドレスのマッピングだけを表示します。プレビューはスキーム、ポート、パスを維持してホストだけを変え、選択した項目だけを保存します。
候補の検出は Target への到達性を保証しません。Docker 内の 127.0.0.1 は現在のコンテナだけを指します。適用前にコンテナからホストへの経路と Target ポートを確認し、保存後に各サービス Host を検証してください。
詳細モニタリング
通常のリクエストログだけでは HTTP または WebSocket の問題を特定できない場合、対象サービス Host の その他 → 詳細モニタリング から時間制限付きキャプチャを開始できます。すでに設定された完全一致の Host だけが対象で、デフォルトは 30 分、最大 2 時間です。画面にはリアルタイムの要約が表示され、リクエスト、レスポンス、アップストリーム、WebSocket のペイロード情報を含む ZIP をダウンロードできます。
詳細モニタリングは Cookie、Authorization、リクエスト本文、レスポンス本文、WebSocket の生フレームをマスクせずゲートウェイのディスクへ書き込みます。問題の再現に必要な短時間だけ有効にし、完了後すぐに停止してクリアしてください。手動で削除しないデータも、セッション停止から 24 時間後に自動削除されます。エクスポートしたアーカイブは認証情報ファイルと同様に扱い、公開 Issue やグループチャットへ直接アップロードしないでください。
リアルタイム表示に保持されるのは最新 1000 行の要約だけです。破棄件数、クォータ超過、書き込み過負荷、ストレージエラーが表示された場合は、ダウンロードアーカイブとセッション停止理由を確認してください。詳細モニタリングは一時的な障害調査用であり、常時利用するリクエストログ、WAF、アップストリームアプリのログを置き換えるものではありません。
Host ルーティングを補完する機能
- パス単位の固定レスポンスは、特定の Host に少数の特殊なパスを追加します。どのルールにも一致しない場合は、その Host のデフォルト Target へ戻ります。
- 静的ファイルとディレクトリのレスポンスは、サービス用 Host 全体でローカルファイルを直接読み取り、リバースプロキシのアップストリームを不要にします。
- TCP / UDP ストリームプロキシは、インターネット直結のサブドメインモードに TCP / UDP ポートを追加します。リバースプロキシモードのサブドメインマッピングでは利用できません。
- fnOS 共有リンクのパススルーは、正規の FNOS
/s/...共有経路だけをバイパスし、サイト全体を公開するものではありません。
これらの機能を使用しても、Web のメインルートが Host であることは変わりません。
プラットフォームごとの制限
- Host ルーティングと静的レスポンスは、FNOS FPK、Docker、OpenWrt、Linux、macOS、Synology DSM 7 SPK、Windows で使用できます。静的パスはゲートウェイプロセスが動作するファイルシステムから読み取れる必要があります。インターネットから実際に到達できるかどうかは、各プラットフォームのポート公開とネットワーク経路によって決まります。
- ホストファイアウォールへの自動書き込みとスマート接続は、対応する標準 FNOS FPK だけが提供します。Docker、OpenWrt、Linux、macOS、Synology、Windows では利用できません。
- プロトコルマッピングは、インターネット直結のサブドメインモードでのみ表示されます。Docker で追加ポートを公開しても、fn-knock がホストのファイアウォールを管理することはありません。
- OpenWrt のポート許可と LAN のスプリット DNS は OpenWrt 自身で管理します。fn-knock は直接接続、ホストファイアウォール管理、スマート接続、SSH セキュリティ、アプリ内 FPK 更新を提供しません。Web ターミナルは管理者が設定したリモート SSH ターゲットへ接続できるほか、デフォルトでは無効で fn-knock サービスの実行ユーザーを継承する OpenWrt のローカル PTY も有効にできます。
- fn-knock はアップストリームサービスの既存の公開リッスン状態を自動的に停止せず、アップストリームの更新、バックアップ、最小権限設定にも代わりません。
検証とトラブルシューティング
リクエスト経路に沿って確認します。
- DNS または Tunnel が現在の Host を正しいゲートウェイへ送っているか。管理 Cloudflared では同期状態、ワイルドカード DNS、Ingress を先に確認します。
- リクエストログの Host とクライアント IP が正しいか。
- 認証サービスが存在し、ログイン必須または Basic 認証が有効になっていないか。
- サービス用マッピングが有効で、現在時刻が公開時間内か。
- リバースプロキシの Target へ fn-knock の実行環境から到達できるか。静的マッピングの場合は、サーバーパス、種類、権限、マウントをもう一度確認する。
- ログイン認証情報で現在の Host が許可されているか。高度な認証を有効にしている場合は、ルールグループ、条件、一時認証情報の状態も確認する。
- 過去の厳格なホワイトリストルールがある場合、現在のグローバル IP が許可されているか。
- HTTPS 証明書が現在の Host をカバーし、前段のプラットフォームが WebSocket を許可し、認証レスポンスをキャッシュしていないか。
まず 1~2 個のサービスを登録して外部ネットワークからの検証を完了し、その後、一括検出とアクセスポリシーの厳格化を行ってください。
