#Network
2026-10-11
NAS Docker 기반 qBittorrent 무중단 다운로드 환경 구축 및 트러블슈팅
시놀로지 및 리눅스 Docker 환경에서 qBittorrent 권한 오류(Permission Denied) 해결과 다운로드 속도 최적화 가이드
NAS나 홈서버 환경에서 토렌트 클라이언트를 데스크톱 대신 24시간 가동할 때 가장 안정적인 도구는 Docker 기반의 qBittorrent입니다.
그러나 컨테이너 실행 직후 마운트 볼륨의 쓰기 권한 충돌(Permission Denied)이나 외부 포트포워딩 미설정으로 인한 시더 연결 지연 이슈가 흔히 발생합니다. 실전 배포를 위한 docker-compose.yml 템플릿과 주요 설정 체크리스트를 정리합니다.
1. 아키텍처 개요 및 포트 포워딩
토렌트 클라이언트는 P2P 네트워크 특성상 인바운드 연결 포트가 열려 있어야 고속 피어(Peer)들과 원활하게 세션을 맺을 수 있습니다.
💡 핵심 점검 포인트
공유기(라우터) 관리자 페이지에서6881/TCP,6881/UDP포트를 NAS의 내부 IP로 반드시 포트포워딩해야 합니다. 포트가 닫혀 있으면 다운로드 속도가 현저히 느려집니다.
2. Docker Compose 배포 템플릿
권한 오류를 사전에 방지하려면 NAS 호스트의 실제 사용자 UID/GID(id 명령어로 확인)를 PUID와 PGID 환경 변수로 명시해야 합니다.
version: "3.8"
services:
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Seoul
- WEBUI_PORT=8080
volumes:
- ./config:/config
- /volume1/downloads:/downloads
ports:
- 8080:8080
- 6881:6881
- 6881:6881/udp
restart: unless-stopped
배포 후 컨테이너를 구동합니다:
docker compose up -d
3. 자주 겪는 트러블슈팅
증상 1: 다운로드 시작 즉시 I/O Error: Permission Denied 발생
- 원인: 호스트 마운트 경로(
/volume1/downloads)의 쓰기 권한이 컨테이너 내부의PUID사용자와 일치하지 않는 경우입니다. - 해결법: 호스트 셸에서 해당 디렉토리의 소유권을 재할당합니다.
sudo chown -R 1000:1000 /volume1/downloads
sudo chmod -R 775 /volume1/downloads
증상 2: 다운로드 속도가 0 B/s에서 멈추는 현상
- 원인: 활성 피어(Peers) 수가 0으로 잡히거나 DHT 노드 검색이 차단된 상태입니다.
| 점검 항목 | 권장 설정값 | 비고 |
|---|---|---|
| 청취 포트(Listening Port) | 6881 |
라우터 포트포워딩과 일치 필수 |
| DHT / PeX 활성화 | Checked (ON) |
트래커 차단 시 피어 발굴용 |
| 익명 모드(Anonymous Mode) | OFF |
초기 세션 연결 안정화 목적 |
| 최대 연결 수 (전체) | 500 |
공유기 CPU 부하 방지 |
마무리 및 권장 사항
토렌트 파일을 내려받을 때 확장자가 .torrent가 아닌 실행 파일(.exe, .scr, .bat) 형태로 압축되어 있거나, 웹 UI에서 수상한 팝업을 띄우는 배너 링크는 반드시 격리하여 삭제하시기 바랍니다.