请阅读下面的更新
我的设置:
我的目标:
访问 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 代理主机配置:
当我单击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 中创建域。代理管理器中的配置不会自动执行此操作 - 它所做的只是定义如何处理对此域的请求如果该域名已存在,并且如果它被成功解析为代理的地址。
需要将域名添加到您的.lan
DNS 服务器(127.0.0.1:5353
OpenWrt 上的,无论是什么);尽管您当前在那里有 myserver.lan,但这并不会自动使子域名存在 - 它们都需要单独添加。
如果.lan
DNS 服务器不允许创建自定义条目并且严格使用 DHCP,您可能能够在 AdGuard 配置中创建静态覆盖(实际上看起来很像 dnsmasq 配置)。