首页 > 解决方案 > docker vpn gateway 无需修改 ip 表

问题描述

我目前正在雇用一个 VPS 来托管我的网站和其他一些东西。一切都整齐地在码头运行(从上周开始)。我希望 VPS 做的一件事是使用 prometheus 监控我的家庭自动化内容,但我预计还会有更多脚本在那里运行以用于我的家庭自动化。由于我不想打开所有类型的端口,因此我想到了以下解决方案:

在此处输入图像描述

我有一个在家里运行的 openvpn 服务器,所以我想要一个连接到这个 VPN 的 docker 容器,并允许其 docker 网络中的任何其他容器完全访问我的家庭网络。目前这只是一个普罗米修斯容器。我设法设置了一个连接到我家的 VPN 客户端,我可以通过 docker exec 命令 ping 我的本地设备。然而,问题是将 prometheus 连接到 VPN 作为其他 docker 网络。我试过的是:

我认为现在很清楚我是 docker 新手。这就是为什么我使用 portainer 并在其中弄乱 docker compose 文件的原因。另外,我对 Linux 还不是很满意。所以我不想弄乱我的主机(VPS 服务器,而不是公司)。我读了一些关于修改主机 IP 表的内容,但这让我有点害怕。

在我的理想世界中,我可以使用 docker compose 设置来启动和运行它,但我认为没有。在下面你可以找到我的 openvpn docker-compose,prometheus 在另一个堆栈上,但它目前只是连接到“vpn”和“grafana_backend”网络(不起作用)。

services:
  openvpn:
    container_name: openvpn
    hostname: openvpn
    image: adito/openvpn-client
    restart: always
    volumes:
      - /root/openvpn/kingtechvps.ovpn:/opt/openvpn/openvpn-config.ovpn:ro
    cap_add:
      - NET_ADMIN
    command: openvpn --config /opt/openvpn/openvpn-config.ovpn
    devices:
      - /dev/net/tun
    networks:
      - vpn
    #ports:
    #  - 545:80
    #  vpn:
    #    ipv4_address: 172.10.54.2
    #dns: ${HOST_IP_ADDRESS} # We use unbound listening on the host interface, leading to dnscrypt

networks:
  vpn:
    driver: bridge
    external: true
    name: vpn
    #ipam:
    #  driver: default
    #  config:
    #    - subnet: 172.10.54.0/16
    #      gateway: 172.10.54.2

谁能帮我启动并运行它?

标签: dockerdocker-composevpnopenvpndocker-networking

解决方案


推荐阅读