2020. 12. 19. 23:26

Synology NAS에서 Torrent 사용하는 방법 총정리 (+Docker 활용)

NAS 사용자분들이 가장 흔하게 쓰시는 어플리케이션 중 하나가 BitTorrent, 보통은 토렌트라고 하는 파일 다운로드/공유 서비스일 텐데요.
Synology NAS에서 torrent client를 돌리는 방법은 대략 세 가지가 있는 것으로 보이는데, 제가 최근 들어 이 세 가지를 모두 경험해봤기에 정리 차원에서 한 번 글을 남겨봅니다.


그런데 요즘 같은 스마트 시대에는 BitTorrent client뿐 아니라 스마트폰에서 직접 torrent client를 원격 제어하고 모니터링할 수 있는 앱의 존재도 중요하죠. 스마트폰으로 웹서핑 하다가 토렌트 시드 파일이나 마그넷 주소를 클릭하면 자동으로 뿅하고 떠서 NAS에 다운로드 명령을 내려주고, 파일 전송 상황도 보기 편하게 정리해서 보여주는 앱이 참 편리합니다.

그런 이유로 torrent client와 그 컨트롤/모니터링 UI용 스마트폰 앱을 쌍으로 묶어 소개드리도록 하겠습니다.


그런데 애플 앱스토어에는 이런 UI 앱들이 없거나, 있었다가 내려간 것으로 알고 있습니다. 이렇게 원격 UI 앱이 없을 경우 스마트폰에서 NAS의 torrent client를 컨트롤하려면 NAS의 torrent 감시 폴더에 seed 파일을 올려서 다운로드를 시작하게 하고, 진행상황은 웹 브라우저로 NAS에 접속해서 모니터링하는 방법이 있기는 합니다. 좀 불편하지만요.

이런 감시 폴더 혹은 torrent 자동 추가 폴더 기능은 제가 소개 드릴 모든 torrent client에서 지원하고요. Seed 파일을 손수 올리시는 수고를 더는 방법으로는 Synology Drive를 이용해서 폰의 브라우저 다운로드 폴더를 NAS와 동기화시키고, NAS에서는 이 동기화된 폴더를 torrent 감시 폴더로 설정하는 방법도 있습니다.

1. Download Station / DS Get

Synology NAS에서 torrent를 쓰는 90%의 사용자가 사용하시는 프로그램이 바로 Download Station 아닐까 합니다. Synology 공식 다운로드 앱이고요. Synology NAS 패키지 프로그램들을 받을 수 있는 '패키지 센터'에 들어가시면 뭔가 다운로드하고 싶어지게 만드는 아래쪽 화살표 두 개짜리 아이콘이 있는데, 이걸 클릭하시면 설치되는데요.
Torrent 관련 기본적인 기능들은 다 되고, 성능도 꽤 잘 나오고 안정적입니다. 그래서 웬만한 분들은 얘 말고 딴 애들에 대한 필요성을 느끼지 못하실 겁니다.

 

스마트폰 원격 UI 앱으로는 역시 Synology 공식 앱인 DS Get이 있습니다. 토렌트 시드 파일이나 브라우저의 마그넷 링크로 다운로드를 시작하게 할 수 있고, 다운로드하는 파일들의 정보도 한 눈에 볼 수 있는 기본기에 충실합니다.
DS Get은 구글 플레이마켓에는 있습니다만, 앱스토어에서는 내려갔기 때문에 아이폰 사용자는 더이상 새로 설치하실 수 없습니다. 앱 없이 제가 위에서 설명한 감시 폴더와 웹브라우저를 이용한 원격 인터페이스를 쓸 수도 있고, DS Get의 대안으로 SynoDS라는 유료 앱이나 Download Station Mobile이라는 무료 앱도 있던데 쓸만한지 모르겠네요.


Download Station과 DS Get의 설치 및 사용법은 간단한 데다가 검색하시면 얼마든지 나오니 제가 굳이 자세히 설명하진 않겠습니다.

 

다른 torrent client 대비 Download Station의 특출난 장점이라면 torrent 검색 기능이 있습니다. 인터넷 검색으로는 백방으로 찾아봐도 도저히 구할 수 없어서 거의 포기했던 자료를 지푸라기라도 잡는 심정으로 Download Station에서 검색했더니 나왔던 경험이 한두 번 있었습니다. DLM 형식의 플러그인을 추가해주면 더 많은 서버의 자료를 검색할 수 있습니다. 인터넷에서 "Download Station DLM"으로 검색해서 DLM 파일 좀 추가 등록하면 torrent를 정말 잘 찾아줍니다.

