Docker:将流量从 openvpn 服务器路由到 openvpn 客户端

Docker:将流量从 openvpn 服务器路由到 openvpn 客户端

网络对我来说仍然是黑魔法,我正尝试将流量从 docket 中的 openvpn 服务器路由到 docker 中的 openvpn 客户端。

我正在尝试实现这个目标:

我的电脑 --> VPN --> (docker openvpn 服务器) 我的服务器 (docker openvpn-client) --> 付费 VPN --> 世界

openvpn 客户端已连接到我的付费 vpn,正在另一个容器中使用传输运行

network_mode: "container:openvpn-client"

服务器运行良好,当我不使用传输等网络模式时,我可以将我的计算机连接到服务器。如果我使用它 openvpn-server 记录以下信息:

openvpn-server    | Sun Dec  2 18:06:23 2018 192.168.0.10:55375 TLS: Initial packet from [AF_INET]MY_COMPUTER_IP:55375, sid=6dcec3eb d8117758
openvpn-server    | Sun Dec  2 18:07:23 2018 192.168.0.10:55375 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
openvpn-server    | Sun Dec  2 18:07:23 2018 192.168.0.10:55375 TLS Error: TLS handshake failed

这是我的 docker-compose 文件

客户 :

version: '3'

services:
  openvpn-client:
    image: dperson/openvpn-client
    container_name: openvpn-client
    cap_add:
      - net_admin
    command: -r "172.20.20.0/24" -f ""
    sysctls:
     - net.ipv6.conf.all.disable_ipv6=0
    environment:
      TZ: 'Europe/Paris'
      ROUTE: "172.20.20.0/24"
    read_only: true
    tmpfs:
      - /run
      - /tmp
    restart: unless-stopped
    ports:
      - 9091:9091
    security_opt:
      - label:disable
    stdin_open: true
    tty: true
    volumes:
      - /dev/net:/dev/net:z
      - ./vpn:/vpn
    networks:
      - docker-net-vpn

networks:
  docker-net-vpn:
    external:
      name: docker-net-vpn

服务器

version: '3'

services:
  openvpn-server:
    image: "kylemanna/openvpn:latest"
    container_name: openvpn-server
    ports:
      - 1194:1194/udp
    volumes:
      - /data/openvpn-server:/etc/openvpn
    cap_add:
      - NET_ADMIN
    restart: always
    networks:
     - docker-net-vpn

networks:
  docker-net-vpn:
    external:
      name: docker-net-vpn

网络是这样创建的

docker network create --attachable=true --driver=bridge --subnet=172.20.20.0/24 --gateway=172.20.20.1 docker-net-vpn

openvpn-server conf 文件

server 192.168.255.0 255.255.255.0
verb 3
key /etc/openvpn/pki/private/my-vpn.domain.com.key
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/my-vpn.domain.com.crt
dh /etc/openvpn/pki/dh.pem
tls-auth /etc/openvpn/pki/ta.key
key-direction 0
keepalive 10 60
persist-key
persist-tun

proto udp
# Rely on Docker to do port mapping, internally always 1194
port 1194
dev tun1
status /tmp/openvpn-status.log

user nobody
group nogroup
comp-lzo no

### Push Configurations Below
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "comp-lzo no"

如果有人实现了我想要做的事情请告诉我!

奖励:如果我可以使用我的 pihole 作为 DNS 提供商那就太棒了!

相关内容