openvpn을 통한 와이어가드

openvpn을 통한 와이어가드

네트워킹이 처음인데 VPN 2개를 연결해야 합니다.

  • OPENVPN-클라이언트: 네트워크 고스트에 연결됨
  • 라인배커:이것을 사용하여 원격 서버에 연결합니다.

openvpn-client를 통해 wireguard를 라우팅하여 휴대폰을 wireguard에 연결할 때 모든 트래픽이 Cyberghost를 통과하도록 하고 싶습니다.

나는 이것을 가지고있다docker-compose.yml

version: "3.8"

services:

  # hs-openvpn service
  hs-openvpn:
    container_name: hs-openvpn
    image: dperson/openvpn-client:latest  
    restart: always
    ports:
      - "51820:51820/udp"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.wireguard.entrypoints=web,websecure"
      - "traefik.http.routers.wireguard.rule=Host(`vpn.mydomain.com`)"
      - "traefik.http.routers.wireguard.tls.certresolver=letsencrypt"
      - "traefik.http.routers.wireguard.tls=true"
      - "traefik.http.services.wireguard.loadbalancer.server.port=51821"
    cap_add:
      - NET_ADMIN
    volumes:
      - openvpn_data:/vpn
      - /dev/net/tun:/dev/net/tun
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1
    networks:
      - default
    dns:
      - 208.67.222.222
      - 208.67.220.220

  # hs-wireguard service
  hs-wireguard:
    image: weejewel/wg-easy:latest
    container_name: hs-wireguard  
    depends_on:
      - hs-openvpn
    environment:
      - PASSWORD=SOME_PASSWORD
      - WG_HOST=HOST_IP
      - WG_DEFAULT_DNS=1.1.1.1
      - WG_MTU=1420
      - WG_PORT=51820     
    volumes:
      - wireguard_data:/etc/wireguard
    restart: always
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1
    logging:
      driver: json-file
      options:
        max-size: 50m
    network_mode: "service:hs-openvpn"

networks:
  default:
    name: internal-network
    external: true

volumes:

  # openvpn volumes
  openvpn_data:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /mnt/docker-data/openvpn/data

  # wireguard volumes
  wireguard_data:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /mnt/docker-data/wireguard/data

wireguard GUI에 연결할 수 있으므로 작동하는 것 같습니다 vpn.mydomain.com. 까다로운 부분은 휴대폰을 Wireguard에 연결할 때 GUI에서 일부 트래픽이 표시되지만 휴대폰에서 어떤 응답도 받지 못한다는 것입니다.

추가 도움이 필요한 경우 출력은 다음과 같습니다.ip route

docker run -it --net container:hs-wireguard nicolaka/netshoot ip route
0.0.0.0/1 via 10.2.4.1 dev tun0 
default via 172.18.0.1 dev eth0 
10.2.4.0/24 dev tun0 proto kernel scope link src 10.2.4.132 
10.8.0.0/24 dev wg0 proto kernel scope link src 10.8.0.1 
45.133.193.4 via 172.18.0.1 dev eth0 
128.0.0.0/1 via 10.2.4.1 dev tun0 
172.18.0.0/16 dev eth0 proto kernel scope link src 172.18.0.23

도움을 주셔서 미리 감사드립니다.

관련 정보