그리고 크롬 웹 스토어에 보면 Synology Download Station이라는 확장 프로그램이 있어서 이걸 깔면 크롬에서 마그넷 주소 클릭했을 때 바로 다운로드 스테이션에서 다운로드시킬 수 있고, 크롬 주소창 우측에서 Download Station의 진행상황도 간략히 볼 수 있습니다. PC에서 크롬 브라우저 사용하시는 분들은 편리하게 이용하실 수 있습니다.

 
반면에 이 둘의 조합에 대해 개인적으로 답답한 불만 사항이 하나 있습니다.
DS Get의 모니터링 정보가 너무 빈약합니다. 남은 다운로드 시간처럼 꽤 중요하다고 생각되는 정보가 메인 화면에 표시되지 않습니다. 다른 건 그럭저럭 참을만 한데 다운로드 파일 네임 중간 부분이 안 보입니다. 보통 파일들 보면 파일이름 앞뒤에 뭔가 쓰잘데기 없는 정보들이 많이 붙어서 정작 중요한 내용은 한가운데 있을 경우가 많은데 DS Get은 아래 그림과 같은 식으로 파일명 중간부분을 '...'으로 생략하고 맙니다.

 

저 생략된 부분을 보려면 폰을 가로로 돌리고 생쑈를 하거나 그래도 원하는 부분이 안 보이면 파일을 지워버리겠다고 위협을 해야 오른쪽 그림처럼 풀 네임을 보여줍니다. 그러다가 손가락이라도 미끄러지면 며칠 걸려 90% 받던 도중의 파일을 그냥 날릴 수도 있는 거고요.

DS Get뿐만 아니라 Download Station 자체도 프로그레스 바, 시더/피어 수 같은 중요 정보가 메인 다운로드 모니터 화면에 일목요연하게 표시되지 않는 등, 보기 어렵게 디자인돼있는 편입니다.

 

어찌 보면 아주 사소한 단점이기는 한데, 아무튼 저는 이런 점이 답답하고 마음에 안 들어서 다른 BitTorrent Client를 깔아서 사용해왔습니다.

2. Transmission, Deluge, ruTorrent / Transmission Remote, Transdrone, nzb360

아마도 Download Station을 안 쓰시는 10%의 torrent 사용자 분들은 십중팔구 Transmission이나 Deluge를 쓰실 것 같습니다. 얘들은 Synology 공식 패키지 센터가 아닌 SynoCommunity 같은 서드파티 커뮤니티에서 받으실 수 있습니다. 

 

 

 

일단 다운로드를 받으시려면 패키지 센터 설정에서 패키지 소스로 http://package.synocommunity.com을 지정해주셔야 합니다. 그러면 패키지 센터에 커뮤니티 탭이 생기고, 아래처럼 Transmission이 보이죠.

 

 

 

SynoCommunity에는 Deluge와 ruTorrent도 있는데 제가 걔네들은 안 써봐서 Transmission 기준으로 설명드리겠습니다.
깔면 바로 쓸 수 있는 Download Station과는 달리 몇 가지 만져줘야 할 부분들이 있습니다. 일단 기억을 더듬어보자면 설치할 때 임시 다운로드 파일을 저장할 공유폴더를 물어봅니다. 저는 downloads라는 이름의 공유폴더를 새로 만들어서 거기로 지정해줬습니다. 그리고 NAS 계정의 ID/password와는 별도로 Transmission 용의 ID/password를 설정해줘야 합니다.


설치 후에는 폴더 권한 설정을 해줘야 하는데요. 위에서 만든 downloads 공유 폴더, 그리고 다운로드 파일을 최종적으로 저장하게 될 video 같은 기존 공유 폴더 몇 개에 대해 sc-download 그룹의 읽기/쓰기 권한을 활성화시켜 주셔야 합니다.

 

 

 

 

그리고 Transmission은 bit torrent의 기본 송수신 포트인 6881-6890을 쓰지 않고 51413을 씁니다. 유무선 인터넷 공유기에서 51413 포트를 TCP와 UDP 모두에 대해 NAS로 포트 포워딩 설정해주셔야 합니다. 그리고 외부에서 스마트폰 앱으로 컨트롤하기 위해서는 UI용 포트인 9091도 (TCP만) 추가로 포트 포워딩 설정해주셔야 합니다. 이렇게 하시고 나면 웹 브라우저에서 http://(NAS 주소):9091을 치면 Transmission에 접속할 수 있습니다.
Transmission은 Download Station과 비슷한 부분이 많습니다. Download Station이 Transmission을 기반으로 만들어졌다고 들었는데, 그래서 그런 것 같기도 합니다.

