![Docker:将流量从 openvpn 服务器路由到 openvpn 客户端](https://linux22.com/image/730449/Docker%EF%BC%9A%E5%B0%86%E6%B5%81%E9%87%8F%E4%BB%8E%20openvpn%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%B7%AF%E7%94%B1%E5%88%B0%20openvpn%20%E5%AE%A2%E6%88%B7%E7%AB%AF.png)
网络对我来说仍然是黑魔法,我正尝试将流量从 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 提供商那就太棒了!