• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글

Wireguard VPN을 GUI로. wg-easy docker로 설치하기.

달소 달소 3168

0

19

안녕하세요. 달소입니다.

이전부터 Wireguard VPN의 압도적 성능을 여러번 자랑해드렸었는데요.
기존에 썼던글이 블로그와 헤놀로지용만 있어서 포럼용으로 하나 더 업데이트 해봅니다.

Wg-easy는 Wireguard의 불편한 단점인 CLI 및 불편한점을 GUI에서 편하게 사용할 수 있도록 구축된 도커 이미지로 pull이 100만이 넘을정도로 인기가 많습니다.

image.png.jpg

https://svrforum.com/23408

https://www.wireguard.com/ WireGuard: fast, modern, secure VPN tunnel   wiregu...
달소 | 2021.03.22

https://svrforum.com/24290

  안녕하세요. 달소입니다!   오늘은 최근에 구축한 VPN들의 속도비교입니다!   망 구성 / 장비마다 스펙도 다르지만 어떤...
달소 | 2021.03.26

특징

  • 올인원: WireGuard + 웹 UI.
  • 간편한 설치, 사용이 간편합니다.
  • 클라이언트를 나열, 생성, 편집, 삭제, 활성화 및 비활성화합니다.
  • 고객의 QR 코드를 보여줍니다.
  • 클라이언트의 구성 파일을 다운로드합니다.
  • 클라이언트가 연결된 통계입니다.
  • 연결된 각 클라이언트에 대한 Tx/Rx 차트.
  • 그라바타 지원.

설치 환경

Ubuntu 20.04 LTS
Docker + Docker compose

사용 이미지 : https://hub.docker.com/r/weejewel/wg-easy

+ vpn을 사용하기위해서는 vpn 사용포트인 51820 포트를 공유기나 방화벽상에서 포트포워딩해주셔야합니다.(기기마다 설정방법 상이)

wg-easy 컨테이너 생성하기

컨테이너 생성전에 설정파일과 데이터를 저장할 디렉터리를 만들어주세요.

mkdir -p /data/wg-easy/
mkdir -p /data/wg-easy/data

vi /data/wg-easy/docker-compose.yml

가장중요한건 WG_HOST에 사용하고계신도메인 or 공인 ip를 적어주셔야하며 기타옵션들도 설정을 한번 보시고 다 설정해주시면되겠습니다.

처음사용하시는분들을 위해 옵션을 몇가지 설명해드리자면

PASSWORD // WG-easy 웹 ui 접속시 사용하는 pw입니다.(임의지정 상관x)
WG_PORT // 기본 wireguard port로 변경하실필요없습니다. 변경하시고싶으시면 아래 ports에 호스트쪽 포트를 변경하시면됩니다.
WG_DEFAULT_ADDRESS=10.8.0.x // VPN 연결시 할당받을 ip 대역입니다.(기호에 맞게..)
WG_DEFAULT_DNS // VPN 연결시 사용할 DNS 입니다.
WG_MTU // VPN 연결시 MTU 속도인데 디폴트로 놔두셔도 됩니다.
WG_ALLOWED_IPS // 이게 가장 헷갈리실거라고 생각합니다. 이건 VPN을 타고나갈 구간입니다. 예를들어 192.168.15.0/24 라고 적으신다면 192.168.15.3과 통신할때는 VPN을 타겠지만 일반 Naver,google 등 트래픽을 사용할때는 VPN을 사용하지않습니다. 모든 트래픽에 VPN을 적용하시려면 0.0.0.0/0으로 설정하시면 되겠습니다.

 

version: "3.8"
services:
  wg-easy:
    environment:
      # ⚠️ Required:
      # Change this to your host's public address
      - WG_HOST=[사용하고계신 도메인 or 공인 ip]

      #Optional:
      - PASSWORD=dalso
      - WG_PORT=51820
      - WG_DEFAULT_ADDRESS=10.8.0.x
      - WG_DEFAULT_DNS=1.1.1.1
      - WG_MTU=1420
      - WG_ALLOWED_IPS=192.168.1.0/24, 10.8.0.0/24
      
    image: weejewel/wg-easy
    container_name: wg-easy
    volumes:
      - /data/wg-easy/data:/etc/wireguard
    ports:
      - "51820:51820/udp"
      - "51821:51821/tcp"
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1

위처럼 내용 작성을 마치셨으면 docker-compose up -d 명령어로 컨테이너를 생성해주세요.

wg-easy 웹 ui 접속 및 사용하기

ip:51821 포트로 접속하시면 아래처럼 로그인창이 나오는데 pw는 아까지정해놓으신 pw로 접속해주시면됩니다.

로그인하신다음 새로운 클라이언트 생성을 위해 New Client를 해주세요.

원하는 이름대로 클라이언트를 만들고 나면 아래처럼 화면이 뜨는데
QR을 누르면 QR코드로 등록할 수 있게 창이 뜨고 다운로드를 하면 설정파일을 다운로드할 수 있게됩니다.

QR코드는 모바일 기기가 등록하기쉽고 conf파일은 윈도우 클라이언트 에서 넣기 쉽습니다.

간단하게 플레이스토어에서 WIreGuard 앱을 설치하고 qr코드를 스캔한다음에 접속하면 아래처럼 연결됐다는 표시가 나옵니다.

윈도우 앱도 import tunnul만 하셔서 파일만 불러오시면 바로 연결이 가능합니다.

이상 쉬운 WireGuard VPN 구축방법이였습니다~

신고공유스크랩
19
profile image
달소 글쓴이 2022.03.18. 14:04
쪼꼬모카라떼

볼륨매칭까지하신게 맞으실까요??

볼륨매칭한 폴더하단에 파일이 어떤게있는지 궁금하네요

