启用主机客户域解析

启用主机客户域解析

情况:
我在 Vbox6.1 中安装了 Ubuntu 20.04 服务器,并安装了 Ubuntu 20.04 桌面主机。使用 vboxnet0 适配器正确配置了主机-客户机通信。我可以从主机的命令行轻松 ping 客户机的静态 IP。

问题:
我最近在客户机上安装了一个服务器控制面板,奇怪的是,我只能从主机的 Web 浏览器访问服务器控制仅有的使用 IP 地址,而不是其域名。例如:

https://192.168.62.87:3080 正确显示控制面板,而
https://example.com:3080 Firefox 则出现“嗯。我们无法找到该站点。”的错误信息。

我尝试过的解决方案:

1.) 首先,我尝试了显而易见的方法。我编辑了我的/etc/hosts文件,但
192.168.62.87 example.com 不起作用

2.)接下来,我尝试安装 avahi-daemon在来宾服务器上,如下所示:
sudo apt-get install avahi-daemon&重新启动来宾<-没有用

有人知道如何才能让我的 vbox 域名对我的主机可见吗?谢谢

更新 @Gaétan RYCKEBOER 下面的建议揭示了一些有用的内容。

当我运行dig example.com它时,显示我的主机正在尝试使用我的 PROD 服务器的名称服务器来解析 example.com,这当然意味着控制面板将不会加载,因为它**test**.example.com在 y prod 服务器上不存在。

看来192.168.62.87 example.com 我的/etc/hosts文件被忽略了。

这就是我需要纠正的。
笔记:我的 ubuntu 测试服务器确实安装了 bind9,并且运行正常。

答案1

我无法发表评论,但是:

  • 安装 dns-utils
  • 使用 dig 验证名称解析:dig example.com
  • 尝试ping example.com

如果一切正常,则说明您的 DNS 运行正常。让我们尝试 https 链调试并调查 http 服务器日志。例如,您的 WEB 浏览器可能使用代理,并将 DNS 请求转发到代理连接。

答案2

我找到了一个解决方案。这里的关键是正确配置 dnsmasq 以识别我的 vbox 客户机的静态 IP 以进行域解析。

我发现清楚教程在这里,但我做了一些小修改,因此我将在下面展示我的步骤,以供其他人遵循。

  1. 禁用并停止 systemd 已解决

    $ sudo systemctl disable systemd-resolved
    $ sudo systemctl stop systemd-resolved

  2. 删除符号链接/etc/resolv.conf并删除文件

    $ ls -lh /etc/resolv.conf $ sudo rm /etc/resolv.conf

  3. etc/resolv.conf使用以下值创建一个新的 / :

    $ sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolv.conf' #(主机域名解析)

    $ sudo bash -c 'echo "nameserver 1.1.1.1" >> /etc/resolv.conf' #(外部互联网的公共 DNS 服务器 ip)

    $ sudo bash -c 'echo "nameserver your-guest's-static-ip address" >> /etc/resolv.conf' #(virtualbox guest 静态 ip 地址)

  4. 安装 dnsmasq

    $ sudo apt 安装 dnsmasq

  5. 将 .test 添加到 dnsmasq 配置文件:

    $ sudo bash -c 'echo "address=/.test/your-guest's-static-ip address" >> /etc/dnsmasq.conf'

笔记:开发需要通配符域名解析的 wordpress 多站点的人员可以使用:
$ sudo bash -c 'echo "address=/example.test/your-guest's-static-ip address" >> /etc/dnsmasq.conf'

  1. 为客户的静态 IP 地址创建目录解析器:

    $sudo mkdir -v /etc/resolver && sudo bash -c 'echo "nameserver your-guest's-static-ip 地址" > /etc/resolver/test'

  2. 重新启动 dnsmasq 和网络管理器

    $ sudo systemctl 重新启动 dnsmasq $ sudo systemctl 重新启动网络管理器

  3. 测试你的 dnsmasq 设置

a.) 打开浏览器并确认您仍然可以访问外部互联网

b.) 运行dig example.test你应该能够看到你的客户的静态 IP 地址

c.) 在主机的浏览器中打开 example.test

就是这样。

答案3

您的客户端应该拥有一个服务器证书,证书中包含主题备用名称扩展中的 example.com

相关内容