서브도메인 라우팅
서브도메인 매핑은 HTTP Host를 기준으로 여러 도메인을 로컬 웹 서비스에 분배하며 새 배포의 기본 라우팅 방식입니다. 다음 두 가지 네트워크 토폴로지에서 사용할 수 있습니다.
서브도메인 모드: 도메인이 접근 가능한 인터넷 진입점을 직접 가리킵니다.리버스 프록시 모드 → 서브도메인 매핑: FRP 또는 Cloudflared가 각 서브도메인의 요청을 게이트웨이로 전달합니다.
두 방식 모두 auth.example.com을 로그인 진입점으로 사용하고 nas.example.com, alist.example.com 같은 서비스 Host가 하나의 게이트웨이를 공유합니다. 경로 매핑은 이전 배포와의 호환을 위한 방식이며 서브도메인 매핑의 사전 조건이 아닙니다.
매핑 관리의 서브도메인 탭에서 Host를 관리하고 같은 페이지의 프로토콜 탭에서 TCP / UDP를 관리합니다.
요청 경로
브라우저 -> 공인 IP 직접 연결 또는 터널 -> fn-knock 게이트웨이 -> Host에 따라 일치 -> 리버스 프록시 Target 또는 정적 응답
|
+-> 공개 / 로그인 필요 / 고급 인증 임시 자격 증명인터넷에서 직접 연결하고 기본 포트를 유지하면 일반적으로 https://nas.example.com:7999 형식으로 접근합니다. 앞단에 EdgeOne, ESA 또는 Cloudflared를 두면 방문자는 보통 표준 주소인 https://nas.example.com을 사용하지만 오리진은 실제 게이트웨이 포트로 연결됩니다.
설정 순서
시스템 설정 → 모드에서서브도메인 모드또는리버스 프록시 모드 → 서브도메인 매핑을 선택합니다.서브도메인 매핑에서 루트 도메인을 저장합니다. 예:example.com인증 서비스 추가를 클릭해auth.example.com을 만듭니다.- 외부 DNS, 라우터 포워딩 또는 터널 공개 호스트 이름(Public Hostname)을 설정해 관련 Host가 모두 같은 게이트웨이로 들어오게 합니다.
- 서비스 Host를 추가하고 리버스 프록시, 단일 파일 또는 디렉터리 응답을 선택한 뒤
로그인 필요활성화 여부를 결정합니다. - 출발지나 요청 특성에 따라 접근을 허용해야 한다면 매핑 오른쪽 메뉴에서
고급 인증을 엽니다. - 모바일 네트워크에서 로그인 리디렉션, 돌아오는 주소 및 요청 로그의 클라이언트 IP를 확인합니다.
공인 IP 직접 연결의 전체 절차는 서브도메인 모드 시작하기와 직접 연결 접속 튜토리얼을 참고합니다.
서브도메인 모드 설정
| 필드 | 역할 | 권장 사항 |
|---|---|---|
도메인 | 서비스 Host를 생성할 상위 도메인. 예: example.com | 먼저 저장한 뒤 인증 서비스와 서비스 매핑 추가 |
현재 인증 서비스 | 로그인하지 않았을 때 사용하는 통합 로그인 진입점 | auth.example.com을 사용하며 하나만 설정 가능 |
인증 서비스의 외부 HTTPS 포트 | 로그인 리디렉션 URL을 만들 때 사용하는 방문자 측 HTTPS 포트 | 직접 연결 또는 FRP에서는 실제 포트를 입력. 관리 Cloudflare Tunnel에서는 숨기고 표준 HTTPS 사용 |
Edge 실제 IP 감지 | 공인 IP 직접 연결 서브도메인 모드에서 EdgeOne / ESA의 방문자 주소 읽기 | 해당 플랫폼에서만 표시하며 관리 Cloudflare Tunnel에서는 숨김 |
인증 서비스의 외부 HTTPS 포트는 외부 URL에만 영향을 주며 프로그램의 수신 포트를 바꾸지 않습니다. 라우터, 컨테이너 또는 엣지 플랫폼의 포트를 대신 열거나 NAT 포워딩을 만들지도 않습니다.
관리 Cloudflare Tunnel에서는 서브도메인 목록, 인증 주소, 로그인 리디렉션 및 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
공인 IP 직접 연결 서브도메인 모드에서는 Tencent Cloud EdgeOne / Alibaba Cloud ESA 지원을 활성화할 수 있습니다. 활성화하면 공개 URL에서 :7999를 생략하고 서브도메인 목록, 매핑 URL 및 인증 서비스에도 오래된 게이트웨이 포트 대신 공개 Host만 표시합니다. 이는 방문자 측 표시일 뿐이며 엣지 오리진은 fn-knock의 실제 수신 포트를 가리켜야 합니다. 게이트웨이는 플랫폼 헤더에서 실제 클라이언트 IP도 읽습니다.
| 플랫폼 | 클라이언트 IP 헤더 |
|---|---|
| Tencent Cloud EdgeOne | EO-Connecting-IP |
| Alibaba Cloud ESA | Ali-Real-Client-IP |
ESA에서는 사이트의 관리형 변환에서 “실제 클라이언트 IP 헤더 추가”도 활성화합니다. 이 스위치는 EdgeOne / ESA만 지원하며 모든 CDN을 신뢰하는 범용 스위치가 아닙니다. Cloudflared에는 리버스 프록시 모드 → 서브도메인 매핑 전용 경로를 사용합니다.
엣지 플랫폼이 외부 80 / 443을 처리하더라도 오리진은 fn-knock의 실제 게이트웨이 포트를 가리키도록 구성합니다. 로그인 응답을 캐시하는 규칙은 끄고 WebSocket은 허용합니다. 인증서와 DNS는 각각 TLS 인증서와 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만 입력 가능 |
응답 유형 | 리버스 프록시, 단일 파일 또는 디렉터리 선택. 인증 서비스는 리버스 프록시로 고정 |
대상(타깃) | 리버스 프록시에서만 사용. fn-knock 실행 환경에서 접근할 수 있는 HTTP, HTTPS, WS 또는 WSS 업스트림 주소이며 기본 경로 포함 가능 |
서버 경로 | 정적 응답에서만 사용. 절대 경로를 직접 입력하거나 찾아보기를 눌러 fn-knock 게이트웨이 프로세스에 보이는 파일 시스템에서 파일 또는 디렉터리를 선택. 선택을 확인한 뒤에도 매핑을 별도로 저장해야 함 |
대상 경로 사용 방식 | 대상에 루트가 아닌 경로가 있으면 진입점으로만 사용 또는 고정 접두사를 선택. 인증 서비스는 항상 진입점 모드 사용 |
로그인 필요 | 로그인하지 않았으면 인증 Host로 이동하고 완료 후 원래 주소로 돌아옴 |
비활성화 / 활성화 또는 비활성화 예약 | 직접 서비스를 내리거나 서버 로컬 시간을 기준으로 매일 공개 시간 제어 |
그룹 | 서비스 Host를 기존 그룹에 배치. 인증 서비스는 그룹에 넣을 수 없음 |
포털 표시 | 로그인 후 페이지의 서비스 전환 및 로그아웃 진입점 제어 |
표시 제목 | 목록, 포털 및 북마크의 표시 이름을 재정의 |
앱 아이콘 | 자동 수집 아이콘을 사용하거나 현재 서비스 Host의 사용자 지정 아이콘 업로드 |
Basic Auth 건너뛰기 | 업스트림 요청에 Basic Auth 사용자 이름과 비밀번호 삽입 |
접근 범위 | 전역 규칙 상속, 현재 Host 규칙으로 재정의 또는 현재 Host의 접근 범위 제한만 끄기 |
WAF 활성화 | 서비스 Host에서 기본적으로 활성화. 끄면 현재 Host가 전역 WAF를 건너뜀 |
저장된 매핑의 Host / 서브도메인을 직접 편집하면 이름 변경으로 처리되며 로그인 정책, 접근 범위 및 고급 인증이 유지됩니다. 리버스 프록시 매핑에서는 Basic Auth 자격 증명 삽입도 유지됩니다. 동일한 Target이나 서버 경로를 가진 별칭을 새로 만들어 이름 변경을 대신하지 마십시오. 별칭은 독립된 매핑이며 원래 Host의 보호 설정을 상속하지 않습니다.
리버스 프록시 서비스는 가능하면 루프백이나 사설망 주소에서만 수신 대기하도록 해 게이트웨이 우회를 방지합니다. Docker에서 127.0.0.1은 컨테이너 자체를 가리키므로 호스트 서비스를 프록시할 때는 컨테이너에서 접근할 수 있는 호스트 주소를 사용합니다. Docker 배포의 대상(타깃) 입력란에는 감지된 접근 가능한 LAN IP 후보가 표시되지만, 이 제안은 컨테이너 네트워크, 공개 포트 또는 업스트림 수신 범위를 변경하지 않습니다.
정적 응답에는 업스트림 서비스가 필요하지 않습니다. 단일 파일은 Host 루트 경로에서만 지정한 파일을 반환합니다. 디렉터리 응답은 기본 문서, 디렉터리 목록 및 안전한 README 렌더링을 지원합니다. 서버 경로, 보안 경계 및 Docker 읽기 전용 마운트는 정적 파일 및 디렉터리 응답을 참고합니다.
리버스 프록시 Target에 루트가 아닌 경로가 있으면 편집기에 대상 경로 사용 방식이 표시됩니다.
진입점으로만 사용(호환 모드)이 기본값입니다. 방문자가 Host 루트 경로를 요청할 때만 대상 경로를 사용하고 다른 요청 경로는 그대로 유지합니다. 예를 들어 대상 경로가/login이면/는 업스트림/login으로 가지만/assets/app.js는 그대로 업스트림/assets/app.js로 갑니다. 진입 페이지는 하위 경로에 있지만 정적 리소스나 로그인 콜백은 업스트림 루트에 있는 앱에 적합합니다.고정 접두사(디렉터리 마운트)는 모든 업스트림 요청 앞에 대상 경로를 붙입니다. 대상 경로가/webdav이면 방문자 경로/floccus/a는 업스트림/webdav/floccus/a로 전달됩니다. WebDAV처럼 디렉터리 마운트를 명시적으로 지원하는 서비스에 적합합니다.
이 필드가 없는 기존 매핑은 진입점으로만 사용으로 처리됩니다. 어느 모드에서든 홈 페이지, 정적 리소스, 리디렉션, 쿠키 및 WebSocket을 실제로 검증합니다. 이 설정은 업스트림 요청 경로를 결합하는 방식만 결정하며 업스트림 앱의 HTML, Cookie Path 또는 절대 URL을 대신 다시 쓰지 않습니다. 제목과 아이콘 수집에는 전체 대상과 명시적 포트를 사용합니다.
인증 서비스는 특별한 Host 매핑입니다. 공개 상태로 유지하고 로그인 필요나 Basic Auth 삽입을 활성화하지 않습니다. 그렇지 않으면 로그인 진입점에서 리디렉션 루프가 생기거나 자기 자신을 차단합니다.
그룹 보기
목록 위의 그룹 보기를 활성화하면 그룹 관리에서 그룹을 만들고 이름을 바꾸고 순서를 조정하거나 삭제할 수 있습니다. 개별 편집, 일괄 이동 또는 드래그 앤 드롭으로 서비스 Host를 그룹에 배치합니다. 그룹은 최대 32개까지 만들 수 있고 이름은 1~40자여야 하며 대소문자를 구분하지 않고 중복될 수 없습니다. 매핑이 남아 있는 그룹을 삭제해도 Host는 삭제되지 않고 “그룹 없음”으로 이동합니다.
그룹 순서와 Host 순서는 로그인 후 포털 및 내장 /__select__ 선택 페이지에 동기화됩니다. 브라우저 북마크를 내보낼 때도 같은 그룹 폴더가 만들어집니다. 목록 보기로 돌아가도 그룹 할당은 유지되지만 포털, 선택 페이지 및 새로 내보낸 북마크는 평면 순서를 사용합니다. 검색 중에는 일치하는 그룹과 Host만 표시하고 결과를 임시로 펼칩니다. 접기 상태는 현재 브라우저에만 저장됩니다.
그룹은 탐색 구조와 관리 순서만 바꾸며 인증, 접근 범위, WAF 또는 대상(타깃)은 변경하지 않습니다. 인증 서비스는 항상 그룹 밖에 있고 실제 접근은 자격 증명의 Host 서비스 범위에 따라 판단됩니다.
좁은 화면에서는 매핑이 카드 목록으로 표시되므로 데스크톱 표를 가로로 스크롤할 필요가 없습니다. 각 카드에는 제목, Host, 응답 대상(리버스 프록시 주소 또는 서버 경로), 상태, 실시간 트래픽 및 추가 작업이 유지됩니다. 그룹은 계속 접거나 한꺼번에 선택할 수 있고, 왼쪽 핸들을 끌어 그룹 안이나 그룹 사이에서 순서를 바꿀 수 있습니다. 다중 선택 모드에서는 현재 결과를 모두 선택하거나 그룹 하나만 선택할 수 있습니다.
휴대전화에서 매핑을 편집하며 입력란에 포커스하면 대화 상자가 소프트 키보드의 표시 영역에 맞춰 높이를 조정하고 현재 입력란을 화면 안으로 스크롤합니다. 아래쪽의 취소, 저장 및 경로 선택 작업은 계속 사용할 수 있으며, 소프트 키보드를 닫으면 대화 상자는 다시 하단 패널 배치로 돌아갑니다.
Basic Auth는 리버스 프록시 업스트림 자격 증명 삽입
Basic Auth 건너뛰기에는 대상 서비스 자체의 Basic Auth 자격 증명을 저장합니다. 게이트웨이는 요청을 프록시하거나 페이지 제목과 favicon을 가져올 때 이 자격 증명을 업스트림으로 전송해 브라우저에 Basic Auth 대화 상자가 다시 표시되지 않게 합니다.
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를 우회할 수 없습니다. 자세한 정책은 WAF를 참고합니다.
고급 인증
로그인 필요를 활성화한 HTTP / HTTPS 서비스 Host의 오른쪽 메뉴에는 고급 인증이 표시됩니다. 출발지 IP, 지역, URL 경로, 요청 헤더, 쿼리 매개변수 또는 HTTP 메서드에 따라 현재 Host에서만 유효한 임시 자격 증명을 발급할 수 있습니다. 규칙과 일치하지 않는 요청은 일반 로그인 절차를 계속 사용합니다.
규칙과 일치하면 해당 규칙을 발생시킨 경로나 요청만이 아니라 현재 Host 전체를 허용합니다. 시스템 로그인도 아니므로 포털을 만들거나 다른 Host에 권한을 부여하지 않습니다. 설정하기 전에 서브도메인 고급 인증을 읽습니다.
접근 정책 및 local_exempt
| 현재 화면 설정 | 권한이 없는 인터넷 요청 |
|---|---|
로그인 필요 끄기(현재 로그인 우선 매핑) | 업스트림으로 바로 이동 |
로그인 필요 켜기 | 유효한 출발지 IP 접근 권한이나 세션이 없으면 인증 Host로 이동 |
로그인 필요와 고급 인증 켜기 | 규칙과 일치하면 현재 Host의 임시 자격 증명을 발급하고, 일치하지 않으면 출발지 권한과 로그인을 계속 확인 |
백엔드는 기존 설정의 strict_whitelist 규칙과 계속 호환됩니다. 이 규칙은 로그인 필요를 꺼도 반드시 공개되는 것이 아니며 수동 또는 로그인 후 자동 생성된 유효 출발지 접근 권한 레코드를 기준으로 판단합니다. 브라우저 세션 쿠키만으로는 출발지 조건을 대신할 수 없습니다. 현재 Host 편집 화면에는 엄격한 허용 목록 규칙을 새로 만들거나 전환하는 컨트롤이 없습니다. 이 규칙을 사용하지 않으려면 전체 매핑을 기록한 뒤 현재 화면에서 다시 만듭니다. 새 매핑에서는 수동 출발지 접근 권한으로 독립적으로 허용할 수 있습니다. 자동 IP 접근 권한은 일반적으로 같은 출발지의 계속된 접근을 허용하지만 이미 적용된 서비스 범위 거부를 무시하지는 않습니다. IP 허용 목록은 엄격한 출발지 제한 스위치가 아닙니다. 요청이 매핑에 도달하기 전에 출발지 범위를 좁히려면 게이트웨이 접근 범위나 외부 네트워크 계층 규칙을 사용합니다.
로그인 자격 증명에서 접근 가능한 Host 범위를 제한할 수 있습니다. 하나의 자격 증명으로 로그인에 성공했다고 해서 모든 서비스 서브도메인에 자동으로 접근할 수 있는 것은 아닙니다.
인증 서비스는 게이트웨이가 식별한 출발지 IP를 먼저 판단합니다. 루프백, 사설망 및 링크 로컬 등의 출발지는 local_exempt를 반환하고 일반 로그인과 엄격한 허용 목록 검사를 건너뜁니다. 즉, LAN은 기본 신뢰 경계에 속합니다.
- 기존 엄격한 허용 목록 규칙도 LAN 출발지에 로그인을 강제하지 않습니다.
- 자격 증명의 Host 서비스 범위도 로컬 예외 출발지를 제한하는 데 사용되지 않습니다. 이는 네트워크 신뢰 경계이므로 자격 증명 범위를 검증하는 데 적합하지 않습니다.
- LAN 테스트만으로는 인터넷 정책이 적용되었다고 판단할 수 없습니다.
- 앞단에 FRP, Cloudflared, EdgeOne 또는 ESA를 두었다면 요청 로그에서 실제 공인 IP가 게이트웨이까지 전달되었는지 확인합니다. 프록시의 사설 주소를 방문자 출발지로 잘못 인식하면 접근 권한 결과가 달라집니다.
출발지 네트워크 설정은 IP 허용 목록과 게이트웨이 접근 범위를 참고합니다.
일괄 등록 및 유지 관리
서비스 검색은 허용된 로컬 IPv4 네트워크 대역을 스캔하고 후보 Host를 만듭니다. 스캔에는 최대 16개 CIDR과 전체 1024대의 호스트를 포함할 수 있습니다. 루프백, 네트워크 인터페이스, Docker 호스트, 기존 매핑 및 직접 저장한 로컬 범위만 스캔하며 인터넷을 탐색하지 않습니다.
스캔 창에서는 “기기 권장 설정 사용”(기본값) 또는 낮음, 중간, 높음, 매우 높음 강도를 선택할 수 있습니다. 단계는 동시 실행 수, 속도 및 기기 부하만 바꾸며 스캔 범위나 검색 결과는 바꾸지 않습니다. 기본값에서는 CPU, 사용 가능한 메모리 및 파일 디스크립터 한도를 바탕으로 비교적 안전한 단계를 선택합니다. NAS나 라우터처럼 자원이 부족한 기기에서는 자동 또는 낮음 강도를 우선 유지합니다.
스캔 포트, 허용 CIDR 범위, Docker 네트워크 관점 및 일괄 저장 규칙은 서비스 검색 및 일괄 등록을 참고합니다.
목록에서는 다음 작업을 사용할 수 있습니다.
다중 선택: 선택 모드에서 현재 검색 결과, 한 그룹 또는 임의의 서비스 Host를 선택할 수 있습니다. 그룹 이동, 활성화, 비활성화, 동일한 일일 공개 시간 적용 또는 삭제를 일괄 실행합니다. 인증 서비스는 선택 대상에서 제외됩니다. 검색 조건이나 보기를 바꾸면 현재 선택이 지워지며 일괄 삭제는 되돌릴 수 없습니다.아이콘 및 제목 새로 고침: 리버스 프록시 업스트림 메타데이터를 다시 가져오며 정적 매핑은 건너뜁니다.만료된 서비스 정리: 먼저HEAD, 실패하면GET으로 HTTP / HTTPS 업스트림을 검사하고 관리자가 확인한 뒤 접근할 수 없는 매핑을 삭제합니다. 정적 매핑은 검사하지 않습니다.북마크로 내보내기: 인증 서비스를 제외한 서비스 Host를 내보냅니다.모든 설정 지우기: 두 번 확인한 뒤 인증 서비스와 모든 Host 매핑을 삭제하고 루트 도메인 등의 모드 설정은 유지합니다.
Host별 트래픽 세부 정보에서 실시간 트래픽과 활성 IP를 확인하고 비정상 출발지를 일반 차단 목록에 추가할 수 있습니다.
내비게이션 패널로 동기화는 활성 앱 Host를 Sun-Panel, OneNav 또는 Van-Nav에 게시하지만 내부 Target은 내보내지 않습니다. 미리보기, 소유권, 정리, 자동 동기화 경계는 내비게이션 패널 동기화를 참고하세요.
대상 주소 최적화
목록 유지 관리 메뉴의 대상 주소 최적화는 리버스 프록시 매핑만 처리하며 루프백과 감지된 호스트 LAN 주소 사이에서 Target을 일괄 변경합니다. 정적 파일 및 디렉터리 매핑은 미리보기에 표시되지 않습니다. LAN 주소를 선택하면 현재 127.0.0.1을 사용하는 매핑만, 루프백을 선택하면 감지된 로컬 LAN 주소를 사용하는 매핑만 표시합니다. 미리보기는 스킴, 포트와 경로를 유지하고 호스트만 바꾸며 선택한 매핑만 저장합니다.
후보 주소 감지는 대상 접근 가능성을 보장하지 않습니다. Docker 안의 127.0.0.1은 현재 컨테이너만 가리킵니다. 적용 전에 컨테이너에서 호스트로 가는 경로와 대상 포트를 확인하고 저장 후 각 서비스 Host를 검증합니다.
심층 모니터링
일반 요청 로그만으로 HTTP 또는 WebSocket 문제를 설명할 수 없다면 개별 서비스 Host의 더보기 → 심층 모니터링에서 시간 제한 캡처를 시작합니다. 이미 설정된 정확한 Host만 대상으로 하며 기본 30분, 최대 2시간 동안 실행합니다. 페이지에는 실시간 요약이 표시되고 요청, 응답, 업스트림 및 WebSocket 페이로드 정보가 포함된 ZIP을 다운로드할 수 있습니다.
심층 모니터링은 쿠키, Authorization, 요청 본문, 응답 본문 및 원시 WebSocket 프레임을 마스킹하지 않고 게이트웨이 디스크에 기록합니다. 문제를 재현하는 짧은 시간 동안만 켜고 완료하면 즉시 중지하고 비웁니다. 직접 삭제하지 않은 데이터도 세션 중지 24시간 뒤 자동 삭제됩니다. 내보낸 압축 파일은 자격 증명 파일처럼 취급하고 공개 이슈나 단체 채팅에 바로 올리지 않습니다.
실시간 텍스트 영역에는 최근 1000개 요약 줄만 유지됩니다. 버린 이벤트 수, 할당량 소진, 쓰기 과부하 또는 저장소 오류가 보이면 다운로드 패키지와 세션 중지 원인을 기준으로 확인합니다. 심층 모니터링은 임시 장애 분석 기능이며 상시 요청 로그, WAF 또는 업스트림 애플리케이션 로그를 대신하지 않습니다.
Host 라우트 보완 기능
- 경로 응답은 특정 Host에 소수의 특수 경로만 추가하며 일치하지 않으면 해당 Host의 기본 대상(타깃)으로 돌아갑니다.
- 정적 파일 및 디렉터리 응답은 서비스 Host 전체에서 로컬 파일을 직접 읽으며 리버스 프록시 업스트림이 필요하지 않습니다.
- 프로토콜 매핑은 공인 IP 직접 연결 서브도메인 모드에 TCP / UDP 포트를 추가하며 리버스 프록시 모드의 서브도메인 매핑에는 적용되지 않습니다.
- fnOS 공유 우회는 유효한 fnOS
/s/...공유 경로만 우회하며 사이트 전체를 공개하지 않습니다.
이러한 기능을 사용해도 Host가 웹의 기본 라우트라는 사실은 바뀌지 않습니다.
플랫폼별 지원 범위
- Host 라우트와 정적 응답은 fnOS FPK, Docker, OpenWrt, Linux, macOS, Synology DSM 7 SPK 및 Windows에서 사용할 수 있습니다. 정적 경로는 게이트웨이 프로세스가 실행되는 파일 시스템에서 읽을 수 있어야 하며 실제 인터넷 접근 가능 여부는 각 플랫폼의 포트 공개와 네트워크 경로에 달려 있습니다.
- 호스트 방화벽 자동 규칙 추가와 Smart Connect는 해당 런타임 기능을 갖춘 표준 fnOS FPK에서만 제공합니다. Docker, OpenWrt, Linux, macOS, Synology 및 Windows에서는 제공하지 않습니다.
- 프로토콜 매핑은 공인 IP 직접 연결 서브도메인 모드에서만 표시됩니다. Docker에서 추가 포트를 공개해도 fn-knock가 호스트 방화벽을 관리하지 않습니다.
- OpenWrt의 포트 허용과 LAN 분할 DNS는 OpenWrt 자체에서 관리합니다. fn-knock는 직접 연결, 호스트 방화벽 관리, Smart Connect, SSH 보안 또는 웹 관리 패널 FPK 업데이트를 제공하지 않습니다. 웹 터미널은 관리자가 설정한 원격 SSH 대상에 연결할 수 있으며, 기본적으로 비활성화되어 있고 fn-knock 서비스 계정의 권한을 상속하는 OpenWrt 로컬 PTY도 활성화할 수 있습니다.
- fn-knock는 업스트림 서비스의 기존 공인 수신 포트를 자동으로 닫지 않으며 업스트림 업데이트, 백업 및 최소 권한 설정을 대신하지도 않습니다.
확인 및 문제 해결
요청 경로를 따라 다음 순서로 확인합니다.
- DNS 또는 Tunnel이 현재 Host를 올바른 게이트웨이로 보내는지 확인합니다. 관리 Cloudflared는 동기화 상태, 와일드카드 DNS 및 Ingress를 먼저 확인합니다.
- 요청 로그의 Host와 클라이언트 IP가 올바른지 확인합니다.
- 인증 서비스가 존재하고 로그인 필요나 Basic Auth가 활성화되지 않았는지 확인합니다.
- 서비스 매핑이 활성화되어 있고 현재 시각이 공개 시간 안에 있는지 확인합니다.
- fn-knock 실행 환경에서 리버스 프록시 Target에 접근할 수 있는지 확인합니다. 정적 매핑은 서버 경로, 유형, 권한 및 마운트를 다시 확인합니다.
- 로그인 자격 증명에서 현재 Host를 허용하는지 확인합니다. 고급 인증을 활성화했다면 규칙 그룹, 조건 및 임시 자격 증명 상태도 확인합니다.
- 이전의 엄격한 허용 목록 규칙이 있다면 현재 인터넷 출발지가 허용되었는지 확인합니다.
- HTTPS 인증서가 현재 Host를 포함하는지, 앞단 플랫폼에서 WebSocket을 허용하고 인증 응답을 캐시하지 않는지 확인합니다.
서비스 한두 개를 먼저 연결해 외부 네트워크 확인을 마친 뒤 일괄 검색과 접근 정책 강화를 진행합니다.
