2022/09/08

, ,

오라클 VPS + Alist, 개인 클라우드 집합소

오라클 VPS + Alist, 개인 클라우드 집합소

nPlayer로 PikPak을 사용할 수 없을까?

PikPak 카카오 공식 오픈 채팅방에서 어느 분이 안드로이드 스마트폰 네트워크 동영상 재생 앱인 nPlayer로 PikPak을 사용할 수 없겠느냐는 종류의 질문을 올렸는데, 일단 Alist는 리눅스 앱을 제공하므로 Termux 앱에 sudo를 설치해서 사용할 수 있겠다는 생각이 들었다. 하지만, 루팅이 필요하고, Termux 앱에 sudo를 설치하는 과정이 생각보다 까다롭다. 또한, 이 방법은 스마트폰에 있어서는 다소 치명적이라 할 수 있는 배터리 소모와 데이터 사용량이 증가한다는 단점도 있다.

그래서 생각해 낸 것이 오라클 클라우드 프리티어(free tier)라는 무료 클라우드, 즉 흔히 말하는 오라클 VPS에 Alist를 구동시키는 것이었고, 테스트해보니 아주 잘 되었다.

Alist는 구글 드라이브, 원드라이브, 바이두 넷디스크, Teambition, PikPak 등 꽤 많은 클라우드를 지원하므로 [오라클 VPS + Alist] 조합은 개인 클라우드 집합소가 될 수 있다. 즉, [오라클 VPS + Alist] 조합으로 (사용 중인) 개인 클라우드를 한 곳에서, 그리고 언제 어디서나 어느 기기로 집약적으로 관리할 수 있다는 말이다.

하지만, 이 방법은 초보자에겐 (특히 윈도우 사용자에겐) 만만치 않고, 그것은 나에게도 마찬가지이므로 이 한 자리에서 모든 것을 설명하는 것은 벅찬 일이다. 그래서 대부분의 설명을 링크로 대체하는 것을 이해해 주었으면 한다.

오라클 VPS에 Alist 사용하기

1. 오라클 클라우드 VPS 생성은 「오라클 클라우드에서 평생 무료로 VPS 사용하기」 문서 참고하자. 이 문서의 설명이 부족하다면 구글에서 많은 자료를 얻을 수 있다.

팁: 이때 SSH 키는 「운영체제별 SSH Key Pair 준비」의 puttygen을 이용해 생성한 키를 이용하면 된다. puttygen가 생성한 공개키 문자열을 모두 복사하여 메모장 같은 곳에 붙여넣고 저장해 두는 것이 좋다. 나중에 내 오라클 VPS에 콘솔로 접속할 때 필요하기 때문이다.

Oracle VPS + Alist, Private Cloud Aggregation

2. 오라클 클라우드 VPS 콘솔 접속, 「Oracle Cloud: VM(가상 머신 인스턴스)에 접속하기」 글을 참고하자.

팁 1: PUTTY에 적는 IP 주소는 오라클 VM Instance 페이지의 [인스턴스 액세스]에 있는 공용 IP 주소다.
팁 2: 콘솔 접속에 사용할 SSH 키는 앞에서 puttygen을 사용할 때 생성한 공개키 문자열을 붙여넣으면 된다.
팁 3: PUTTY 설정이 끝나면 [Saved Sessions]로 세션을 저장해 두면 편리하다.

Oracle VPS + Alist, Private Cloud Aggregation

3. VM Instance에 Alist 설치는 아래 명령어를 사용하면 된다(Linux-x86_64 플랫폼만 지원하고 자세한 것은 「One-click script, 3.0 도움말」 참고).

2.x 정식 버전: sudo curl -fsSL "https://nn.ci/alist.sh" | sudo bash –s install
3.0 베타 버전: sudo curl -fsSL "https://s.nn.ci/alist.sh" | sudo bash -s install

설치가 완료되면, 화면에 관리자 암호가 표시되니 잘 기억해 두자. 또한, 설치가 성공하면 Alist가 시스템 서비스로 등록되어 재부팅될 때마다 자동으로 시작된다.

Alist 상태 조회: sudo systemctl status alist
Alist 시작: sudo systemctl start alist
Alist 재시작: sudo systemctl restart alist
Alist 종료: sudo systemctl stop alist

3.0 사용자는 /opt/alist 디렉토리로 이동 후 ./alist admin 명령으로 로그인 ID/암호를 볼 수 있다