함께 쓸 수 있는 스마트폰 원격 UI 앱은 여러가지가 있는데요. Transmission 전용으로 Transmission Remote라는 앱도 있고요, 다양한 torrent client를 지원하는 앱들 중 구글 플레이스토어 다운로드 순위 및 리뷰 점수 상위권인 앱으로 Transdrone과 nzb360이라는 앱이 있습니다.
세팅 방식은 DS Get과 유사하긴 한데 몇 가지 다른 점도 있습니다. 일단 nzb360의 경우 torrent보다는 NZB쪽이 전문이다 보니 torrent 서비스를 사용한다는 것을 명시적으로 세팅해줘야 했습니다.

 

 

 

원격 control을 위해서 NAS 로그인 정보를 입력하는 설정 화면에서는 torrent client 프로그램 이름을 명시해줘야 되고, port 넘버도 넣어줘야 하는 점이 DS Get과는 다른 점입니다. Transdrone의 경우 Synology라는 옵션이 있던데 다운로드 스테이션도 지원해주나 시도해봤지만 안 되더군요. DS Get은 NAS 하나에만 접속할 수 있게 돼있는데, 이들 앱은 여러 대의 NAS도 설정할 수 있는 점도 다르고요.

 

그 외 특이한 옵션으로 집 Wi-Fi에 연결됐을 때는 자동으로 192.168.0.XX 같은 사설 IP로 접속해주는 것도 있습니다.

이들 앱의 메인 화면을 보시면 일단 각 다운로드의 예상 완료 시간, 피어 수 상황 같은 적절하게 중요한 정보들도 한 화면에 보여준다는 점이 너무나도 단출한 DS Get 화면과는 다릅니다. 아래 스크린샷 왼쪽이 Transdrone, 오른쪽이 nzb360입니다.
파일 이름 면에서는 Transdrone은 두 줄이 되든 세 줄이 되든 파일 이름을 생략하지 않고 보여주는 점이 좋고, nzb360은 파일 이름이 생략되기는 하지만 보여주는 글자 수가 많은 데다가 생략되는 부분이 파일 이름 중간이 아닌 끝부분이기 때문에 DS Get보다는 파일 구분하기가 훨씬 더 편합니다.

 

그런데 Transdrone은 왠지 UI가 좀 예쁘지 않고 어딘가 맹하고 허전한 감이 없지 않아 있고요.

nzb360은 UI 컬러가 제 맘에 쏙 들기는 하는데 마그넷 링크 다운로드 기능을 쓰려면 Pro 버전으로 업그레이드를 해야 합니다. 유료 Pro 버전이 한 2000원 하면 쾌척하려고 했는데 무려 9900원이나 합니다. 앱 이름에서도 알 수 있듯이 torrent보다는 NZB에 특화된 앱인데, 제가 쓰지도 않을 NZB 기능 때문에 만원이나 쓰기는 아깝더라고요.
그래서 저는 둘 다 깔아놓고 마그넷 링크 다운로드는 Transdrone에 묶어놓고, 모니터링은 nzb360 무료 버전으로 하고 있습니다.

하지만 아이폰 용으로는 Transmission Remote도, Transdrone도, nzb360도 없습니다. 앱스토어에서 NZB로 검색해보시면 앱이 많이 나오는데요. 그 중에서 bit torrent도 지원하는 앱을 아마도 찾으실 수 있을 겁니다. iOS 앱은 안 써봐서 어느 것이 좋은지 모르겠네요.

 

3. qBittorrent / Transdrone, nzb360

우선 말씀 드리자면 이 방법은 모델명 뒤에 +가 붙은 인텔 CPU 내장 Synology NAS에서만 적용할 수 있는 방법입니다. Plus 모델이 아니신 분은 굳이 읽으실 필요 없을 듯하네요.

그냥 Transmission에 만족하고 쓰고있던 중 2020년 12월 셋째주에 Synology DSM 7.0 베타 테스트 메일이 왔고, 저는 DSM 7.0에 추가된다는 Synology Photos라는 사진 관리 패키지에 혹해서 그만 베타 버전을 깔고 말았습니다. 그런데... Transmission을 포함해서 SynoCommunity에서 깔았던 많은 패키지들이 이딴 에러 메시지를 내면서 실행불가 상태가 돼버렸습니다.

 

