권과장의 블로그
직접 비용을 지불하고 경험한 후기입니다.
개발

시놀로지 NAS를 서버로 쓰는 법, 외부 접속까지

DS224+ 한 대로 사내 프로그램을 돌리고 있습니다. 공유기 포트포워딩부터 DDNS 주소, Let's Encrypt 인증서, 도커 배포까지 순서대로 적었습니다. KCTV 회선에서 막힌 부분도 그대로 남깁니다.

8분 읽기
시놀로지 NAS를 서버로 쓰는 법, 외부 접속까지 썸네일
시놀로지 NAS를 서버로 쓰는 법, 외부 접속까지 썸네일
권과장

낮에는 회사에서 일하고, 밤에는 코드를 만지고, 주말에는 부엌에 있습니다. 겪은 것을 정리해 두는 곳입니다.

목차

시놀로지 NAS를 서버로 쓰려면 순서가 정해져 있습니다. 공유기에서 포트를 열고, DDNS로 밖에서 부를 주소를 만들고, 그 주소로 인증서를 받고, 그다음에 프로그램을 올립니다. 이 순서를 지키지 않으면 앞 단계 때문에 뒤 단계가 계속 실패합니다. 저는 DS224+ 한 대사내 수발주 프로그램을 돌리고 있고, 2026년 9월 기준 아홉 달째 돌아가는 중입니다.

이 글은 서버를 새로 사지 않고 이미 있는 NAS를 서버 삼아 쓰려는 분을 위한 기록입니다. 제가 막힌 지점도 그대로 남깁니다. 특히 KCTV 회선에서 공유기 관리자 페이지에 들어가느라 한참 헤맸는데, 같은 상황을 겪는 분이 있을 것 같아서요.

서버로 사용 중인 시놀로지 NAS DS224+

램 증설 없이 10명 동시 접속, 속도는 어땠나

먼저 솔직한 성능 이야기부터 하겠습니다. 제가 쓰는 건 DS224+ 2베이 모델이고, 램은 기본 상태에서 한 번도 증설하지 않았습니다. 이 상태로 실제 업무에서 열 명 정도가 동시에 붙어서 썼습니다.

결론은 이렇습니다. 솔직히 조금 느립니다. 화면이 뜨는 데 잠깐 기다리는 느낌이 있고, 제대로 된 서버에서 돌릴 때와 같은 반응 속도는 아닙니다. 다만 업무가 안 될 정도는 아니었습니다. 발주를 넣고 목록을 확인하는 정도의 작업이라면 쓸 만합니다.

기준을 하나 잡아 드리면, 사람이 화면을 보고 값을 입력하는 방식의 업무 프로그램이면 괜찮습니다. 반대로 대량의 데이터를 한꺼번에 처리하거나, 응답이 1초만 늦어도 곤란한 서비스라면 맞지 않습니다.

한 줄 요약 램 증설 없는 DS224+로 열 명 동시 접속은 됩니다. 빠르진 않고, 되긴 됩니다.

NAS를 서버로 쓸 수 있는 경우와 그렇지 않은 경우

속도 외에도 판단할 게 있습니다. NAS는 이미 산 장비라 추가 비용이 없고, 24시간 켜져 있고, 관리 화면이 그래픽으로 되어 있어서 리눅스 명령어를 몰라도 상당 부분 해결됩니다. 사내에서 십수 명이 쓰는 업무용 프로그램이나 개인 프로젝트에는 충분합니다.

반대로 이런 경우에는 맞지 않습니다. 불특정 다수에게 공개하는 서비스, 갑자기 접속이 몰릴 수 있는 서비스, 몇 분만 멈춰도 곤란한 서비스입니다. NAS는 정전이나 인터넷 회선 장애가 나면 그대로 멈춥니다. 이중화가 되어 있지 않으니까요.

제가 클라우드 이전을 준비하는 이유도 성능보다 이쪽입니다. 속도는 참을 수 있는데, 멈췄을 때 대신 받아 줄 곳이 없다는 점은 참기 어렵습니다.

주의 NAS를 외부에 여는 순간 그 장비는 인터넷에 노출된 서버가 됩니다. 회사 파일이 같이 들어 있는 NAS라면 더 신중하게 결정하세요.

공유기 관리자 페이지부터 막힌다

여기서 제일 오래 걸렸습니다. 코드가 아니라 공유기에서요.

내 PC로는 안 되는데 휴대폰 와이파이로는 되는 상황

관리자 페이지 주소를 입력했는데 제 컴퓨터에서는 아무 반응이 없었습니다. 그런데 휴대폰을 같은 와이파이에 연결해서 들어가니 열렸습니다. 처음에는 이게 무슨 상황인지 이해가 안 됐습니다.

이런 증상이 나오는 이유는 몇 가지가 있습니다. PC가 유선으로 다른 네트워크 대역에 붙어 있거나, 사내에 공유기가 두 대 물려 있어서 PC와 휴대폰이 서로 다른 장비에 연결돼 있는 경우입니다. VPN이나 사내 보안 프로그램이 사설 IP 접근을 막고 있을 때도 그렇습니다.

