1

我已经使用 traefik 和 docker(基于 c't 中的一篇文章)为我的自定义域设置了一个简单的 Web 服务器,仅用于测试是否一切正常。但是,我的问题是我的路由器 Fritzbox,它阻止了对 web2 容器 (web2.mydomain.de) 的请求,而是显示了路由器的登录页面。我的 docker-compose 文件如下所示:

version: "3.7"
services:
  traefik:
    image: traefik:v2.0
    command: --providers.docker
    restart: always
    ports:
     - 80:80
     - 443:443
    volumes:
     - /var/run/docker.sock:/var/run/docker.sock:rw
     - ./static.yml:/etc/traefik/traefik.yml
     - ./dynamic.yml:/etc/traefik/dynamic/dynamic.yml
     - ./acme.json:/etc/traefik/acme/acme.json

  web2:
    image: containous/whoami
    labels:
     - traefik.http.routers.web2.rule=Host(`web2.mydomain.de`) || ( Host(`mydomain.de`) && PathPrefix(`/web2`) )
     - "traefik.http.routers.web2.tls.certResolver=default"
     - "traefik.http.routers.web2.tls=true"

我也做过的事情:

  • CNAME-记录配置:CNAME * xxxxxxxyyyyy.myfritz.net -
  • 我的 *.mydomain.de 的 fritzbox 中的 DNS 重新绑定异常(用于允许传入的 req./resp。)
  • 在 Fritzbox 中打开端口 80/443
  • acme.sh 正在工作(生成了证书)

那么什么是错误配置?

4

1 回答 1

0

你的fritzbox可能有一个奇怪的行为。对我来说,如果我从内部 192.168.178.* 网络浏览外部 fritzbox IP,它甚至会显示路由器的登录面板;而且我根本没有将fritzbox本身暴露在互联网上。IMO 这是 AVM 对新路由器的错误行为。

我通过安装内部 DNS 服务器解决了这个问题。您想要拆分 DNS。这可确保您的域名解析为内部请求的内部网络服务器的 IP 地址,而不是您的外部 IP 地址。如果您尝试通过移动 LTE 连接访问您的网络服务器,您会发现它运行良好。只是来自内部 fritzbox 网络的请求,卡住了。因此,要么为拆分 DNS 安装内部 DNS 服务器,要么在操作系统的主机文件中手动输入。

尽管如此,我仍然不时收到一些随机的 SSL 证书错误。然后,fritzbox 将为登录面板提供其自签名证书,而不是为我的域提供我的 Let's Encrypt 证书。

tl;dr:您需要拆分 DNS,因为某些 Fritzbox 路由器无法进行正确的 NAT 发夹。

于 2021-06-22T10:12:39.297 回答