실행 모드 선택
시스템 설정 → 모드에서는 네트워크 토폴로지와 라우팅 방식을 조합한 여러 옵션을 제공합니다. 설정하기 전에 트래픽이 기기까지 어떻게 들어오는지, 게이트웨이가 서비스를 어떻게 찾을지, 서비스에 누가 접근할 수 있을지를 각각 결정합니다.
웹 서비스는 Host 라우팅을 기본으로 사용합니다. 경로 모드는 기존 경로 기반 엔드포인트나 마이그레이션할 수 없는 애플리케이션을 위해 남겨 둔 호환 방식이며, 새로 배포할 때는 권장하지 않습니다.
이 문서의 내장 터널 절차는 관리 패널에서 실제로 FRP 또는 Cloudflared를 제공하는 배포에만 적용됩니다. Windows의 7999는 기본적으로 모든 인터페이스에서 수신하므로 공인 IP 직접 연결이나 별도로 관리하는 터널의 오리진으로 사용할 수 있습니다. 하지만 Windows 버전은 내장 FRP/Cloudflared, 직접 연결 접근 허용 및 동적 호스트 방화벽 관리를 제공하지 않습니다. 외부 접속 가능 여부는 Windows 방화벽 프로필, 라우터/NAT, IPv6 및 ISP 정책에 따라 달라집니다. 자세한 내용은 Windows x86_64 배포를 참고합니다.
1. 네트워크 토폴로지 선택
| 조건 | 관리 패널 선택 항목 | 외부 트래픽 경로 |
|---|---|---|
| 기기에 외부에서 도달 가능한 공인 IPv4/IPv6가 있음 | 서브도메인 모드 | 도메인에서 게이트웨이로 직접 연결 |
| 기기에 인터넷 인바운드 경로가 없음 | 리버스 프록시 모드 | FRP 또는 Cloudflared가 요청을 게이트웨이로 전달 |
| 로그인한 뒤 원본 포트에 계속 접속해야 함 | 직접 연결 모드(권장하지 않음) | 먼저 게이트웨이에서 로그인한 뒤 방화벽이 출발지 IP를 허용 |
공인 IP의 유무는 외부 트래픽이 들어오는 토폴로지만 결정할 뿐, 웹 서비스가 반드시 경로 라우팅을 사용해야 한다는 뜻은 아닙니다. 리버스 프록시 모드에서도 서브도메인 매핑을 선택할 수 있습니다.
2. 라우팅 방식 선택
Host 라우팅: 웹 서비스의 기본 선택
공인 IP 직접 연결의 서브도메인 모드 또는 리버스 프록시 모드 → 서브도메인 매핑에서는 요청의 Host를 기준으로 서비스를 나눕니다.
auth.example.com -> 인증 서비스
nas.example.com -> http://127.0.0.1:5666
alist.example.com -> http://127.0.0.1:5244서비스마다 루트 경로를 그대로 사용할 수 있어 정적 리소스, WebSocket, 콜백 URL이 정상 작동하기 쉽습니다. 두 토폴로지는 같은 서브도메인 매핑 구성을 사용하지만 제공 기능은 다릅니다.
- 공인 IP 직접 연결의 서브도메인 모드는 호스트 방화벽, Smart Connect, 프로토콜 매핑과 함께 사용할 수 있습니다.
- 리버스 프록시 모드의 서브도메인 매핑은 FRP/Cloudflared를 계속 사용할 수 있지만 Smart Connect와 프로토콜 매핑을 제공하지 않습니다.
설정 방법은 서브도메인 모드 시작하기를 참고합니다.
경로 라우팅: 호환 방식
리버스 프록시 모드 → 경로 모드는 하나의 Host 아래에서 경로 접두사로 서비스를 나눕니다.
https://example.com/alist -> http://127.0.0.1:5244
https://example.com/fnos -> http://127.0.0.1:5666일부 애플리케이션은 접두사 제거, HTML 재작성 또는 루트 경로 호환 설정이 필요합니다. 이러한 설정을 적용해도 절대 경로, Service Worker 또는 콜백 URL 때문에 작동하지 않을 수 있습니다. 기존 경로 기반 배포는 계속 사용할 수 있지만 새 서비스는 Host 라우팅을 우선 사용합니다. 설정 방법은 NAT 통과 시작하기를 참고합니다.
TCP/UDP 및 원본 포트
프로토콜 매핑은 SSH, 데이터베이스, DNS 같은 비 HTTP 서비스를 위해 별도의 TCP/UDP 포트에서 수신하며, 공인 IP 직접 연결의 서브도메인 모드에서만 제공합니다. 프로토콜 매핑을 참고합니다.직접 연결 모드는 서비스를 프록시하지 않습니다. 로그인 후 현재 출발지 IP를 허용 범위에 추가한 다음5666,22같은 원본 포트로 접속합니다. 직접 연결 모드 시작하기를 참고합니다.
3. 접근 정책 선택
현재 Host 편집 페이지에는 로그인 필요 스위치가 바로 표시됩니다. 끄면 공개 접근, 켜면 로그인 우선 접근입니다.
| 설정 | 인터넷 요청 처리 결과 | 적합한 상황 |
|---|---|---|
해당 Host 매핑의 로그인 필요를 끔 | 업스트림으로 바로 프록시 | 명시적으로 공개할 서비스 |
로그인 필요를 켬 | 유효한 출발지 IP 접근 권한이나 세션이 없으면 auth.example.com으로 이동하고, 인증 후 원래 Host로 복귀 | 대부분의 개인용 웹 서비스 |
백엔드는 기존 설정의 strict_whitelist도 계속 인식합니다. 이 규칙은 로그인 필요를 꺼도 공개되지 않을 수 있으며, 유효한 출발지 접근 허용 기록(수동 또는 로그인 후 자동 생성)만 확인합니다. 브라우저 세션 쿠키 자체로는 출발지 조건을 대신할 수 없습니다. 현재 UI에는 엄격한 허용 목록 규칙을 새로 만들거나 전환하는 컨트롤이 없습니다. 이 규칙에서 벗어나려면 전체 매핑을 기록한 뒤 현재 UI에서 다시 만듭니다. 새 매핑에서는 수동 출발지 접근 허용이 독립적으로 통과할 수 있습니다. 자동 IP 접근 허용은 일반적으로 같은 출발지의 후속 요청을 허용하지만, 브라우저에 이미 적용된 서비스 범위 거부보다 우선하지 않습니다. IP 허용 목록은 엄격한 출발지 제한 스위치가 아닙니다. 요청이 매핑에 도달하기 전에 출발지를 좁히려면 게이트웨이 접근 범위 또는 외부 네트워크 계층의 규칙을 사용합니다.
로그인 자격 증명에는 접근 가능한 서비스 범위도 지정할 수 있습니다. 브라우저에 유효한 세션이 있어도 자격 증명 범위 밖의 Host는 거부됩니다.
Basic Auth 건너뛰기는 fn-knock 접근 정책이 아닙니다. 업스트림 요청에 사용자 이름과 비밀번호를 삽입하여 대상 서비스 자체의 Basic Auth를 통과하는 기능이며, fn-knock가 사용자에게 제공하는 로그인 방식이 아닙니다.
로컬 출발지 예외
게이트웨이가 루프백, 사설망 또는 링크 로컬 출발지를 감지하면 인증 결과를 local_exempt로 처리하여 일반 로그인과 엄격한 허용 목록 검사를 모두 통과시킵니다. LAN을 신뢰 경계의 일부로 간주하는 동작입니다.
- LAN 테스트 결과만으로 인터넷 인증이 적용되는지 판단하지 않습니다.
- 터널이나 앞단 프록시는 실제 클라이언트 IP를 올바르게 전달합니다. 그렇지 않으면 모든 사용자가 같은 프록시 출발지로 보이거나 로컬 출발지로 잘못 인식될 수 있습니다.
- 로그인, 허용 목록, 로그아웃 이후 동작은 모바일 데이터에서 검증합니다.
권장 조합
| 환경 | 네트워크 토폴로지 | 라우팅 | 접근 정책 |
|---|---|---|---|
| 공인 IP와 도메인이 있는 웹 서비스 | 서브도메인 모드 | Host | 로그인 필요를 켬. 외부 엔드포인트를 더 좁혀야 하면 게이트웨이 접근 범위를 별도로 구성 |
| 공인 IP 없이 Cloudflared 사용 | 리버스 프록시 모드 → 서브도메인 매핑 | Host | 로그인 필요를 켬 |
| 공인 IP 없이 FRP 사용 | 리버스 프록시 모드 → 서브도메인 매핑 | Host | 로그인 필요를 켜고 PROXY Protocol이 출발지 IP를 보존하는지 확인 |
| 마이그레이션 중인 기존 경로 기반 배포 | 리버스 프록시 모드 → 경로 모드 | 경로 | 매핑별로 로그인 여부 결정 |
| 여러 원본 포트에 접속해야 함 | 직접 연결 모드(권장하지 않음) | 원본 포트 | 로그인 후 출발지 IP 허용 |
모드 전환 시 유지되거나 중지되는 기능
- 경로 모드에서 서브도메인 라우팅으로 전환하면 경로 매핑이 숨겨집니다. 공인 IP 직접 연결의 서브도메인 모드로 전환할 때는 경로 규칙을 정리할지 묻는 메시지가 표시됩니다.
리버스 프록시 모드의 서브도메인 매핑과 경로 모드는 모두 FRP/Cloudflared를 사용할 수 있습니다. 리버스 프록시 모드에서 벗어나면 시스템이 실행 중인 터널을 중지하려고 시도합니다.- 공인 IP 직접 연결의 서브도메인 모드에서 벗어나면 프로토콜 매핑 기능과 수신 포트가 중지되지만 저장된 규칙은 유지됩니다. 이 모드로 돌아와 기능을 활성화하면 복원할 수 있습니다.
- 직접 연결 모드는 호스트 방화벽에 의존합니다. Docker, Synology DSM 7 SPK, Windows 또는 호스트 관리 기능이 없는 배포에서는 선택할 수 없습니다.
- Docker는 호스트 방화벽을 변경하지 않으며 Smart Connect도 지원하지 않습니다. OpenWrt는 SSH 보안, 웹 터미널, 웹 관리 패널 FPK 업데이트를 제공하지 않지만 Smart Connect는 지원합니다. OpenWrt Smart Connect의 전제 조건은 활성화된
dnsmasq와/etc/dnsmasq.d/를 포함한 설정입니다. 페이지에서apt-get으로 의존성을 자동 설치할 수는 없습니다. - Windows는 직접 연결 접근 허용, 내장 호스트 방화벽 관리, Smart Connect, 내장 FRP/Cloudflared, 웹 터미널, SSH 보안을 지원하지 않습니다. 웹 업데이트 페이지에서도 Windows 업데이트를 설치할 수 없습니다.
- Synology DSM 7 SPK는 내장 FRP/Cloudflared를 지원하지만 직접 연결 접근 허용, 호스트 방화벽 관리, Smart Connect, 웹 터미널, SSH 보안, 웹 UI에서의 업데이트는 지원하지 않습니다.
전환 후에는 페이지가 열리는지만 확인하지 말고 실제 외부 네트워크에서 엔드포인트, Host, 클라이언트 IP, 접근 허용 유형, 업스트림 대상을 점검합니다.