Oracle VPS + Alist, Private Cloud Aggregation

4. Oracle Cloud 방화벽 설정이 필요하다.

즉, Alist가 사용하는 TCP 포트 5244를 방화벽에서 열어주어야 외부에서 접속할 수 있다는 말인데, 이것은 「Oracle Cloud 방화벽 설정 (http/https 특정 포트 열기)」 문서를 참고하면 된다.

VM Instance에서 5244 포트를 개방하려면 다음 명령어를 사용하면 된다.

sudo iptables -I INPUT 1 -p tcp --dport 5244 –j ACCEPT

이 설정을 영구적으로 저장하려면,

sudo apt-get install iptables-persistent
sudo /usr/sbin/netfilter-persistent save

iptables-persistent를 설치하고, 현재 iptable 설정을 저장하라는 명령이다.

Oracle VPS + Alist, Private Cloud Aggregation

5. 이제 외부에서 오라클 VPS에서 실행 중인 Alist에 접근할 수 있게 되었다. 오라클 VM Instance의 Alist 접속주소는 다음과 같다,

http://(VM Instance 공용 IP 주소):5244

관리자 암호는 Alist 설치할 때 표시된 그것이고, Alist에 구글, 원드라이브, 바이두, PikPak 등의 클라우드 계정을 추가하는 방법은 「바이두, Teambition, PikPak 등을 윈도우 탐색기로 연결」 글을 참고하자.

팁: 위 사진처럼 PC의 Alist 설정값을 백업하고 오라클 VPS Alist에서 불러와도 된다.

Oracle VPS + Alist, Private Cloud Aggregation
>

6. 이제 nPlayer에 [WebDAV] 네트워크를 추가하는 작업만 남았다. WebDAV 사용자 이름과 암호는 [Alist Manage] - [Settings] - [Backend]에서 확인하거나 변경할 수 있다.

호스트: VM Instance 공용 IP 주소
사용자: WebDAV username
암호: WebDAV password
포트: 5244
경로: /dav

Oracle VPS + Alist, Private Cloud Aggregation
<동영상 감상을 시작하자 비약적으로 증가한 트래픽>

마무리

오라클 클라우드 프리티어(free tier)의 외부 전송 트래픽은 매월 10TB를 제공되므로 이 정도면, 몇 사람의 동영상 스트리밍 서버로 충분하다고 본다. 실제 테스트 결과 PikPak에 저장된 드라마 두 편(파일 크기 2GB 정도)을 각각 다른 기기로 동시 감상해도 끊기는 것이 없었다(3편부터는 버퍼링이 생김). 혼자, 가족, (아주아주 가까운) 지인들과 동영상을 공유하기 딱 좋은 시스템이다. 다만 x265 영상은 재생 불가가 떴다. 이것은 Alist 문제로 보인다.

(내가 아직 방법을 못 찾은 것일 수도 있지만) Alist엔 사용자별로 접근 권한을 설정할 수 없다는 보안상의 단점이 있다. 이 말인즉슨 오라클 VM Instance의 공용 IP가 누출되면 Alist에 연결된 내 클라우드 자료도 고스란히 누출되고, 누군가 함부로 자료를 열람하고 더불어 삭제할 수도 있다는 말이다. 흔한 ‘읽기 전용’ 설정도 안 보인다.

그런 고로 오늘 소개한 방법은 매우 매우 조심해서 사용하도록 하자.

Alist 3.0 버전부터 사용자 계정을 생성하여 계정별로 클라우드 접근 권한을 설정하는 것이 가능해졌으며, 일반 계정은 기본적으로 자료에 대한 읽기 권한만 주어진다. 고로 Alist 운영이 좀 더 유연해졌다고 볼 수 있다.

또한, 나 혼자만 사용한다면, 그리고 Alist로 오직 PikPak만 연결할 것이라면 그냥 PikPak 앱으로 동영상을 감상하는 것이 더 낫다. PikPak 앱은 자막도 지원되고, x265 영상도 문제없이 재생되기 때문이다.

비록 보잘 것 없지만 광고 수익(Ad revenue)은 블로거의 콘텐츠 창작 의욕을 북돋우는 강장제이자 때론 하루하루를 이어주는 즐거움입니다

Share:

0 comments:

댓글 쓰기

댓글은 검토 후 게재됩니다.
본문이나 댓글을 정독하신 후 신중히 작성해주세요