그냥 몇 주 기다리면 SynoCommunity의 Transmission 패키지도 DSM 7.0을 지원하도록 업데이트되긴 하겠지요(생각해 보니 그렇게 되면 제가 위에 정리한 Transmission 설치법도 달라질 것 같습니다-_-). 그동안은 Download Station을 쓰면 되는 거고요. 그래도 뭔가 또다른 대안이 있을 것 같아서 검색을 해보니 Docker에다가 Transmission을 깔면 된다더라고요. 흠... 하지만 이왕 Docker를 써야 한다면 Transmission보다는 Docker에서만 쓸 수 있다는 qBittorrent에 한 번 도전해보자는 생각이 들었고요.

Docker라는 이름은 계속 들어왔지만 설명을 들어봐도 도통 어디에 어떻게 쓰는 놈인지 모르겠더라고요. 그래서 안 쓰고 있었는데, 이번 기회에 제대로 도전할 동기가 생긴 거죠.
DSM 도움말에 따르면, Docker란 격리된 소프트웨어 컨테이너 내에서 응용 프로그램을 빌드 및 실행하도록 하는 경량형 가상화 환경입니다. 흠... 전문용어를 더 많은 전문용어로 설명해봤자 아무런 이해가 안 되네요.

그래서 좀더 인터넷을 뒤져보고 공부해봤습니다. 그런데 파고들면 들수록 아무리 봐도 Docker란 것은 NAS에서 쓰라고 만든 게 아니라 대규모 데이터베이스 서버들을 계속 유지보수해가면서 쓰려는 용도로 만들어진 것 같더군요.


그런데 이걸 왜 NAS에서 써야 하느냐? 어디까지나 제 생각입니다만 원래 용도와는 관계 없이 단순히 NAS에서 Linux 프로그램을 돌리기 위해 Docker가 필요한 것이라는 결론을 내렸습니다.
Synology의 DSM OS는 Linux가 베이스이긴 하지만 NAS 관리에 특화되어 오랜 시간동안 별개로 진화해왔기 때문에 다른 메인스트림 Linux 배포판들과는 많이 달라졌습니다. 그래서 Linux 프로그램을 손쉽게 바로 빌드해서 사용할 수 없고, SynoCommunity 같은 곳에서 DSM 용으로 포팅한 패키지를 만들어주길 손가락 빨며 기다리고 있어야 했던 거죠.
그러다가 Synology에서 x86 CPU 탑재 모델에 한해 Docker를 쓸 수 있게 해준 것을 계기로, 이제 수많은 Linux 프로그램의 최신 버전을 NAS에서도 Docker 위에 올려서 돌릴 수 있게 된 겁니다.

그러니까 우리 같은 일반 NAS 사용자는 굳이 Docker의 심오한 원리와 전문적인 운용법까지 알 필요가 없습니다. 그냥 Docker에 프로그램을 깔아서 동작시킬 수 있는 수준 정도의 지식만 있으면 되는 거죠.

적어도 용어는 이해하고 넘어가야 할 것 같은데요. Docker에 보면 레지스트리니 이미지니 컨테이너니 볼륨이니 하는 생소한 용어들이 무지 많이 등장하는데요, 나름 저의 언어로 한 번 정리를 해봤습니다.
그 중 가장 중요한 건 '이미지' 같은데요. 이미지란 qBittorrent 실행 파일뿐만 아니라 그걸 실행하는 데 필요한 다른 프로그램들과 각종 환경들을 스냅샷 같은 걸 찍어서 저장해놓은 거라고 보면 될 듯합니다.
레지스트리란 다른 사람들이 이미 만들어놓은 수많은 이미지들을 모아놓은 저장소 같은 것이고요.
컨테이너란 Docker 상에 이미지를 실체화시켜 놓은 것이고, 얘가 바로 NAS 상에서 돌아가는 Linux 가상 머신입니다. 이미지가 붕어빵틀이라면 컨테이너는 붕어빵인 거죠. qBittorrent 이미지 붕어빵틀 하나로 qBittorrent 컨테이너 붕어빵을 여러 개 찍어내서 한 NAS 안에서 돌리는 것도 가능합니다. 그럴 필요성은 별로 없지만요.
볼륨은 NAS의 디스크 볼륨과 같은 단어를 사용해서 좀 헷갈리는 부분인데요. Docker는 일종의 가상 머신이기 때문에 실제 머신과의 접점이 필요합니다. Torrent를 열심히 다운로드 받았는데 그 파일이 가상머신 상에만 존재하다가 그 가상머신을 끌 때 사라져버린다면 아무 의미 없잖아요. 그래서 실제 머신의 특정 폴더를 가상머신에 마운트해서 거기다가 파일을 저장해야 하는데, 이런 폴더를 Docker에서는 볼륨이라고 부릅니다.
참 쉽죠? ㅎㅎ

 

 

