liblanc 님이 시놀로지에 wireguard 모듈을 추가하는 법을 올려주셔서 docker 로 쉽게 설치 하는 방법을 알려드립니다.
1. 우선 https://github.com/runfalk/synology-wireguard 여기에 가셔서 자신이 사용하는 시놀로지와 DSM버전이 지원 하는지 보고 Platform을 확인해 줍니다.
2. 다음으로 https://github.com/runfalk/synology-wireguard/releases 이곳에 가셔서 자신의 시놀로지 platform에 맞는 패키지를 다운받아 줍니다.
3. 다음으로 시놀로지 패키지 센터에 가셔서 오른쪽 상단에 있는 수동 설치를 눌러서 방금 받으신 파일을 설치해줍니다.
4. 다음은 Docker에 가셔서 (없으시면 패키지센터에서 Docker 설치하시면 됩니다.) linuxserver/wireguad 이미지를 받아줍니다.
5. 마지막으로 putty로 시놀로지 ssh에 접속하신다음에
sudo docker create \
--name=(docker컨테이너 원하는 이름) \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Seoul \
-e SERVERURL=(시놀로지의 ddns주소) \
-e SERVERPORT=(사용하실 포트) \
-e PEERS=(원하시는 피어 수(입력하신 숫자만큼 wireguad 클라이언트 파일이 생성됩니다.)) \
-e PEERDNS=(사용하실 dns 서버주소 (저는 구글의 8.8.8.8 로 했어요) \
-e INTERNAL_SUBNET=10.13.13.0(원하시는 ip대역 /여러 wireguad서버를 사용하실경우 10.13.14.0 같이 3번째 숫자를 늘려주면됩니다) \
-p (사용하실포트):51820/udp \
-v (wireguad클라이언트 파일 저장할 곳/파일스테이션에서 폴더만드시고 속성에 나와있는 경로 입력하시면 됩니다.):/config \
-v /lib/modules:/lib/modules \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--restart="on-failure:10" \
linuxserver/wireguard
혹시 password 를 치라고 나온다면 본인 계정의 비밀번호를 쳐주세요 sudo명령 실행시 관리자 확인을 위한 비밀번호입니다.
(괄호)에 적혀있는것만 자신의 서버에 맞게 입력해 주시면 docker 컨테이너 목록에 뜨는데 실행시켜 주시면 됩니다.
그럼 이제 -v에서 입력한 wireguad클라이언트 파일을 저장한곳을 들어가셔서 핸드폰에선 wireguad어플에서 qr코드로 추가하셔도 되고 conf파일을 직접 다운받아서 여셔도 됩니다.
이런식으로 피어수만큼 폴더가 만들어지고 png파일로 되어있는 qr코드를 어플에서 찍으시거나 conf파일을 어플에서 추가하시면 연결이 끝납니다
*방화벽과 공유기에서 설정하신 포트를 포트포워딩 해주셔야합니다!
그럼 docker로 초간단(?) wireguad구축하기 였습니다.
저도 시놀로지에 설치해보고 싶어서 저 페이지까진 찾았었는데 대충보고 네이티브로만 되는줄 알고 안했었거든요
아무래도 docker로 하면 문제가 생겨도 해결이 쉽다보니깐요
liblanc님이 쓰신 글 보고 모듈설치는 쉽게 할수 있는걸 알게되어서 docker로 할수있었네요 ㅎㅎ
제가 부탁드린부분 이렇게 멋지게 해주셨네요..
눈물날정도로 감사합니다..ㅠ.^
복받으실꺼에요~~^0^
unkown shorthand flag:'n'in -name=wireguard
See 'docker create --help'.
이런 문구가 나오면서 다시 루트로 나와버렸습니다..
이럴경우 처음부터 다시 입력해야하나요? 아니면 입력하던 PEERDNS 부터 다시 입력하면 될까요?
다시 차근차근 입력해보니 입력은 완료 됐는데 마지막으로 입력 완료하면
invalid reference format: repository name must be lowercase
이런 문구가 뜨는데 정상적으로 설치가 안된거 같습니다.
도커에 들어가보면 컨테이너에 wireguard가 설치되지 않은것 같아서요..ㅠ.ㅠ
혹시 도커 컨테이너를 먼저 설치하고 명령어를 입력해야하는건가요? 저는 이미지만 먼저 다운받아놓고 설치는 안한상태로 ssh 작업을 했거든요..
어느부분에서 잘못된건지 조언좀 부탁드려도 될까요?
혹시 docker create 명령을 어떻게 입력하셨는지 보여주실수있나요?
매 구분 마지막 \은 "빈칸(스페이스바)\" 로 입력해주셔야합니다.
띄어쓰기가 안되어있을경우 명령어가 구분이 안돼서 그러실수 있어요
sudo docker create명령이 성공적으로 되었다면 컨테이너 목록에 실행은 안된 상태로 --name에 입력하신 이름으로 생기게 됩니다
그리고 명령어에서 = 앞뒤에 오는 것들은 띄어쓰기 하지 말아보세요
괄호때문에 헷갈리신것 같아 아래에 예시로 남겨드립니다 복사하셔서 바꾸실부분만 수정해서 입력해 보세요
sudo docker create \
--name=wireguard \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Seoul \
-e SERVERURL=example.duckdns.org \
-e SERVERPORT=51820 \
-e PEERS=25 \
-e PEERDNS=8.8.8.8 \
-e INTERNAL_SUBNET=10.13.13.0 \
-p 51820:51820/udp \
-v /volume1/wireguard/config:/config \
-v /lib/modules:/lib/modules \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--restart="on-failure:10" \
linuxserver/wireguard
--name=wireguard \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Seoul \
-e SERVERURL=ddns 아이피 \
-e SERVERPORT=설정하려는 포트 \
-e PEERS=10 \
-e PEERDNS=8.8.8.8 \
-e INTERNAL_SUBNET=10.13.14.0 \
-p :51820/udp \
-v /volume1/Wireguard/Client:/config \
-v /lib/modules:/lib/modules \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--restart="on-failure:10" \
linuxserver/wireguard
위 그대로 복사 붙여넣기로 입력했습니다.
근데 말씀하신것처럼 sudo docker create \ 명령어를 입력해도 DSM 들어가서 보면 컨테이너에 이미지가 생성되지 않는데요..ㅠ.ㅠ
뭐가 문제일까요?
그동안 다른건 잘 설치했던거 같은데..ㅠ.ㅠ
그러면 쉘(ssh) 에서 "sudo docker ps -a" 입력하신 결과가 어떻게 나오시나요?
혹시 wireguard이름인게 있나요?
-p :51820/udp 에서 문제가 있네요
-p 설정하려는포트:51820/udp
로 입력해주셔야 합니다
해당부분 바꿔서 입력했는데도..
invalid reference format: repository name must be lowercase
이와같은 명령어가 뜨면서 설치가 안되는것 같은데요..
이건 무슨문제일까요?ㅠ.ㅠ
중간에 띄어쓰기가 잘못 들어가면 그 오류가 뜨긴합니다만...
그럼 혹시 클라이언트 파일 저장할 폴더(volume1/Wireguard/...) 이름을 대문자가 없게끔 소문자로만 바꿔주신 다음에 시도해보시겠어요??
혹시 도커에서 이미지 먼저 실행하고 명령어 입력하는건 아니죠?
ssh로 도커 자체가 설치가 안되는건지 모르겠네요..
전에 tvheadend 도커는 ssh명령어도 잘 설치 했던거 같은데..
지식이 짧아서 뭐가 문제인지 모르겠네요..ㅠ.ㅠ
그것때문은 아닐까요?
혹시 사용하시는 플랫폼이 뭐이신가요?
다만 버전을 제가 latest버전으로 받았는데 이것때문에 문제인지 모르겠네요..
다른버전을 받아서 해봐야할까요?
저는 sudo docker create \ 명령어를 입력해도 도커가 생성이 안되는거 보니 뭔가 문제가 있는것같네요..ㅠ.ㅠ
"sudo docker create"와
"sudo docker \
create"
가 같은 뜻이라고 생각하시면 되세요
그래서 마지막인 linuxserver/wireguard까지 치시고 엔터를 누르셔야 그때 생성이 완료되는것이죠
명령에서 \대신 띄어쓰기 넣으셔도 결과는 같습니다.
sudo docker create --name=wireguard --cap-add=NET_ADMIN --cap-add=SYS_MODULE -e PUID=1000 .........
이런식으로요
만약 그래도 오류가 뜨신다면 -v에서 경로를 ""로 감싸줘보시겠어요?
-v "/volume1/wireguard/client/":"/config/" 처럼요
>
위 상태처럼 남아 있습니다.
원래 마지막명령어를 입력하면 완료되서 root로 다시 나와야 하는거 아닌가요?
-v "/volume1/wireguard/client/":"/config/" \
마지막에 \ 를 붙이니 마지막에 > 는 나오지 않는데요
대신 위와 똑같은 메세지로..
invalid reference format: repository name must be lowercase
이렇게 똑같이 나오네요..ㅠ.ㅠ
밑에 다른분께서 -p 부분에 마지막 뒤에 공백 지워보시라는데 한번 해보시겠어요??
현재는 출근중이라서 퇴근 후 한번 해보도록 하겠습니다..
다시한번 감사드립니다..^^
혹시 설치 성공하셨나요?
혹시 DSMㅂㅓ전도 6.2가 맞는지 확인해보셔요
타이밍 무엇...?ㅎㅎ
감사합니다!
마지막에 peer1~ 디렉토리가 생기지 않네요 이유가 뭘까요 ㅠ_ㅠ
혹시 위 방법 그래도 해도 되신건가요?
/Vollago
5분 정도 기다려보시겠어요?
만약 그래도 안되시면 DSM-Docker 에서 컨테이너 로그가 어떻게 뜨시나요?
아래 이미지 처럼 설치 시 -v의 config 경로가 생성이 안돼서 제가 따로 생성하여 docker create하니 생성은 됐구요. 하지만 로그 이미지 처럼 정상적으로 컨테이너가 시작 된걸로 나오지만 config 경로에는
아래 처럼 2개의 디렉토리만 존재하고, peer디렉토리는 생기질 않네요.. 혹시 config나 따로 설정해야 될게 있을까요 ㅜ_ㅜ
admin@admin:/volume1/wireguard/config$ ls
coredns templates
admin@admin:/volume1/wireguard/config$
크 성공했습니다. 바보같이 os 버젼이 6.1 떄였네요 ...ㅠ_ㅠ 어이없는 실수를.. ㅋㅋ
감사합니다.
설치 연결까지 한번에 깔끔하게 되네요.
너무 감사합니다.
DS218+ 모델에서 잘 되네요!
디렉토리 및 파일 폴더등 생성 안되는거 같구요?
컨테이너에서 스타트가 안됩니다 사진 보시고 조언 부탁합니다
감사합니다
"열기" 로 표기가 안되는데 영향이 있을까요 ?
-v (wireguard클라이언트 파일 저장할 곳/파일스테이션에서 폴더만드시고 속성에 나와있는 경로 입력하시면 됩니다.):/config \
이 한개의 문장을 잘 몿 이해했었습니다
일단 클라이언트 파일 보니 생성되어있네요
글쓴이님 자료공유 감사합니다
그럼 docker를 실행시키고 좀 기다리고나면 폴더에 peer1 ,peer2 등의 폴더가 생기실텐데 이게 클라이언트 파일입니다. png파일로 qr코드로 인식하셔도되고 config 파일을 클라이언트에 옮기셔도됩니다.
보통 시놀에 같이 묶여있는 내부망 192.168.x.x 내부망 접속 및 사용할수 있는지요?
아님 시놀로지의 내부망 아이피를 적으면 되나요?
시놀로지의 공인 ip(외부ip)를 입력하시면 됩니다.
다만 그 경우엔 시놀로지의 공인 ip가 바뀔경우 연결이 되지 않게 됩니다. ( 그떈 클라이언트ex.핸드폰 에서 접속하는 url을 바뀐 공인ip로 바꿔주시면 사용가능합니다)