更新:

更新:

请阅读下面的更新

我的设置:

概述

我的目标:

访问 Heimdallhttps://heimdall.myserver.lan而不是https://myserver.lan:8444/

我的配置:

我已经设置了一个新安装的 NPM,http://myserver.lan:8185/它是在 Promox VE 服务器内的 Debian VM 上使用 Portainer 制作的 Docker 容器。

我已经准备好 Heimdall,https://myserver:8444/它也是一个 Docker 容器。SSL 由 Heimdall 本身管理。

这是我的 NPM 代理主机配置:

NPM 代理主机配置

NPM 代理主机概述

当我单击heimdall.myserver.lan浏览器时,位置正确打开但找不到服务器:“我们无法连接到 heimdall.myserver.lan 的服务器。”

这些是我可以在浏览器中直接访问的位置:

海姆达尔:
https://myserver:8444/
https://myserver.lan:8444/

新版本:
http://myserver:8185/
http://myserver.lan:8185/

Apache 容器:
http://myserver:8080
http://myserver.lan:8080

我可以进入 NPM 容器:

# docker container exec -it npm /bin/bash
# cat /etc/hostname
a521690d0bd0

# cat /etc/hosts
127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.9      a521690d0bd0

# cat /etc/resolv.conf
domain lan
search lan
nameserver 192.168.1.1

Ping 适用于:

myserver / myserver.lan
myrouter / myrouter.lan
a521690d0bd0 (the localhost)

但不适用于:

a521690d0bd0.lan
d4fa6db15d5e
d4fa6db15d5e.lan (the heimdall container)

我当然可以补充a521690d0bd0.lan/etc/hosts但我想那并不重要。

我认为也许只是其他 docker 容器无法访问,但 Apache 的情况也一样,http://myserver.lan:80这不是容器,而是 myserver.lan 上的常规 Apache。

无需外部访问。一切都在我的家庭实验室中。AdGuard Home 是我 OpenWrt 路由器中的 DNS 服务器。有两条规则:

[/lan/]127.0.0.1:5353
[//]127.0.0.1:5353

我这样做过一次,以便能够解析我所有的本地主机名,因为 DHCP 服务器保存在 OpenWrt 本身内部。

我这里遗漏了什么?下一步该如何排除故障?

更新:

我设法用这样的 CNAME 记录更新我的 DNS:

config cname
        option cname 'heimdall.myserver.lan'
        option target 'myserver.lan'

现在https://heimdall.myserver.lan正确解析为,myserver.lan并且 NPM 提供页面。这是因为我暂时将 Portainer 中的 NPM 端口更改为 HTTP 的 80:80。我仍然不知道如何解决端口问题。Heimdall 正在https://myserver.lan:8444运行并提供有效的 SSL 证书。NPM 中的方案设置为 HTTPS。但打开https://heimdall.myserver.lan显示:

403 禁止 nginx/1.23.2

所以我的问题是:为什么我只能对子域名使用端口 80,以及如何解决 SSL 问题?

答案1

当我点击 heimdall.myserver.lan 时,浏览器正确打开了位置,但找不到服务器:“我们无法连接到 heimdall.myserver.lan 的服务器。”

NGINX Proxy Manager 不是这里的问题。目前它没有做任何解析——它是你的浏览器无法解析域名代理管理器本身。

简而言之,问题似乎是你根本没有在 DNS 中创建域。代理管理器中的配置不会自动执行此操作 - 它所做的只是定义如何处理对此域的请求如果该域名已存在,并且如果它被成功解析为代理的地址。

需要将域名添加到您的.lanDNS 服务器(127.0.0.1:5353OpenWrt 上的,无论是什么);尽管您当前在那里有 myserver.lan,但这并不会自动使子域名存在 - 它们都需要单独添加。

如果.lanDNS 服务器不允许创建自定义条目并且严格使用 DHCP,您可能能够在 AdGuard 配置中创建静态覆盖(实际上看起来很像 dnsmasq 配置)。

相关内容