Linuxserver / Wireguard在访问我自己的域时出现问题

时间:2020-05-04 19:41:52

标签: docker dns wireguard

我已经有5个容器在同一VPS上运行:

  • 容器1指向traefik.xx.com(子域)。

  • 容器2指向cloud。&&。com(子域)。

  • 容器3指向api.xx.com(子域)。

  • 容器4指向xx.com(主域)

  • 容器5指向oauth.xx.com(子域)

  • 第六个容器将是vpn.xx。 com(子域)

当我的手机(在这种情况下是客户端或对等设备)上的Wireguard VPN关闭时,我可以浏览这些域,并且可以从任何地方访问它们。

但是,一旦我开始在作为客户端或对等设备的手机上运行Wireguard VPN,这些域将无法访问,但是我可以浏览其他网站,例如google和youtube.etc。在未运行Wireguard VPN的其他设备上也可以访问我的域。

我对docker-compose.yml的设置:

services:
  wireguard:
    image: linuxserver/wireguard
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
#      - SERVERURL=wireguard.domain.com #optional
      - SERVERPORT=51820 #optional
      - PEERS=1 #optional
      - PEERDNS=8.8.8.8, 8.8.4.4 #optional
      - INTERNAL_SUBNET=10.13.13.0 #optional
    volumes:
      - ./config:/config
      - /lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped

我尝试使用network_mode: host在主机网络上运行docker,它工作正常,并且在运行wireguard VPN时可以访问上述域,但是还有另一个问题,即容器与主机中的DNS端口53冲突并在Wireguard中登录

端口53已在使用中。

就我而言,上述工作有效,因为容器DNS无法工作,而必须使用主机DNS。因此,该解决方案将与 iptables 一起使用,以将容器的DNS转发到主机DNS,并使主机DNS受到完全控制。

您能帮我吗?还是有人解决方案?

1 个答案:

答案 0 :(得分:0)

我发现ufw阻塞了连接,因此我不得不查看ufw的日志并查看阻塞了什么接口,而我只允许该接口进出任何端口,从而解决了该问题。