본문으로 건너뛰기

fn-knock를 통해 fnOS 클라이언트 사용

fnOS 클라이언트가 최종적으로 연결하는 주소는 fn-knock에서 공개한 방식과 일치합니다. 클라이언트에서 웹 인증 리디렉션, 쿠키, 패스키를 직접 처리할 수 있는지는 클라이언트 버전과 네트워크 구현에 따라 달라집니다. 모바일 브라우저의 세션이 네이티브 클라이언트에 자동으로 공유된다고 보장할 수도 없습니다. 설정 후에는 브라우저에서 페이지가 열리는지만 보지 말고 클라이언트에서 실제 로그인, 파일, 미디어 작업을 수행하여 검증합니다.

사용할 수 있는 경로는 두 가지입니다.

방식클라이언트에 입력할 주소fn-knock의 역할
서브도메인 게이트웨이 또는 터널 서브도메인fnOS 서비스 Host(예: https://nas.example.com)클라이언트의 각 요청에 Host 라우팅과 접근 정책 적용
직접 연결 접근 허용fnOS 서비스의 원본 공인 주소와 포트브라우저에서 먼저 로그인하면 fn-knock가 출발지 IP에 원본 포트를 일시적으로 개방

서브도메인 게이트웨이 또는 터널 서브도메인 매핑

fnOS 서비스용 Host(예: nas.example.com)를 만들고 대상(타깃)을 fnOS 서비스의 LAN 주소로 지정합니다. 인증 Host와 fnOS Host는 모두 동일한 게이트웨이로 전달합니다.

  1. 모바일 브라우저에서 fnOS Host를 열어 로그인하지 않았을 때 인증 Host로 이동하는지 확인하고 로그인을 완료합니다.
  2. 클라이언트에 https://nas.example.com 또는 실제 외부 포트를 포함한 전체 주소를 입력합니다.
  3. 클라이언트에서 fnOS 계정으로 로그인하고 디렉터리 조회, 업로드, 다운로드, 미디어, 장시간 연결을 테스트합니다.
  4. fn-knock 요청 로그에서 클라이언트 요청의 Host, 클라이언트 IP, 인증 결과, 업스트림 대상(타깃)을 확인합니다.

클라이언트가 브라우저 쿠키를 재사용하지 못하면 ‘로그인 필요’가 켜진 Host에서 웹 인증 리디렉션을 계속 반환할 수 있습니다. 이 문제 때문에 서비스 Host를 바로 공개로 바꾸지 않습니다. 먼저 클라이언트가 시스템 브라우저 인증 또는 쿠키 영속화를 지원하는지 확인합니다. 호환할 수 없다면 통제된 직접 연결 접근 허용을 사용하거나 네트워크 계층에서 VPN 또는 고정된 신뢰 출발지만 허용합니다.

서브도메인 방식에서 클라이언트에 게이트웨이를 거치지 않는 5666 같은 원본 공인 포트를 입력하면 안 됩니다. 인증, 세션, 출발지 IP 판정을 모두 우회하게 됩니다.

직접 연결 모드

직접 연결 모드는 게이트웨이 엔드포인트에서 인증을 완료한 뒤 현재 공인 IP에 원본 포트 접근을 허용합니다. fnOS 네이티브 FPK와 호스트 방화벽을 지원하는 OpenWrt에서만 사용할 수 있습니다. Docker, 일반 Linux, Synology DSM 7 SPK, Windows는 이 동적 포트 접근 허용을 제공하지 않습니다.

  1. 시스템 설정 → 모드에서 직접 연결 모드(권장하지 않음)를 선택하고 로컬 복구 경로를 유지합니다.
  2. 시스템 설정 → 세션에서 로그인 후 IP 접근 허용을 ‘세션에 맞춤’ 또는 필요한 시간으로 설정합니다.
  3. 모바일 브라우저에서 게이트웨이 엔드포인트에 접속하여 로그인합니다.
  4. 현재 모바일 네트워크의 출발지 공인 IP가 IP 접근 허용 목록에 표시되는지 확인합니다.
  5. 클라이언트에 fnOS 서비스의 원본 공인 주소와 포트를 입력하고 실제 기능을 테스트합니다.

네트워크가 전환되어 공인 IP가 바뀌면 클라이언트의 원본 포트 연결은 접근 권한을 자체적으로 갱신할 수 없습니다. 브라우저에서 게이트웨이 엔드포인트를 다시 연 뒤 클라이언트로 돌아가 테스트합니다.

서비스 범위가 제한된 로그인 자격 증명은 자동 IP 접근 권한을 생성하지 않습니다. 직접 연결이 필요하면 범위가 제한되지 않은 자격 증명을 사용하거나 관리자가 현재 출발지를 수동으로 추가합니다. 모바일 네트워크에 지나치게 넓은 CIDR을 등록하면 안 됩니다.

문제 해결

증상확인 항목
클라이언트에서 연결할 수 없음클라이언트 주소가 실제 공개 Host와 일치하는지, DNS/인증서, 터널 또는 인터넷 엔드포인트 확인
브라우저에서는 열리지만 클라이언트에서는 열리지 않음클라이언트의 브라우저 쿠키 공유 여부, 인증 리디렉션 처리, HTTPS 인증서 지원, 주소 형식
클라이언트에서 로그인을 계속 요구함요청 로그의 인증 상태와 클라이언트의 쿠키 보존 여부를 확인하고 인증 응답을 캐시하지 않음
네트워크를 바꾸면 연결이 끊김세션, 클라이언트 IP, 직접 연결 모드의 허용 목록을 확인하고 필요하면 다시 로그인
페이지 오류 또는 반복 로그인쿠키 도메인, 인증 Host, 실제 클라이언트 IP, 업스트림 프록시 캐시
직접 연결 로그인 후에도 포트가 열리지 않음IP 접근 허용 정책, 자격 증명 서비스 범위, 현재 출발지 IP, fnOS 서비스 리스너, 방화벽 동기화

모바일 네트워크에서 테스트할 때는 Wi-Fi를 끄고 네트워크를 전환한 뒤 클라이언트 연결을 새로 만듭니다. 테스트 후 더 이상 필요하지 않은 자동 또는 수동 IP 접근 권한이 남아 있는지도 확인합니다.

QQ 커뮤니티: 1081609274