profile image 2등
쪼꼬모카라떼 2022.03.18. 14:21

wg0.conf 파일과 wg0.json이 있고

wg0.conf 파일을 public키를 windows에 empty tunnel에 입력하면 되긴되는데..

헐 ..

혹시나 edge 브라우저로 접속하니 생성한 client 보이네요 chrome 에서는 안보이던데...

profile image
달소 글쓴이 2022.03.18. 15:31
쪼꼬모카라떼

헛.. 브라우저 캐쉬를 모두 날리고다시해보셔야될듯하네요 ㅠ 왜그럴까요... 저는 크롬으로 잘사용하고있습니다

profile image
쪼꼬모카라떼 2022.03.19. 15:21
달소

ㅠ 모든것은 ddns 문제였네요

ddns 서버의 비번을 바꿔었는데 공유기에 설정을 깜빡한 바람에 여러가지가 꼬였네요

달소님 매번 감사합니다

3등
하스타 2022.03.21. 00:10

헤놀에 설치해서 쓰다가 이번에 7.0올라오면서 커널이 달라져서 지웠습니다.

다행히 오라클에 설치해놓은거 있어서 밖에서 종종 쓰는데, 와이어가드가 OpenVPN보다 안정적이고 처음 접속할때 인증이라던가 인터넷속도등 전체적으로 전부 빨라서 좋더군요.^^

너무 빠릿해서 오히려.. 암호화는 잘 되고 있는건가 의심스럽습니다..ㅎㅎ

저는 공용WiFi 쓸때 암호화 용도로 VPN을 쓰는지라..

profile image
달소 글쓴이 2022.03.21. 11:35
섭린이

앗 요놈이 wg easy인데요 ㅎㅎㅎ

제목이 기존에 다른걸로 쓸려고했던거라서 다시바꿧습니다 ㅠㅠ

profile image
달소 글쓴이 2022.03.21. 11:38
섭린이

헛.. cli 형식인 wg-easy도 있었나요...?ㅎㅎ

동일한 이미지인지 모르겠네요 한번 이미지로 확인해보시고 제걸로 적용해보시면될듯합니다~

우하히아나 2022.03.23. 09:48

참고입니다

내부통신을 위해서 허용된 아이피등을 설정할떄 매우 복잡하게 아이피를 설정해줘야하는데 그걸 조금이라도 더 쉽게 하기위한 툴? 입니다

제가 알고있는게 맞는지 확인부탁드립니다

https://www.procustodibus.com/blog/2021/03/wireguard-allowedips-calculator/

profile image
달소 글쓴이 2022.03.23. 10:14
우하히아나

네 특정대역대만 허용해줄거면 복잡하게안해도될텐데

어느 대역은 허용하고 어느대역은 허용하지않으려고하신다면 올려주신 사이트로 적용하면될듯합니다!

 

profile image
달소 글쓴이 2022.07.26. 17:03
은서네

원하시는 형태가 어떤건지 감이 잡히지않네요.

단순하게 wireguard를 사용한다고 토렌트가 실행안되거나 그런건 없습니다.

profile image
행복하게살자 2022.10.10. 00:43
달소

version: "3.8"

services:

wg-easy:

environment:

# ⚠️ Required:

# Change this to your host's public address

- WG_HOST= 도메인

 

#Optional:

- PASSWORD= 비번

- WG_PORT=51820

- WG_DEFAULT_ADDRESS=10.8.0.0

- WG_DEFAULT_DNS=192.168.50.80

- WG_MTU=1420

- WG_ALLOWED_IPS= 192.168.50.0/24,10.8.0.0/24

image: weejewel/wg-easy

container_name: wg-easy

volumes:

- /volume4/docker/wg-easy/data:/etc/wireguard

ports:

- "51820:51820/udp"

- "51821:51821/tcp"

restart: unless-stopped

cap_add:

- NET_ADMIN

- SYS_MODULE

sysctls:

- net.ipv4.ip_forward=1

- net.ipv4.conf.all.src_valid_mark=1

 

이렇게 했는데 자구 다시시작하네요

Error: WireGuard exited with the error: Cannot find device "wg0"

뭐가 잘못된건가요? 도메인은 제도메인 적었거든요

JACK_LEE 2023.01.31. 03:05

달소님 덕분에 잘 설치해서 사용중입니다! 감사합니다! 그런데 궁금한게 있는데요, 이게 외부에서  집 내부망에 접근은 잘 되는데, 도커가 설치된 (시놀로지) 에 접근이 안되네요?? 그래서 smb도 작동을 안하구요,,,, 시놀 이외에 기기들은 접근 가능합니다! 원래 이런걸까요? 아니면 제가 설정을 잘 못한걸까요? 일단 ip랑 비번쪽은 xxxx 처리 한거구요, 명령어는 아래와 같이 하였습니다!  검토 부탁드립니다! 😃

docker run -d \
  --name=wg-easy \
  -e WG_HOST=xxxxxxxxxx \
  -e PASSWORD=xxxxxxxxxx \
  -v ~/.wg-easy:/etc/wireguard \
  -p 51820:51820/udp \
  -p 51821:51821/tcp \
  --cap-add=NET_ADMIN \
  --cap-add=SYS_MODULE \
  --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
  --sysctl="net.ipv4.ip_forward=1" \
  --restart unless-stopped \
  weejewel/wg-easy

 

profile image
달소 글쓴이 2023.01.31. 11:24
JACK_LEE
음 로컬쪽host라 그럴수도있을것같긴한데 시놀로지에 자체방화벽을 혹시 사용하시나요?

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story

본 게시판은 서버구축 게시판과 통합되었습니다.

서버구축 게시판 이동하기