我已经有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受到完全控制。
您能帮我吗?还是有人解决方案?
答案 0 :(得分:0)
我发现ufw阻塞了连接,因此我不得不查看ufw的日志并查看阻塞了什么接口,而我只允许该接口进出任何端口,从而解决了该问题。