1

我想使用 Wireguard 将 docker 容器连接到远程网络。更详细地说,它需要连接 NAS @home 的服务器上的 Nextcloud。

我知道有一些解决方案带有一些 Linux 防火墙技巧。我尝试实现一个纯粹基于 docker-compose 的解决方案!

所以什么工作:我能够从 10.13.13.2 一直 ping 到“nextcloud”。反过来是行不通的。

我认为这是因为 Wireguard 容器中的 NAT。我不确定。另一个原因可能是 Nextcloud 容器内缺少路由信息。我不确定传入的数据包(从 Nextcloud 到 Wireguard)是否会被 Wireguard 容器正确路由。

有什么方法可以让这个工作?

通过 Wireguard 将 Nextcloud 连接到 NAS

我有一个部分工作的版本:

version: "3.8"

services:
  db:
    image: mariadb
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - ./mariadb:/var/lib/mysql
    networks:
      - default

  app:
    image: nextcloud
    volumes:
      - ./html:/var/www/html
    restart: always
    networks:
      webproxy:
      default:
      wireguard-home:
        ipv4_address: 10.0.14.2

  wireguard:
    image: linuxserver/wireguard
    restart: always
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Amsterdam
      - SERVERURL=<url>
      - SERVERPORT=51820
      - PEERS=1
      - PEERDNS=auto
      - INTERNAL_SUBNET=10.13.13.0
      - ALLOWEDIPS=10.0.14.0/24,172.16.0.0/12
    volumes:
      - ./wireguard:/config
      - /lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    networks:
      default:
      wireguard-home:
        ipv4_address: 10.0.14.1

networks:
  webproxy:
    external:
      name: webproxy

  wireguard-home:
    ipam:
      config:
        - subnet: 10.0.14.0/24
4

0 回答 0