잡설이 길었는데요. 이제부터 Docker에 qBittorrent 설치하는 방법을 차근차근 설명드리겠습니다.
가장 먼저 Docker부터 설치해야겠죠. 패키지 센터에 보면 네모난 컨테이너 여러 개를 지고 가는 고래 모양 아이콘의 Docker가 있는데 이걸 설치하세요.
Docker를 열어보면 일반적인 패키지와는 달리 이런 안내문인지 경고문이 뜹니다. 뭔가 범접할 수 없고 어려운 분위기를 내뿜죠.

 

 

 

Docker를 열면 지금은 아무 것도 없기 때문에 일단 qBittorrent의 이미지를 받아야 합니다. 다른 사람들이 만들어놓은 이미지는 어디에서 공유한다고 했죠? 바로 레지스트리입니다.

Docker 왼쪽 메뉴에서 레지스트리를 선택하고 검색 창에 qBittorrent를 입력해서 검색합니다. 그러면 qBittorrent 이미지만 해도 222 개나 있다는 것을 알 수 있습니다. 저는 그 중에서 가장 인기가 많은 linuxserver의 qBittorrent 이미지를 받았습니다. 다운로드 받을 때 태그를 물어보는데, 그냥 latest로 놔두시면 됩니다.

 

 

 

붕어빵틀 이미지 다운로드가 끝나고 나면 이번에는 붕어빵 컨테이너를 구울 차례입니다. Docker 왼쪽 메뉴에서 이미지를 선택하고, 오른쪽에서 linuxserver/qbittorrent를 선택한 후 '실행' 버튼을 누릅니다.
그러면 아래 그림과 같은 컨테이너 생성 마법사 창이 뜹니다. 컨테이너 이름은 그냥 qBittorrent로 하시면 됩니다. 붕어빵 여러 개 찍어내실 거 아니라면요.

 

 

 

Torrent는 특성 상 높은 권한이 필요한 어플리케이션은 아니고요. 리소스 제한도 일단은 하지 않고 진행하도록 해보시죠. 쓰시다가 나중에 torrent가 CPU와 RAM을 너무 많이 사용해서 다른 일을 못할 정도가 된다면 리소스 제한을 활성화하는 게 좋겠습니다. 여기서 '다음' 버튼을 누르고 싶으시겠지만 '고급 설정'에 설정해야 할 내용들이 한가득 있으니 먼저 고급 설정 버튼을 누르셔야 합니다.

 

 

 

'DSM 메인 메뉴 바로 가기 생성'을 해두면 DSM에서 qBittorrent Web UI 창을 바로 띄울 수 있으니 설정해주시면 좋습니다. http://(NAS 주소):8080이라고 해두시면 바로가기 클릭 시 qBittorrent 로그인 창이 뜨고요. Transmission Web UI가 9091 포트를 쓰듯이 qBittorrent Web UI는 8080 포트를 쓰기 때문에 맨 뒤에 붙여줍니다.

 

 

 

볼륨은 Docker container라는 가상 머신이 실제 NAS와 데이터를 주고 받기 위해 설정하는 건데요. qBittorrent 설정을 저장하기 위한 /config 폴더와 다운로드 결과를 저장하기 위한 /downloads의 두 폴더가 필요합니다.

폴더 추가 버튼을 누르셔서 위 그림의 예와 비슷한 폴더를 만들고 설정하시면 됩니다. 왼쪽의 실제 폴더 이름과 경로는 꼭 저처럼 하실 필요 없고 원하시는 아무 폴더나 지정하셔도 됩니다.

 

그 다음은 포트 설정인데요. NAS를 인터넷에 연결시켜주기 위해 유무선 공유기가 포트 포워딩을 해주듯, Docker 컨테이너가 네트워크에 연결되도록 하기 위해 NAS가 포트 포워딩을 해주는 거라고 생각하시면 됩니다.

 

 

 

로컬 포트(NAS의 포트 넘버)는 절대로 기본 세팅 대로 '자동'으로 놔두시면 안 되고요. 가급적 같은 포트로 연결해주시는 게 좋습니다. 컨테이너 포트 6881은 처음에는 로컬 포트 6881로 연결했었는데 이 포트는 다운로드 스테이션과 충돌 난다고 해서 저는 6890으로 바꿨습니다.

 

 

 

