+ 23.12.25 추가
DSM이 7.2로 업데이트 되고 도커가 컨테이너 매니저로 변경되었습니다. DSM 컨테이너 매니저 내에서 docker-compose 파일 실행이 가능해지는 등... 여러 환경이 바뀌었습니다. 이에 더해 포스팅한지 시간도 꽤 지난터라 아래 방식을 따라하셔도 정상적으로 실행될 거라는 보장을 못하겠습니다. 지금 환경에 맞게 수정을 해야겠다 싶은데 도통 시간이 안 나네요. 현재 제 시놀로지에 gluetun + qBittorrent 조합도 설정해놓은 상태라 그것도 소개해드리고 싶은데 가능하면 꼭 포스팅하겠습니다. (트랜스미션보다 큐빗토렌트가 더 무겁기는 합니다.)
+ 24.07.19 추가
gluetun + deluge 조합으로 VPN을 사용해 토렌트 웹서버를 구동하는 가이드를 새로 작성했습니다. 링크(클릭) 이 방법을 추천해드립니다.
나스에서 도커를 활용해 transmission-openvpn를 쓰고 있습니다. 해당 도커 이미지를 마음먹고 설치하려고 해도 글이 과거 기준으로 쓰여 있어서 따라하기 힘든 경우가 많습니다. 환경변수 값이 다르다든지 설정창 인터페이스가 다르다든지 하는 이유 때문입니다. 이참에 이미지를 포스팅 날짜 기준 최신 버전으로 설치하는 방법을 정리하려고 합니다. DSM과 도커 버전 모두 최신 버전입니다. 길고 지루한 과정입니다. 약간의 시간을 소비할 각오를 하고 시작하기를 권해드립니다.
준비물
1. 시놀로지 NAS
2. 도커 (패키지 센터에서 설치)
3. EXPRESSVPN 계정 (혹은 타 업체 VPN 계정)
따라하기
1. OVPN 프로파일, USERNAME, PASSWORD 구하기
저는 EXPRESSVPN을 사용하고 있어서 해당 VPN 업체의 OVPN 프로파일을 사용해 설치할 겁니다. 유명한 VPN 업체라면 대부분 OVPN 프로파일을 제공합니다. 다른 업체의 프로파일을 사용하려는 경우 구글링을 통해 해당 프로파일을 다운로드하는 방법을 직접 알아보셔야 합니다. 다른 VPN 업체를 사용하더라도 특정 부분만 커스텀해주시면 이 글을 따라 설정하는 게 어렵지는 않을 겁니다. 일단 EXPRESSVPN의 OVPN 프로파일을 구해보겠습니다.
EXPRESSVPN 사이트(https://www.expressvpn.com/kr/sign-in)에 접속해 로그인합시다.
로그인하면 대시보드 페이지가 나옵니다. '다른 기기에 설치'를 클릭합니다.
누르면 여러 가지 기기들의 설치 방법이 나옵니다. 우측 하단 '수동 구성'을 클릭합니다.
오른쪽 레이아웃 부분이 OVPN 구성 화면으로 바뀌면서 사용자명과 비밀번호가 나옵니다. 설치할 때 필요한 정보입니다. 메모장을 켜서 사용자명과 비밀번호를 기록해 둡시다.
사용할 VPN 서버를 선택해 줍시다. 서버를 클릭하면. OPVN 확장자를 가진 파일이 컴퓨터에 다운로드됩니다.
해당 파일의 이름을 default로 바꿔줍니다. default.ovpn파일을 시놀로지 NAS 안의 docker/openvpn/config 폴더 안에 넣습니다. 폴더를 직접 만드셔야 합니다.
2. VPN SERVER 설치
시놀로지 패키지 센터에서 VPN SERVER를 검색해 설치해 줍니다. 설치가 끝나면 실행시켜서 OpenVPN 탭으로 이동합니다. 서버 활성화에 체크해주시고 적용을 눌러주시면 됩니다.
3. UID, GID 값 구하기
시놀로지 도커에 SSH 접속을 할 차례입니다. 제어판으로 이동해 SSH 서비스를 활성화하고 적용해 줍니다. 포트는 충돌하지 않는 임의값을 사용하면 됩니다. SSH 접속이 끝나면 활성화를 해제하고 포트를 닫아주셔야 합니다. SSH 포트를 항시 켜놓는 것은 보안상 위험합니다.
SSH 접속을 하는 방법은 다양합니다. 여러 가지 방법이 있으니 구글 검색을 하셔서 원하는 방법을 쓰시면 됩니다. 여기서는 윈도에 OpenSSH를 설치하고 PowerShell을 통해 접속하겠습니다. 윈도에서 시작버튼을 누르고 '앱 및 기능'을 검색해 이동합니다. '선택적 기능'을 누릅니다.
'기능 추가'를 누르고 'OpenSSH'를 검색합니다. 'OpenSSH 클라이언트'를 설치합니다. 기능을 사용하기 위해 필요에 따라 재부팅이 필요할 수도 있습니다. 저는 재부팅 없이도 실행이 가능했습니다.
시작버튼을 누르고 PowerShell을 검색해 실행해 줍니다. CMD를 써도 SSH가 작동할 겁니다.
ssh DSM계정:NAS IP -p ssh 포트 번호
실행하면 명령어를 입력할 수 있습니다. 위와 같은 명령어를 입력해 나스에 ssh 접속을 합니다. 'ssh admin@192.168.1.0 -p 60598'처럼 입력하면 됩니다.
접속이 되면 다음과 같은 질문을 합니다.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
yes를 입력해 넘어가줍니다. 비밀번호를 물어봅니다. 비밀번호까지 입력해 줍니다.
Synology strongly advises you not to run commands as the root user, who has
the highest privileges on the system. Doing so may cause major damages
to the system. Please note that if you choose to proceed, all consequences are
at your own risk.
DSM ID@NAS:/$
접속이 완료됐습니다. sudo -i를 입력합니다. 다시 비밀번호를 입력합니다. 이 상태에서 'id DSM 아이디'를 입력합니다. DSM 아이디가 admin이라면 'id admin'을 입력하는 식입니다.
DSM ID@NAS:~# id DSM ID
uid=1000(DSM ID) gid=100(users) groups=100(users)
DSM ID@NAS:~#
화면에 뜬 UID와 GID 숫자를 따로 기록해 둡니다. SSH 연결은 이제 끊어도 좋습니다. 시놀로지 제어판으로 돌아가서 SSH 활성화를 해제합니다. 제어판을 닫지 말고 네트워크 탭으로 이동합니다.
4. 서브넷 구하기
DHCP 밑에 나스 내부 IP 주소와 서브넷 마스크 주소(대부분 255.255.255.0)가 나옵니다. 기록해두고 https://www.subnet-calculator.com/ 사이트로 이동합니다.
IP Address 항목에 기록한 나스 내부 IP주소를 적습니다. 서브넷 마스크도 255.255.255.0로 선택해 줍니다. Mask Bits에 24가 나옵니다. 아래쪽을 보니 Subnet ID는 192.168.0.0입니다. 'Subnet ID/Mask Bits'가 서브넷입니다. 이 값을 기록해 둡니다. 사진에서 서브넷은 '192.168.0.0/24'입니다. 사람마다 네트워크 환경이 달라서 값이 조금씩 다를 겁니다. 잘 확인하셔야 합니다.
5. 도커에서 이미지 설치
이제 도커를 실행합니다. 'haugene/transmission-openvpn'를 우측 상단 검색창에서 검색해 latest버전을 다운로드하여 줍니다.
이미지 다운로드가 완료되면 해당 이미지를 실행합니다.
그대로 진행합니다.
'높은 권한을 사용하여 컨테이너 실행'과 '자동 재시작 활성화'를 체크해 줍니다. '리소스 제한 활성화'는 임의값을 예시로 보여드린 것입니다. 해당 옵션은 체크하셔도 되고 안 하셔도 됩니다. 리소스 제한 활성화는 나중에 변경할 수 있는 옵션이기에 일단 체크를 해제해서 컨테이너를 실행해보고 램을 많이 먹는다 싶으면 그때 리소스 제한을 걸어둘 수 있습니다. 해당 방법을 추천드립니다.
끝났으면 고급 설정을 눌러줍니다.
환경변수를 입력할 차례입니다. 수정하거나 입력해야만 하는 환경변수만 적어둡니다. 여기에 쓰지 않은 환경변수는 건드리지 않아도 됩니다.
변수 | 값 |
OPENVPN_USERNAME | OVPN 사용자명 (앞서 기록해둔 것) |
OPENVPN_PASSWORD | OVPN 비밀번호 (앞서 기록해둔 것) |
OPENVPN_PROVIDER | CUSTOM |
OPENVPN_OPTS | --inactive 3600 --ping 10 --ping-exit 60 |
TRANSMISSION_RPC_USERNAME | 트랜스미션에서 쓸 아이디 |
TRANSMISSION_RPC_PASSWORD | 트랜스미션에서 쓸 비밀번호 |
UFW_EXTRA_PORTS | (공백) |
PUID | 앞서 구했던 UID 값 |
PGID | 앞서 구했던 GID 값 |
DROP_DEFAULT_ROUTE | false |
WEBPROXY_USERNAME | (공백) |
WEBPROXY_PASSWORD | (공백) |
(공백)은 스페이스바를 한 번 눌러서 만들어주면 됩니다. 아무것도 적지 않으면 칸이 붉은색으로 바뀌며 진행이 안 될 겁니다.
아래는 추가 버튼을 눌러서 새로 만드셔야 하는 환경변수입니다.
LOCAL_NETWORK | 앞서 구했던 서브넷 |
CAP_ADD | NET_ADMIN |
DEVICE | /dev/net/tun |
TRANSMISSION_RPC_AUTHENTICATION_REQUIRED | true |
이제 환경변수 설정이 끝났습니다. 저장을 눌러주고 다음으로 이동합니다.
(기존 과거 가이드나 깃허브 페이지를 보면 OPENVPN_CONFIG 값을 넣도록 되어있는데 입력하지 않아도 작동합니다. 입력이 강제되지 않는 환경변수인지 모르겠습니다. 혹시 몰라서 적어둡니다.)
로컬 포트 | 컨테이너 포트 |
8118 | 8118 |
9091 | 9091 |
포트를 설정합니다. 로컬 포트와 컨테이너 포트가 일치하도록 쓰시는 걸 추천드립니다. 충돌한다면 바꿔야 합니다. 웹프록시 설정을 사용하지 않기 때문에 8118 포트는 매핑하지 않아도 되지만 혹시 모르니 설정해 줍니다.
파일/폴더 | 마운트 경로 |
/docker/transmission/download | /data/completed |
/docker/transmission/temp | /data/watch |
/docker/transmission/temp | /data/incomplete |
/docker/openvpn/config | /etc/openvpn/custom |
이제 컨테이너 볼륨을 도커 공유 폴더에 매핑합니다. 폴더 추가를 눌러서 앞서 생성했던 나스 내부의 폴더(/docker/openvpn/config)를 선택하고 새로운 폴더도 생성해 줍니다. 그러고 나서 표에 있는 마운트 경로를 입력해 줍니다.
이제 트랜스미션을 사용하면 다운로드가 진행 중인 파일은 /docker/transmission/temp에, 다운로드가 완료된 파일은 /docker/transmission/download 폴더에 저장됩니다.
(기존 가이드를 보면 /docker/openvpn/script 폴더를 만들어서 컨테이너의 /data 폴더와 매핑합니다. /data 내부 폴더들을 이미 매핑했는데 왜 그럴까요? 분명 이유가 있을 것 같은데 잘 모르겠습니다. 안 적어도 잘 작동합니다.)
이제 완료를 눌러줍니다. 컨테이너가 실행되자마자 꺼지지 않는지 확인합니다. 만약 바로 꺼진다면 뭔가 꼬인 것입니다. 컨테이너 작동이 유지되고 있다면 브라우저 주소창에 '나스 내부 IP 주소:9091'로 접속합니다. 로그인 창이 떴다면 성공입니다. 환경변수에 적었던 트랜스미션 아이디와 비밀번호를 눌러 로그인해 줍니다. 공유기에서 9091 포트를 포트포워딩하면 '사용 중인 도메인 주소:9091'를 통해 외부접속이 가능합니다.
6. VPN 적용 확인
로그인도 됐고 인터페이스도 정상적으로 표시됩니다. 그런데 다운로드를 하기 전 정상적으로 VPN이 적용되고 있는 것인지 확인해 봐야겠죠. https://ipleak.net/이라는 사이트로 이동합니다.
페이지에 접속해 스크롤을 내리면 Torrent Address detection이라는 칸이 있습니다. Activate를 누르고 나오는 this Magnet Link를 오른쪽 클릭한 후 링크 주소를 복사해 줍니다. 이때 ipleak 사이트 창은 계속 켜둬야 합니다.
다시 트랜스미션 웹페이지로 돌아와서 좌측 상단 폴더 아이콘을 클릭합니다. 해당 버튼이 토렌트나 마그넷 주소를 업로드하는 버튼입니다. 'Or enter a URL:' 란에 복사했던 마그넷 링크를 붙여 넣기하고 Upload 버튼을 눌러 다운로드를 시작합니다.
다시 ipleak 사이트로 돌아와 보면 Torrent Address detection칸에 검은색 배경에 초록색 글씨로 IP가 나옵니다. 해당 IP가 사용 중인 통신사 IP가 아니라 OVPN 프로파일에서 다운로드하였던 국가의 IP로 나오면 정상적으로 VPN이 적용된 것입니다.
이 글에 적힌 대로 따라 했는데 작동이 안 될 수 있습니다. 복잡한 과정이다 보니 군데군데서 실수를 할 가능성이 높기 때문입니다. 막힐 때는 잘못 입력한 게 없는지 살펴보거나 구글에 검색해 해결방법을 찾아봅시다.
참고 사이트
https://www.clien.net/service/board/cm_nas/14673567
VPNunlimited를 이용한 synology docker의 haugene transmission-openvpn 설정법 : 클리앙
안녕하세요. 트랜스미션을 이용하고 싶은데 IP 노출이 찜찜하던 차에 예전에 가입해 둔 VPN Unlimited를 이용하면 어떨까하고 구글링해보니 사례가 별로 없더군요. 사용자 층이 없어서 그런가, VPN Un
www.clien.net
http://haugene.github.io/docker-transmission-openvpn/
docker-transmission-openvpn
haugene.github.io
웹서버 HTTPS로 접속하기
시놀로지 나스 도커 transmission-ovpn 웹서버 https 접속하기
나스에 transmission-ovpn을 설치한 뒤에 도메인:9091 주소로 접속하면 웹서버 접속이 http 연결로 이루어집니다. https 연결이 아니기 때문에 클라이언트와 웹서버 간 통신 내용을 누군가가 엿볼 수 있
thorp.tistory.com
'NAS' 카테고리의 다른 글
시놀로지 나스 SSH 접속 방법 (0) | 2024.07.19 |
---|---|
시놀로지 NAS 자체 라이브 스트리밍 서버 구축 (0) | 2023.12.16 |
시놀로지 역방향 프록시 HSTS 오작동 해결 (0) | 2023.01.06 |
시놀로지 나스 도커 transmission-ovpn 웹서버 https 접속하기 (0) | 2022.12.24 |
시놀로지 나스 도커 transmission-openvpn 'initial DNS resolution test failed' 오류 (0) | 2022.12.24 |