情况:
我在 Vbox6.1 内有 Ubuntu 20.04 服务器和一个 Ubuntu 20.04 桌面主机。Host-Guest 通信使用 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 并且运行正常。
我无法评论,但是:
dig example.com
ping example.com
如果一切正常,您的 DNS 运行良好。让我们尝试 https 链调试并调查 http 服务器日志。例如,您的 WEB 浏览器可能使用代理,并将 DNS 请求转发到代理连接。
我找到了解决方案。这里的关键是正确配置 dnsmasq 以识别我的 vbox 来宾静态 ip 的 ip 以进行域解析。
我在这里找到了清晰的教程,但我做了一些小的修改,所以我将在下面展示我的步骤供其他人遵循。
禁用和停止 systemd 已解决
$ sudo systemctl disable systemd-resolved
$ sudo systemctl stop systemd-resolved
删除符号链接
/etc/resolv.conf
并删除文件$ ls -lh /etc/resolv.conf $ sudo rm /etc/resolv.conf
创建一个新的 /
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 static ip address)
安装 dnsmasq
$ sudo apt install dnsmasq
将 .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'
为访客的静态 IP 地址创建目录解析器:
$sudo mkdir -v /etc/resolver && sudo bash -c 'echo "nameserver your-guest's-static-ip address" > /etc/resolver/test'
重启 dnsmasq 和 network-manager
$ sudo systemctl restart dnsmasq $ sudo systemctl restart network-manager
测试你的 dnsmasq 设置
a.) 打开您的浏览器并确认您仍然可以访问外部互联网
b.)运行
dig example.test
你应该能够看到你的客人的静态IP地址c.) 在您的主机浏览器中打开 example.test
而已。
您的客人应该在主题备用名称扩展名中拥有带有 example.com 的服务器证书