저는 검색을 계속하다가 결국 들어갔습니다. 정확히 무엇 때문이었는지 딱 짚지는 못했지만, 같은 증상을 겪는 분이라면 먼저 접속되는 기기로 들어가서 설정을 끝내는 게 빠릅니다. 원인을 밝히는 것보다 목적을 달성하는 게 우선입니다.

아이디와 비밀번호는 대개 장비 뒷면에 있다

관리자 계정을 몰라서 막히는 경우도 많은데, 저는 금방 찾았습니다. 공유기 모뎀 뒷면에 스티커로 붙어 있었습니다. 통신사에서 설치해 준 장비라면 대부분 여기에 있습니다.

한번 들어가고 나면 비밀번호는 바로 바꾸시길 권합니다. 뒷면에 붙어 있는 값은 기본값이고, 이제 이 장비 뒤에 서버가 붙게 되니까요.

고정 IP가 이미 잡혀 있어서 그쪽으로 포트를 열었다

제 경우 KCTV 회선에 고정 IP가 이미 설정돼 있었습니다. 그래서 새로 신청할 필요 없이, 그 IP를 목적지로 삼아 포트포워딩만 다시 열어 주면 됐습니다.

여기서 확인할 게 하나 있습니다. 내 회선이 공인 IP인지 아닌지입니다. 공유기 관리자 페이지에 표시된 WAN IP가 192.168로 시작하거나 10으로 시작하거나 172.16~172.31 범위라면, 그건 사설 IP라 밖에서 직접 부를 수 없습니다. 이 경우에는 통신사에 공인 IP를 요청하거나 앞단 장비에서 한 번 더 열어 줘야 합니다.

포트포워딩 설정 자체는 값 세 개면 끝납니다.

  1. 외부 포트: 밖에서 들어올 때 쓸 번호

  2. 내부 IP: NAS의 사내 IP 주소

  3. 내부 포트: NAS가 실제로 듣고 있는 번호

저는 NAS를 5001번으로 열었습니다. 시놀로지 DSM 관리 화면의 기본 HTTPS 포트가 5001입니다.

퀵커넥트 대신 DDNS를 고른 이유

시놀로지는 밖에서 접속하는 방법을 두 가지 제공합니다. 퀵커넥트와 DDNS입니다. 퀵커넥트는 포트포워딩 없이도 시놀로지 서버를 거쳐 접속하게 해 주는 편한 기능입니다.

저는 DDNS를 골랐습니다. 퀵커넥트를 쓰면 남의 중계 서버를 거치게 되고, 내가 만든 프로그램을 내 주소로 서비스한다는 느낌이 안 납니다. 그런 글을 몇 개 읽고 나서 결정했습니다. 솔직히 말하면 내 주소가 있는 쪽이 멋있어 보였습니다.

DDNS를 쓰는 실질적인 이유는 따로 있습니다. 인증서를 내 주소로 받을 수 있고, 리버스 프록시로 여러 서비스를 한 주소 아래에 붙일 수 있고, 나중에 클라우드로 옮길 때 주소만 바꾸면 되기 때문입니다. 퀵커넥트로 시작하면 이 구조를 나중에 다시 짜야 합니다.

설정은 DSM 제어판의 외부 액세스 항목에서 합니다. 시놀로지가 제공하는 synology.me 주소를 무료로 받을 수 있고, 도메인을 따로 샀다면 그걸 연결해도 됩니다. 등록하고 나면 상태가 정상으로 바뀌는지 확인하세요.

주소가 제대로 잡혔는지는 명령 한 줄로 확인할 수 있습니다.

nslookup 내주소.synology.me

여기서 나오는 IP가 공유기의 WAN IP와 같아야 합니다. 다르면 다음 단계로 넘어가도 계속 실패합니다.

Let's Encrypt 인증서는 생각보다 쉬웠다

HTTPS 인증서는 DSM 내장 기능으로 받았습니다. 제어판의 보안 항목에 인증서 메뉴가 있고, 거기서 Let's Encrypt를 선택하면 됩니다. 이 단계는 클릭 몇 번으로 끝났습니다. 앞의 포트포워딩과 DDNS에서 고생한 것에 비하면 허무할 정도였습니다.

쉬웠던 이유는 앞 단계를 먼저 끝냈기 때문입니다. Let's Encrypt는 인증서를 발급하기 전에 "이 주소가 정말 당신 것인지" 확인하려고 밖에서 그 주소로 접속을 시도합니다. 그래서 DDNS 주소가 제대로 내 공유기를 가리키고 있어야 하고, 확인용 통로가 열려 있어야 합니다.

인증서 발급에서 실패한다는 글이 많은데, 원인은 대개 인증서가 아니라 그 앞에 있습니다. 주소가 아직 전파되지 않았거나, 확인용 포트가 막혀 있거나, 입력한 도메인과 실제 접속 주소가 다른 경우입니다. 발급 버튼을 계속 누르기 전에 앞 단계를 다시 확인하는 편이 빠릅니다.

