[wg-easy ; wireguard, gluetun] 우분투 도커에서 와이어가드 서버에 접속하기 (글루턴 설치)

yes 2024.08.15 15:15:16

[wg-easy ; wireguard, gluetun] 우분투 도커에서 와이어가드 서버에 접속하기 (글루턴 설치)

 

 

상황

- 1번 서버에 wg-easy 를 설치 했다. (폰으로 접속 확인 완료)

- 2번 서버(우분투)에서 1번서버 wg-easy 에 접속해 보자

  (2번서버의 jellyfin 컨테이너가 1번서버 wg-easy 에 접속해서, ip를 바꾼다)

 

 

cli 방법으로 하는 법

- 검색해 보면, 많이 나와 있다.

- 도커사용을 좋아하다 보니, bare 설치 보다는 도커방식을 택했다.

  또, 컨테이너 별로 vpn 사용여부를 정하고 싶었다.

 

 

 

 

gluetun 사용법

- 글루턴은 도커 설치다. (글루턴 컨테이너)

- 사용이유는 서버1에서 트랜스미션 컨테이너만 서버2의 wireguard 에 접속해서 ip를 바꿔 활동하고 싶을때 좋다.

  이때, 서버1의 다른 컨테이너는 기존 네트워크를 사용할 수 있다.

  서버1에 글루턴을 설치 후, 트랜스미션의 네트워크를 '글루턴 컨테이너'로 정해주면 된다.

 

 

sudo docker run -it --cap-add=NET_ADMIN \
--name=gluetun \
--restart unless-stopped \
-e VPN_SERVICE_PROVIDER=custom -e VPN_TYPE=wireguard \
-e WIREGUARD_ENDPOINT_IP=116.41.***.*** \                                #wg-easy 가 설치된 서버 ip
-e WIREGUARD_ENDPOINT_PORT=51820 \
-e WIREGUARD_PUBLIC_KEY=ne7MwnrPHbulhk(아래참조)uQN6eiD/uRf6YYkl0= \
-e WIREGUARD_PRIVATE_KEY=KPilzh3uZVsm(아래참조)M3E+98JXnL39rRqlk= \
-e WIREGUARD_PRESHARED_KEY=3qbLv10yelGN(아래참조)zkN86cf07m1wpB4= \
-e WIREGUARD_ADDRESSES="10.8.0.4/24" \
qmcgaw/gluetun

 

version: "3"
services:
  gluetun:
    image: qmcgaw/gluetun
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/net/tun:/dev/net/tun
    volumes:
      - /vo2/docker/gluetun:/gluetun
    environment:
      - VPN_SERVICE_PROVIDER=custom
      - VPN_TYPE=wireguard
      - WIREGUARD_ENDPOINT_IP=16.4.52.29
      - WIREGUARD_ENDPOINT_PORT=51820
      - WIREGUARD_PUBLIC_KEY=+Dx/c0Zegw8mGi5yX8ZYw31Xti9bvTJvxgk=
      - WIREGUARD_PRIVATE_KEY=8DyhnASYcMXDJ5AE/KIj8ABpr8DjgvC0g=
      - WIREGUARD_PRESHARED_KEY=PQUE6cj0untxqpL3ZxuQSqpdzx0nu33Y=
      - WIREGUARD_ADDRESSES=10.8.0.2/24

 

 

 

아래 값들을 알아 보려면, 서버2의 wg-easy 에  new client 를 만들어 준다.

 

Untitled-4 copy.JPG

 

 

download configration 을 누른다.

 

Untitled-5 copy.JPG

 

 

 

다운받은 g5.conf

[Interface]
PrivateKey = KPilzh3uZVsm3oFEofNCkmtC90RDaO8VhOpodr+kXmY=
Address = 10.8.0.3/24
DNS = 1.1.1.1

[Peer]
PublicKey = ne7MwnrPH**********N6eiD/uRf6YYkl0=
PresharedKey = /ENrRRmoq/KkZTsTmmrbAAf0+MJZy+S3XEh2B4rtJ8o=
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 0
Endpoint = 116.41.***.***:51820

 

 

WIREGUARD_PUBLIC_KEY=ne7MwnrP************** ;   g5.conf - peer 의 퍼블릭키값이다.

WIREGUARD_PRIVATE_KEY=KPilzh3uZVsm************** ;   g5.conf - interface 의 프라이빗 키이다.
WIREGUARD_PRESHARED_KEY= /ENrRRmoq/KkZTs************** ;   g5.conf - interface 의 프리쉐어드 키이다.
WIREGUARD_ADDRESSES="10.8.0.4/24" \                   g5.conf - interface 의 address 값이다.

 

 

 

 

 

 

portainer 에서 네트워크를 특정 컨테이너로 하기

 

클루턴과 연결하고자 하는 컨테이너 선택 후, duplicate/edit 클릭

 

Untitled-10 copy.JPG

 

 

 

네트워크를 아래와 같이 변경해 주면 된다.

 

Untitled-8 copy.JPG

 

 

 

Untitled-12 copy.JPG

 

 

 

 

 

결론

- 꽤 오랜시간동안 삽질을 했다. (3일고생)

- 만족스럽다.

 

 

 

 

 

추가 2024 11 28

gluetun error 발생

ERROR [vpn] getting public IP address information: fetching information: Get "https://ipinfo.io/": context canceled

증상

- wg-easy 클라이언트가 접속은 잘된다. 하지만, 전송속도가 꽝이다. 그리고, 몇초 간격으로 끈긴다.

 

해결

- 최종 변경은 wg-easy 를 다시 설치 했더니, 잘 되었다.

  (그전 작업은 wg-easy 측 포트를 열러 줬다. 방화벽 확인)