DNS가 Immich 문제의 원인일 가능성이 높은 경우는 장애가 발생한 클라이언트가 정확한 Immich 호스트 이름을 해당 서비스를 제공해야 하는 주소로 변환하지 못하거나, 리졸버·네트워크·시간에 따라 그 응답이 달라질 때뿐입니다.
이름 확인과 애플리케이션 연결 가능성을 পৃথ개로 테스트하세요. IP 수준의 연결이 성공하면 경로와 포트가 존재한다는 사실은 알 수 있지만, 호스트 이름 없이도 HTTPS, 리버스 프록시 라우팅, 인증서 또는 호스트 기반 규칙이 작동한다는 뜻은 아닙니다. 가장 안전한 작업 순서는 정확히 실패한 이름을 기록하고, 영향을 받은 클라이언트에서 이를 조회한 다음, 리졸버를 비교하고, DNS 계층에서 한 가지를 변경한 뒤 원래 Immich 작업을 다시 수행하는 것입니다.
정확한 호스트 이름과 실패 경로 정의하기
실패한 Immich 클라이언트가 실제로 사용하는 호스트 이름, 연결된 네트워크, 실패 시각, 그리고 문제가 웹 앱·모바일 앱·양쪽 중 어디에 영향을 미치는지 기록하세요. 관련 없는 일반적인 공개 도메인을 확인하는 것으로 시작하지 마세요. 이는 일부 DNS 경로가 작동한다는 사실만 증명할 뿐입니다.
작동하는 클라이언트와 실패하는 클라이언트에서 동일한 호스트 이름을 비교하세요. 모든 A 및 AAAA 응답, 응답한 리졸버, 그리고 클라이언트가 홈 네트워크 내부·모바일 데이터·VPN 중 어디에 있는지 기록하세요. 분할 DNS를 사용하는 경우 서로 다른 응답이 의도된 것일 수 있지만, 각 클라이언트가 연결 가능한 엔드포인트로 이동해야 한다는 점은 동일합니다.
대조군으로, 일반적인 DNS 조회에 의존하지 않고 예상 서버 주소와 포트에 연결할 수 있는지 테스트하세요. 이는 네트워크 경로를 구분하기 위한 용도로만 사용하세요. 서비스가 정상이어도 HTTPS 인증서, SNI, 리버스 프록시 및 가상 호스트가 IP 기반 요청을 거부할 수 있습니다.
서버가 아닌 실패한 클라이언트에서 DNS 조회하기
실제로 실패하는 장치나 환경에서 DNS 조회를 실행하세요. Immich 클라이언트가 VPN, 프라이빗 DNS 프로필, 컨테이너 스텁 또는 라우터가 제공하는 리졸버 뒤에 있다면, 서버 자체에서 실행한 조회는 다른 리졸버 경로를 사용하여 문제를 숨길 수 있습니다.
먼저 클라이언트의 기본 리졸버를 통해 실패한 호스트 이름을 조회한 다음, 알려진 비교용 리졸버나 의도한 내부 리졸버를 명시적으로 조회하세요. 대상 지정 dig 조회를 사용하면 반환된 응답, 응답 서버, 상태 및 조회 시간을 확인할 수 있어 특정 리졸버에서만 문제가 발생하는지 파악할 수 있습니다.
한 번 성공한 결과만 믿지 말고 여러 차례 조회를 반복하세요. NXDOMAIN, SERVFAIL, 시간 초과, 오래된 주소 또는 일관되지 않은 A/AAAA 응답을 기록하세요. 정확한 응답이 안정적으로 반환된다면 기본적인 DNS 확인보다는 라우팅, 프록시, TLS, 방화벽 또는 애플리케이션 설정에 문제가 있을 가능성이 커집니다.
리졸버 결과와 오류 유형 비교하기
설정을 변경하기 전에 응답 코드를 해석하세요. NXDOMAIN은 해당 리졸버의 관점에서 조회한 이름이 존재하지 않는다는 뜻이고, SERVFAIL은 확인을 완료하지 못했다는 뜻이며, 시간 초과는 리졸버가 제때 응답하지 않았다는 뜻입니다. 문법적으로 유효한 응답이라도 오래된 라우터 주소나 연결할 수 없는 엔드포인트를 가리킨다면 잘못된 응답일 수 있습니다.
이름을 찾을 수 없는 오류와 일시적인 리졸버 오류는 서로 다른 문제 흐름입니다. 이름 확인 오류의 차이를 활용하여 누락된 레코드, 연결할 수 없는 리졸버 또는 불안정한 DNS 경로 중 무엇을 수정해야 하는지 판단하세요. 모든 조회 실패를 같은 문제로 취급해서는 안 됩니다.
홈 리졸버만 오래되었거나 잘못된 주소를 반환하고 다른 리졸버는 의도한 공용 값을 반환한다면, 로컬 재정의, 분할 DNS 레코드, DHCP가 제공하는 DNS, 필터링 서비스 및 캐시를 점검하세요. 모든 리졸버가 동일하고 정확한 주소를 반환한다면 DNS 변경을 중단하고 서비스 경로를 확인하세요.
제어된 우회로 DNS 문제 여부 입증 또는 배제하기
실패한 클라이언트의 이름 확인 방식만 변경하는 임시적이고 되돌릴 수 있는 제어 방법을 하나 마련하세요. 예를 들어 다른 리졸버를 직접 조회하거나, 정확한 Immich 호스트 이름을 확인된 의도한 엔드포인트에 매핑하는 임시 hosts 파일 항목을 사용할 수 있습니다. 테스트를 즉시 되돌릴 수 있도록 원래 설정을 보존하세요.
호스트 이름은 동일하게 유지되고 이름 확인 경로만 변경했을 때 원래 Immich 작업이 작동하기 시작한다면 DNS가 원인일 가능성이 매우 높습니다. 동일한 호스트 이름이 검증된 엔드포인트로 확인된 뒤에도 계속 실패한다면 문제는 DNS 이후 단계에 있으며, 프록시 라우팅, 인증서, NAT, 방화벽 규칙 또는 Immich 서비스 자체를 점검해야 합니다.
한 번의 정상적인 조회로는 가정 내 장애가 발생한 시간대를 재현할 수 없다면, 시간에 따른 호스트, 컨테이너, 로컬 리졸버, 상위 리졸버, DHCP, VPN 및 캐시 상태를 비교하세요. 다중 계층 DNS 장애 점검을 사용하면 일회성 테스트 중에는 사라지는 간헐적 문제를 발견하는 데 도움이 됩니다.
적절한 캐시를 지우고 원래 Immich 작업 다시 테스트하기
DNS 레코드, 리졸버, DHCP 옵션, 분할 DNS 규칙 또는 로컬 재정의를 수정한 후에는 가능하다면 관련 클라이언트나 리졸버의 캐시만 지우세요. 변경 사항을 기록하지 않은 채 모든 계층을 반복해서 초기화하지 마세요. 일시적으로 성공한 이유를 설명할 수 없게 될 수 있습니다.
영향을 받은 클라이언트에서 호스트 이름을 다시 확인하고 의도한 A/AAAA 응답, 리졸버 및 응답 시간을 검증하세요. 그런 다음 일반적인 호스트 이름을 통해 Immich를 열고, 이전 자산을 불러오고, 검색을 수행한 뒤, 안전한 업로드 한 건이나 기타 쓰기 작업을 실행하여 로그인 페이지만이 아닌 여러 기능을 테스트하세요.
모바일 데이터, 홈 Wi-Fi, VPN에 연결된 Wi-Fi 또는 라우터/DHCP 갱신 직후처럼 원래 문제가 발생했던 네트워크 상태에서 확인을 반복하세요. 이전에 문제를 일으킨 조건에서도 일반 호스트 이름이 계속 정확하게 유지될 때에만 DNS를 근본 원인에서 제외할 수 있습니다. 그렇지 않다면 새로 얻은 증거를 보존하고 다음 네트워크 계층에서 계속 점검하세요.
지원 및 팁
더 읽어보기

여러 컨테이너에서 동시 실행할 때 Immich 데이터베이스 연결을 최적화하는 방법
먼저 max_connections를 늘리지 마세요. Immich 세션을 측정하고, 모든 컨테이너의 요구량을 합산하며, 관리용 여유 공간을 확보한 뒤, 실제로 확인된 병목만 조정하세요.

Immich에서 중복 작업 또는 가져오기를 방지하는 방법
반복 작업과 중복 자산을 분리하세요. 하나의 표준 수집 경로를 사용하고, 재시도와 경로 변경을 제어한 다음, 소규모 코호트에서 재진입을 테스트하세요.

데이터베이스 볼륨이 가득 찬 후 Immich를 복구하는 방법
공간을 확보하기 위해 PostgreSQL WAL을 절대 삭제하지 마세요. Immich 쓰기를 중지하고, 데이터베이스 상태를 보존한 뒤, 안전하게 용량을 추가하고 PostgreSQL을 복구한 다음 재발을 방지하세요.

