[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
아래 값들을 알아 보려면, 서버2의 wg-easy 에 new client 를 만들어 준다.
download configration 을 누른다.
다운받은 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 클릭
네트워크를 아래와 같이 변경해 주면 된다.
결론
- 꽤 오랜시간동안 삽질을 했다. (3일고생)
- 만족스럽다.