그리고 마지막으로 중요한 설정이 바로 환경 변수 설정입니다. 그 중 가장 중요한 것이 이 컨테이너를 돌리는 사용자가 누구인지 설정하는 겁니다. 변수 '추가' 버튼을 누른 후에 /config와 /downloads에 연결된 폴더들을 읽고쓸 권한이 있는 사용자의 PUID와 PGID를 기입해줘야 합니다. 이걸 세팅 안 하시면 qBittorrent 설정도 저장이 안 되고, 다운로드 파일도 세이브가 안 됩니다.
그런데 이게 NAS 계정의 username이 아니고 숫자를 넣어줘야 하더라고요. 만약 admin ID를 막지 않고 살려두셨다면 admin에 해당하는 PUID와 PGID인 1024, 101를 각각 넣어주시면 됩니다. 만약 해킹 방지를 위해 NAS에서 admin 계정을 비활성화해두셨다면 NAS에 SSH로 접속해서 administrators 그룹 권한을 가진 유저(이 글을 읽고 계신 분이겠죠)의 UID와 GID 숫자를 알아내셔야 합니다.

 

 

 

산 너머 산이라고 SSH는 또 뭐냐고요? 이건 ☞제 다른 글☜을 참고하시면 되겠습니다. 아무튼 NAS에 SSH로 접속하시고 나면 해야 할 일은 간단합니다. SSH 커맨드 프롬프트에


id (내 username)

 

라고 치시면 됩니다. 여기서 첫번째 나온 uid 숫자(제 경우 1026)를 PUID에 넣어주시고, PGID에는 101(administrators)을 넣어주시면 됩니다. 그리고 그 아래에 보면 LANGUAGE, LANG 설정이 있는데, 이걸 ko_KR.UTF-8로 바꿔주시면 Web UI 언어가 한글로 바뀝니다.
그리고 이제 적용 버튼 누르시고, 다음 버튼을 누르시면 다음과 같은 최종 요약 확인 창이 뜹니다.

 

 

 

세팅 입력을 제대로 했는지 다시 한 번 훑어보시고 완료 버튼을 누르시면 qBittorrent 컨테이너가 만들어지고 바로 실행됩니다.
Docker에서 '컨테이너' 메뉴에 들어가 보시면 이렇게 qBittorrent가 돌아가는 걸 보실 수 있습니다. 마치 패키지 센터에서 패키지 실행을 켜고 끄듯이 맨 오른쪽 버튼을 누르시면 컨테이너 실행을 켜고 끌 수 있습니다. 한동안 torrent 쓸 일 없을 때는 qBittorrent도 끄고 Docker 자체를 꺼둬도 됩니다.

 

 

 

이제 브라우저에서 새 창을 여시고 주소창에 (NAS의 내부 IP 주소):8080을 치시면 이렇게 qBittorrent의 한글 Web UI가 뜹니다.

 

 

 

초기 ID는 admin, password는 adminadmin입니다. 이런 알려진 값이기 때문에 외부로부터의 침입을 막기 위해 내부 IP주소로 접속하라고 말씀 드렸던 것이고, ID/패스워드를 바꾸시기 전까지는 공유기에서 8080 포트를 외부로 포워딩하지 않는 편이 안전합니다.
ID 패스워드 변경은 Web UI의 옵션 설정 메뉴에서 가능합니다. 메인 메뉴의 도구 > 옵션으로 들어가셔도 되고 그보다 오른쪽에 있는 톱니바퀴 모양 아이콘을 클릭하셔도 됩니다. 여러 개의 탭이 있는데 그 중 '웹 UI' 탭에서 암호 변경이 가능합니다. 이 탭의 아래쪽에 보시면 '교차-사이트 요청 위조 (CSRF) 보호 사용'이라는 옵션이 있는데 이걸 꺼야 DSM에서 qBittorrent Web UI를 띄울 수 있더라고요.

 

 

 

이 정도만 세팅해주면 이제부터 qBittorrent를 사용하실 수 있습니다.

그런데 최적화된 사용을 위해 좀더 조정을 해주는 것도 좋은데요. 다운로드 스테이션이나 Transmission과 비교해봤을 때 qBittorrent는 너무 후하게 퍼주는 경향이 있습니다. 다운로드 스테이션처럼 짜게 업로드하는 것이 보편적인 건지 qBittorrent처럼 후하게 올려주는 것이 정상적인 건지 잘 모르겠습니다만, qBittorrent는 정말 이렇게 열심히 업로드하면 다운로드가 방해받지 않을까 싶을 정도로 심하게, 다운로드보다 더 빨리 10 MB/s 이상의 속도로 업로드를 하더라고요.

아무튼 저희가 torrent 쓰는 목적이 업로드보다는 다운로드잖아요? 그런 의미에서 업로드 제한을 걸어두는 것이 좋겠습니다. 먼저 옵션 창에서 '속도' 탭을 엽니다.

 

 

 

