간단하게 기록할 겸 남겨 봅니다. transmission-openvpn은 docker화된 transmission에 openvpn을 붙여 놓은 것입니다. 토렌트를 할 때 VPN을 사용하고, NAS의 다른 부분은 VPN의 영향을 받지 않도록 함으로써 외부접속이나 DLNA/PNP 같은 거 사용에 문제가 없도록 한 것입니다. 설치에 대한 세부 내용은 아래 내용들을 참고하시면 됩니다.
주된 글 https://www.reddit.com/r/VPNTorrents/comments/900w78/xpost_rsynology_setting_up_the/
보조 글 https://www.fenslett.com/entry/Docker를-이용하여-Transmission-OpenVPN-설치-CentOS
보조 글 https://www.reddit.com/r/synology/comments/aqdsn2/haugene_transmissionvpn_with_expressvpn/egfjluu/?context=8&depth=9
위의 설치 방법에서 나오지 않는 것들입니다.
1. 컨터이너에 root 권한을 준다. 해당 컨테이너의 General Settings 에서 "Execute container using high privilege"를 선택합니다. 이것이 아니라면 transmission을 실행할 별도의 아이디/그룹을 만들고 해당 아이디/그룹의 uid/gid를 알아내서 파라메터로 넘기는 방법도 있습니다. 이 경우 토렌트가 저장될 폴더 등에 대해서도 아이디/그룹이 접근권한이 있어야 합니다. https://www.reddit.com/r/synology/comments/aqdsn2/haugene_transmissionvpn_with_expressvpn/egfjluu/?context=8&depth=9 에서 언급한 방법이 그것입니다.
2. ExpressVPN 에서 다운받은 ***.ovpn 을 약간 수정해서 올려줘야 합니다. https://www.fenslett.com/entry/Docker를-이용하여-Transmission-OpenVPN-설치-CentOS 에서 하듯이 ***.ovpn 파일을 26번째 줄에 /etc/auth.txt 로 수정하고, 해당 파일을 만들어서 링크해줬습니다. auth.txt 파일은 2줄짜리로 ExpressVPN에서 받은 ID 한줄, PW 한줄 이렇게 만들면 됩니다.
그리고 컨터이너 설정에서 보면 Volume 탭이 링크를 해 주는 곳입니다.
***.ovpn은 NAS에 넣어 두고 /etc/openvpn/custom/default.ovpn 으로 파일을 링크해주시면 되고,
auth.txt는 NAS에 만들어 두고 /etc/auth.txt 로 파일을 링크해 주시면 됩니다.
3. 환경변수 Environment 설정
OPENVPN_PROVIDER 는 CUSTOM으로, 그리고 다음 3개의 변수는 추가해줬습니다.
--device /dev/net/tun
--cap-add NET_ADMIN
LOCAL_NETWORK 192.168.xxx.0/24
여기서 LOCAL_NETWORK는 자신의 NAS가 있는 주소의 서브넷입니다. 간단하게 192.168.1.23이 NAS 내부망 주소라면 192.168.1.0/24 이렇게 적어주시면 됩니다.
/Vollago
해외 커뮤니티에서 찾아가며 해도 잘 되지않아서 포기했었는데 이런 방법이었군요 ㅠㅠ 넘나 감사드립니다.
세가지 문의 드려 봅니다.
1. 주된글에 있는 TUN.sh, resolv.conf 파일만들어서 올리기, 경로 마운트 2개는 하고나서
위 본문에 적어 놓으신 2번하는것이죠?
2. 환경탭에서 아래 두개는
--device /dev/net/tun
--cap-add NET_ADMIN
- -device 가 변수이고 값이 /dev/net/tun ?
--cap-add 가 변수이고 값이 NET_ADMIN ?
3. 주된글의 환경 변수 3가지는 어떻게 처리 하는건가요?
OPENVPN_CONFIG
OPENVPN_USERNAME
OPENVPN_PASSWORD
OPENVPN_PROVIDER 는 말씀하신 CUSTOM 이겠죠 ?
2. 예 맞습니다. --device, --cap-add 는 환경변수 variable 에 해당하고, /dev/net/tun, NET_ADMIN 은 값 value 에 해당합니다.
3. ExpressVPN은 haugene docker에서 공식 지원하지 않는 것이라서 우리가 *.ovpn 파일을 올려서 하니까 말씀 주신 세가지 환경 변수는 구동에 영향을 미치 않을 것 같아요. 현재도 잘 돌아가고 있는 제 docker를 봐도 OPENVPN_USERNAME, OPENVPN_PASSWORD은 그 값이 dummy 로 들어가 있고, OPENVPN_CONFIG은 변수 자체가 아예 없습니다. 설명을 보니까 VPN의 종단을 지정하는 변수라고 하는데, ExpressVPN 처럼 서버가 여러개면 이 중 서버를 지정하는 변수인 것 같습니다. 우리는 종단 서버에 따라 ovpn 파일이 달라지므로 상관 없을 것 같네요.
vpn을 결제하기 전에 trial로 해보고 있습니다. 해보다 또 궁굼한점ㅇ 하나가 생겼는데요,
haugene transmission-openvpn docker 자체가 transmission을 가지고 있는것은 아닌거죠?
haugene transmission-openvpn docker를 구동하면 9091포트를 쓰고 있는 transmission앱이 transmission-openvpn 을 통해서 data가 주고 받아지는것이죠?
haugene transmission-openvpn 환경변수보니 마치 자체적으로 구동되는 앱처럼 적는란이 많아 보여서요
실제로 토렌토 데이터를 주고받는 실체는 그 docker에 있는 transmission이고요, transmission앱이나 9091을 통해 쓰는 것은 프론트엔드, 즉 그냥 보여주고 docker상의 transmission을 컨트롤하는 것일 뿐입니다.
Docker안에는 OpenVPN, transmission, transmission webserver(9091포트를 통해 보여주는 페이지를 전송하는 역할) 이렇게 있다고 보심 됩니다.
한가지 문의드릴게 있는데 이렇게 트랜스미션을 사용하니 트래커를 어떻게 추가하는지 잘 모르겠습니다.
패키지를 사용할때는 하나씩이라도 트래커 등록이 가능했던거 같은데 이렇게 사용할때는 트래커를 바꾸는 부분이 없어 보입니다.
혹시 트래커를 여러개 추가하거나 한개씩이라도 추가(혹은 변경)할수 있는 방법이 있는지 문의드립니다.
1. 명령행(CLI)에서 추가하기. docker 로 진입하셔서 명령행에서 transmission --add 하면 된다고 합니다.
2. torrent 파일을 편집해서 트랙커 추가하기
3. tracker를 추가할 수 있는 WebUI 로 변경하기. Shift (https://forum.transmissionbt.com/viewtopic.php?t=12555) 와 같은 WebUI는 트랙커를 추가할 수 있는 인터페이스를 구현했다고 합니다.
근데 쓰고 보니 별로 도움이 되질 못할 것 같네요.
트래커 추가가 가능한 Web UI 적용 방법은 의외로, 쉽습니다.
환경변수 추가 해 주시면 되는데요.
변수명 : TRANSMISSION_WEB_UI
변수값 : transmission-web-control (이외에도 2~3개 더 있는 것 같습니다.)