갱신은 DSM이 알아서 처리합니다. Let's Encrypt 인증서는 유효기간이 짧은 편이라 자동 갱신이 중요한데, 아홉 달 동안 한 번도 신경 쓴 적이 없습니다. 만료 안내를 받은 적도, 인증서가 끊겨서 접속이 막힌 적도 없었습니다.

도커 컴포즈로 프로그램 올리기

프로그램과 데이터베이스는 도커로 올렸습니다. 시놀로지에는 컨테이너를 관리하는 패키지가 기본으로 제공돼서, 패키지 센터에서 설치하면 됩니다.

컨테이너를 하나씩 띄우는 대신 docker-compose를 썼습니다. 설정 파일 하나에 프로그램과 데이터베이스를 함께 적어 두고 한 번에 올리는 방식입니다. 이렇게 하면 나중에 뭘 어떻게 띄웠는지 파일만 보면 되고, 다시 올릴 때도 명령 한 줄이면 됩니다. 클라우드로 옮길 때도 이 파일이 그대로 쓸모가 있습니다.

이 부분은 제가 명령어를 외워서 한 게 아닙니다. 바이브코딩 방식으로 진행했습니다. AI에게 상황을 설명하면 관리자 터미널로 들어가라고 안내해 주고, 어떤 명령을 어떤 순서로 치면 되는지 알려 줍니다. 그대로 따라 하면서 올렸고, 여기서는 크게 막히지 않았습니다.

돌아보면 이 단계가 쉬웠던 것도 앞에서 다 열어 뒀기 때문입니다. 밖에서 부를 주소가 있고 인증서가 붙어 있으면, 그 안에 무엇을 올리느냐는 상대적으로 단순한 문제가 됩니다. 순서를 바꿔서 프로그램부터 올렸다면 "만들었는데 접속이 안 되는" 상태로 며칠을 보냈을 겁니다.

시놀로지 NAS의 도커 컨테이너 실행 화면

문을 열었으면 잠금장치도 걸어야 한다

여기까지 하면 접속은 됩니다. 그런데 접속이 된다는 건 나만 되는 게 아닙니다. 포트를 연 순간부터 전 세계에서 자동으로 문을 두드리는 시도가 들어옵니다. 사람이 아니라 프로그램이 무작위로 주소를 훑는 겁니다.

DSM 관리 화면(5001)까지 밖에서 열어 두셨다면 특히 그렇습니다. 저도 그렇게 해 뒀는데, 지금 생각하면 이 부분은 더 조여 뒀어야 합니다. 관리 화면은 사내망에서만 접속하게 두고 밖으로는 만든 프로그램만 여는 쪽이 안전합니다.

최소한 이것들은 켜 두시길 권합니다.

  • 관리자 계정 2단계 인증

  • 기본 admin 계정 비활성화, 다른 이름의 계정 사용

  • 로그인 실패가 반복되면 자동으로 차단하는 설정

  • 방화벽에서 접속 허용 국가 제한

  • DSM과 설치된 패키지 자동 업데이트

  • 중요한 데이터는 NAS 밖에도 백업

한 가지 덧붙이면, 보안 설정은 사고가 난 뒤에 하면 늦습니다. 로그를 열어 보면 낯선 접속 시도가 얼마나 들어오는지 바로 보입니다.

알아두기 회사 장비를 외부에 여는 일은 혼자 판단할 문제가 아닐 수 있습니다. 사내 규정이나 담당자 확인을 먼저 거치시는 게 좋습니다.

서버를 사기 전에 NAS부터 켜 보라고 하고 싶다

가장 어려웠던 건 도커도 인증서도 아니고 공유기였습니다. 개발과 아무 상관없어 보이는 화면 앞에서 제일 오래 앉아 있었습니다. 그런데 그걸 넘고 나니 나머지는 순서대로 풀렸습니다.

예상과 달랐던 점은 인증서였습니다. HTTPS라고 하면 어려운 영역인 줄 알았는데, 앞 단계만 정리돼 있으면 클릭 몇 번이었고 아홉 달 동안 손댈 일도 없었습니다. 어려움이 기술의 난이도 순서대로 오는 게 아니라는 걸 여기서 배웠습니다.

다음에 다시 한다면 순서를 하나 바꾸겠습니다. 프로그램을 만들기 전에 빈 페이지 하나부터 올려서 밖에서 열리는지 확인하고 시작하겠습니다. 그러면 "다 만들었는데 접속이 안 되는" 며칠을 통째로 아낄 수 있습니다.

서버 예산이 없어서 미뤄 둔 게 있다면, 사무실에 이미 켜져 있는 NAS부터 한번 보시길 권합니다. 조금 느려도 일단 돌아가는 걸 눈으로 보고 나면, 그다음에 뭘 사야 할지가 훨씬 선명해집니다.