전역 속도 제한의 '올리기'를 대략 1000 KB/s 전후로 제한하면 됩니다. 좀더 인색하게 100 KB/s 이하로 줘도 괜찮을 것 같기도 하고요, 기가빗 인터넷 사용 중이시면 좀더 후하게 5000 정도로 줘도 괜찮을 것 같긴 합니다. 그리고 (특히 올리기 속도 제한을 100 KB/s 이하로 하셨을 경우에는) 맨 아래 '속도 제한 설정' 칸의 선택을 모두 해제해놓는 것이 다운로드 속도에 좋다고 하더군요.

 

 

 

그리고 마지막으로 '비트 토런트' 탭인데요. 여기서 토런트 대기열과 배포 제한을 설정합니다.

가용성이 매우 낮은 오래된 토렌트를 한꺼번에 몇십 개 걸어놓아야 할 경우가 가끔 있는데요, 이럴 때 토런트 대기열이 문제가 될 수 있습니다. 다운로드 스테이션 같은 경우 동시에 받는 파일 수가 10개로 제한되어 있는데요 (옵션에서 바꿀 수는 있습니다), 10번째를 넘어가는 파일들은 다운로드를 아예 시작조차 하지 않는 대기상태에 남아 있습니다. 재수 없이 처음 다운로드 받기 시작한 파일 10개의 torrent 상태가 거의 죽어있는 경우라면 아무리 그 이후 파일들이 쌩쌩해도 그냥 그 상태로 꼼짝 없이 멈춰 버립니다. 가망 없는 애들을 일일이 수동으로 일시중지시키면 그제서야 다음 파일이 시작되긴 하는데요, 아무튼 불편합니다.

qBittorrent에는 그런 상태가 원천적으로 발생하지 않도록 하는 '이 제한에 느린 토런트는 계산하지 않음'이라는 옵션이 있습니다. 속도가 안 나오는 느린 torrent는 10개가 됐든 100개가 됐든 열외로 놓고 대기열 갯수로 안 쳐주기 때문에 그 다음 차례 쌩쌩한 파일에게 기회가 올 수 있는 겁니다. 저는 그래서 이 옵션을 켰고요. '최대 받기'와 '최대 활성 토런트' 갯수도 기본 설정 대비 키워줬습니다.

 

그리고 다운로드 스테이션 써보신 분은 아시겠지만 되게 얌체 같이 내 다운로드 끝나고 나면 업로드를 바로 딱 끊어버립니다. 내 볼 일 끝나면 끊어주는 게 합리적이긴 한 것 같아서 '배포 제한'을 걸어두긴 하려고 합니다만... 내가 받았다고 바로 입 싹 닦는 건 좀 심한 것 같아서 1시간 후에 끊는 걸로 해줬습니다.


이제 진짜 최종단계로 유무선 공유기에서 6890 (TCP + UDP)과 8080 (TCP) port를 NAS로 포워딩해주셔야 합니다. 그래야 qBittorrent 컨테이너의 포트가 인터넷으로 연결될 테니까요. 이제부터는 (DDNS 주소):8080로도 qBittorrent Web UI에 접속이 될 겁니다. 또, DSM의 시작 버튼을 눌러보시면 Docker와 동일한 고래 모양으로 qBittorrent 아이콘이 만들어진 것도 보이실 겁니다. 이걸 누르셔도 새 브라우저 창으로 qBittorrent Web UI가 뜹니다.

 

 

 

qBittorrent를 써보니, 다 좋은데 한 가지 Download Station과는 달리 다운로드 받을 폴더를 지정해줄 수 없다는 점이 아쉽네요. 다운로드 완료 후 파일을 직접 옮겨줘야 하는 귀찮음이 존재합니다. 사실 이건 qBittorrent의 문제가 아니고 Docker 상에 설치하는 모든 torrent client들의 공통된 단점일 듯합니다.

한 가지 팁을 드리자면 다운로드 폴더 downloads/를 파일이 최종적으로 옮겨져야 할 공유 폴더와 동일한 volume 안에 두시면 좋습니다. 그러면 파일을 옮길 때 실제 데이터를 옮기는 것이 아니라 파일의 위치 정보만 바꿔써주기 때문에 파일 이동에 걸리는 시간을 대폭 절약할 수 있거든요.

 

스마트폰 원격 UI 앱은 구글 플레이스토어에 qBittorrent Controller라는 전용 앱이 있습니다.

