본문 바로가기

깨알팁/NAS400

iptime NAS400에서 webdav 설정하기

안녕하세요

iptime 에서 intel n5105, Ram 4GB, 4 bay 가성비 NAS를 출시해서 셋업하고 있습니다.

그런데 워낙 파워유저분들만 알음알음 사용하셔서 그런지, 정보가 너무 없네요

제가 원하는 건 Oculus Quest 2에서 NAS영상에 저장된 VR영상을 스트리밍해서 보는 것인데요

NAS에서 webdav를 지원하면, Quest2에 내장된 Oculus Browser로 대충 볼수 있었어요

iptime NAS400의 내장 webdav 도움말

iptime NAS400은 기본적으로 webdav가 된다고 해서 사용하려고 했는데요

이게 무슨일...?

아니... webdav client를 따로 깔아야 접속이 된다네요.

lighttpd에 내장된 webdav를 쓰는거 같은데... 웹 브라우저로 엑세스 가능하게 하는 방법을 모르겠더라구요. api doc을 찾아봐도 단순히 껐다 켰다 하는 것 밖에 없고요... 어차피 http 통신이라, 그냥 web browser로도 access 할수 있게 해주면 좋은데 ㅠㅠ

Quest2는 Android 기반인데, VR 모드에서 동작하는 Android용 webdav client를 못찾겠더라구요

VR 미지원 일반 안드로이드 앱은 webdav를 지원하는 앱들이 많긴한데, 이건 VR을 지원안해서 화면이 조그마하게 나와요

docker로 webdav를 돌려보려고 했는데, 이것도 잘 안되네요. 

"web browser로 접근 가능한 webdav 서버"를 구현하려고 이리저리 찾아봤는데요

yocto 3.4로 빌드된 깡통 리눅스라서 뭘 할수가 없더라고요 ㅠㅠ (그래서 파워유저분들이 A/S를 포기하고 RAM 업그레이드 후, 헤놀로지로 가신거 같긴 해요)

그래도 집념으로 찾아보니, apache 서버가 내장되어 있네요! apache 에는 기본적으로 webdav 모듈이 내장되어 있거든요!

반갑다 아파치!!!

아파치를 너무 오랫만에 셋업해봐서, 한참 헤맸는데요 ㅎㅎ

다른분들은 헤매지 마시라고, 방법을 정리해서 올려봅니다!



[ip:8000/webdav 로 webdav 설정하는 방법]
1. NAS400 웹설정에서 Apache 서버 켜기
2. Server Root는 <HDD경로>/apache_root로 생성, 이하 <Server Root>로 지칭
<HDD경로>는 HDD를 설치한 Bay 번호에 맞춰서 HDD1, HDD2, HDD3, HDD4 이런순으로 생성됨

3. ssh로 접속
putty 등으로 접속해주시면 됩니다

4. 로그인 정보 생성
sudo htpasswd -c /etc/apache2/webdav.password <사용자이름>

5. 아파치 서버 로그는 /mnt/<Server Root>/_logs 밑에 있음
작동 로그 모니터링 : tail -f /mnt/<Server Root>/_logs/access_log.*
에러 로그 모니터링 : tail -f /mnt/<Server Root>/_logs/error_log.*
모니터링 종료는 ctrl+c

6. 로그인 정보 파일에 access 못할경우, 아파치 로그에 에러 남 (httpd.conf에 USER/GROUP이 daemon이라 못읽음)
[Sat Sep 09 10:37:02.060188 2023] [authn_file:error] [pid 3309262:tid 140059452896832] (13)Permission denied: [client 192.168.0.14:10643] AH01620: Could not open password file: /etc/apache2/webdav.password

7. 아래 명령으로 아파치가 패스워드 정보 읽을 수 있게 지정
sudo chmod 777 /etc/apache2/webdav.password

8. webdav 설정을 위해 파일 열기
sudo vi /mnt/<HDD경로>/apache_root/httpd.conf
i를 눌러 수정모드로 진입, 방향키로 커서 이동

9. webdav module 켜기
#을 지워 주석 해제
주석 해제 : 
#LoadModule dav_module /usr/libexec/apache2/modules/mod_dav.so
LoadModule dav_module /usr/libexec/apache2/modules/mod_dav.so
주석 해제 : 
#LoadModule dav_fs_module /usr/libexec/apache2/modules/mod_dav_fs.so
LoadModule dav_fs_module /usr/libexec/apache2/modules/mod_dav_fs.so

10. webdav 설정
맨 아랫부분에 하기 내용 추가, <HDD경로>, <공유하고 싶은 NAS의 경로> 는 사용자 환경에맞게 수정하여 입력

IndexOptions Charset=UTF-8
DavLockDB "<HDD경로>/DavLock"
Alias /webdav "<공유하고 싶은 NAS의 경로>"
<Directory <공유하고 싶은 NAS의 경로>>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
<IfModule mod_dav.c>
        <Location /webdav>
                DAV On
                AuthType Basic
                AuthName DAV
                AuthUserFile "/etc/apache2/webdav.password"
                Require valid-user
        </Location>
</IfModule>

추가로, 이미 선언되어있는 ""에 대해 아래와 같이 바꿔주면 ip:8000 접속시에도 ip/pw 필요함
<Directory "">
        Options FollowSymLinks
        AuthType Basic
        AuthName WEB
        AuthUserFile "/etc/apache2/webdav.password"
        Require valid-user
</Directory>

수정후 esc, :wq, enter 입력하여 저장

11. 변경 내용 저장을 위해 apache 서버 재시작


12. web browser에서 ip:8000/webdav 로 접속




13. "4. 로그인 정보 생성" 에서 설정한 id/pw 입력



설정한 경로의 NAS 내용이 web browser로 출력 됨

이제 Quest 2에서도 NAS에 저장한 VR Video가 잘 재생되네요 ㅎㅎ

저랑 비슷한 고민을 하시는 분들에게 도움이 되길 바라며 이만 줄입니다!