메인화면에 뭔가 깨알같이 많은 정보들이 보이고, 파일명을 생략하지 않고 다 보여주는 것은 좋습니다. 그런데 너무 많은 정보를 보여주려다 보니 오히려 원하는 정보가 눈에 잘 안 들어오는 단점도 있습니다. 그리고 다운로드 진행률을 시각적으로 표시해주는 프로그레스 바가 없어서 직관적으로 알아보기 불편하기도 하고요. 게다가 무료버전은 화면 아래쪽에 광고도 나오네요.

 

다운로드를 시작할 때 저장 폴더를 물어보는데요. 어차피 Docker에서는 폴더를 자유자재로 지정할 수 없어서 이 화면을 좀 안 보고 싶은데, 아무리 '이 대화상자 다시 표시하지 않기'를 선택해도 가볍게 씹고 이 화면을 끈질기게 보여줍니다. 앱이 약간 기본이 엉성하다는 느낌을 줍니다.

 

그냥 전용 앱 말고 위의 2번 항목에서 소개 드린 Transdrone이나 nzb360을 쓰시면 편합니다. 얘들도 qBittorrent를 지원하거든요.

 

 

 

그런데 Transdrone은 qBittorrent 접속 시에 간간히 이딴 메시지가 나오는 현상이 있습니다. 아무래도 이름처럼 Transmission에 최적화된 앱이라 그런지 qBittorrent와는 잘 안 맞는 부분이 있는 것 같네요. 이 현상은 qBittorrent 옵션의 웹 UI 탭에서 '클릭 가로채기 방지 사용', '호스트 헤더 유효성 검사 사용' 체크박스를 해제하면 빈도가 크게 줄어듭니다(아주 사라지지는 않는 것 같네요-_-).


애플 앱스토어의 경우 qBittorrent Controller, Transdrone, nzb360은 없고요. NZB로 검색해보시면 나오는 앱들 중에 qBittorrent의 원격 UI를 지원하는 앱도 있을 것 같습니다. 제가 해보지는 않았습니다.

 


 

이상, Synology NAS에서 BitTorrent client를 사용하는 방법 세 가지를 정리해봤습니다.


제 생각에는, plus 모델 NAS를 사용 중이시고 Linux에 대한 이해도가 어느 정도 되신다면 qBittorrent든 Transmission이든 Docker 상에 설치하는 세번째 방법이 가장 효율적이면서 안정적일 것 같습니다. DSM이 베타가 되든 뭐가 되든 Docker 이미지는 그 환경 그대로 꿋꿋이 안정적으로 유지될 테니까요. 다운로드 현황을 일목요연하게 잘 표시해주는 모바일 앱 지원은 덤이고요.
세팅 같은 거 신경 쓸 필요 없이 torrent client가 알아서 잘 동작하기만 하면 된다고 생각하시면 첫번째 다운로드 스테이션 추천 드립니다. Torrent 검색이 필요할 때 쏠쏠하게 도움이 되기도 합니다.
다운로드 스테이션에는 뭔가 부족함을 느끼지만 Docker를 지원하지 않는 NAS를 소유하신 분들께는 두번째 옵션의 Transmission이나 Deluge가 좋겠지요.

 

그런데 솔직히 세 방법 모두 기능과 성능은 대동소이합니다. 이미 잘 동작하는 torrent client가 셋업되어 있는 상황에서 굳이 추가로 에너지를 들여서 다른 것으로 바꿔야 할 만큼의 이득은 없는 것 같습니다. 그래서 다들 설치하기 편한 Download Station을 쓰시는 거겠죠. 호기심 많은 분들이나 Docker 같은 걸 건드려보는 거고요.

Trackback 0 Comment 2
  1. ohaccp 2021.05.10 22:53 address edit & del reply

    8080포트를 nginx로 사용하면 어떻게 해야되나요?

    • Favicon of https://velvio.tistory.com Velvio 2021.05.10 23:39 신고 address edit & del

      qBitTorrent를 Docker에 설치하고 싶지만 nginx에서 이미 8080 포트를 쓰고 있는데 어떻게 해야 하냐는 질문이신 거죠?
      제 본문에 보면 6881 포트가 쫑나기 때문에 컨테이너 포트 6881을 로컬 포트 6890으로 연결했다고 했잖아요? 그것과 동일하게 하시면 됩니다.
      컨테이너 포트 8080을 로컬 포트로 예를 들어 8081이나 아무 다른 포트로 연결하시고, 포트포워딩도 하신 후에, NAS에 접속할 때 포트 넘버를 8081로 지정하시면 qBitTorrent Web UI에 연결됩니다.