我在虚拟机中安装了 ubuntu 服务器。我开始探索网络,并阅读了相关书籍。
它说我的 DNS 服务器在 /etc/resolv.conf 文件中给出。
这是我的服务器的IP。
luvpreet@server16:~$ hostname -I
192.168.122.62
这是 /etc/resolv.conf 文件,
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.122.1
好吧,DNS 服务器将人类可读的地址映射到 IP 地址。在我的主机中(不是在 VM 中)
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 2332/dnsmasq
DNS 服务器正在运行。
但是它是如何工作的,我不知道这个 IP 地址(即 192.168.122.1)是如何充当我的 DNS 服务器的。请详细解释它的工作原理以及此 DNS 服务器的工作流程。
我知道 DNS 服务器是如何工作的,它就像电话簿一样,可以帮助我们定位到特定的网站。DNS 缓存在哪里?我想知道这个 IP 地址如何作为我的 DNS 服务器工作?我可以将任何 IP 地址绑定为我的 DNS 服务器吗?如果可以,该怎么做?如果不可以,为什么?
抱歉,这听起来很蠢,但我不明白。
答案1
您的问题对我来说太模糊了,但无论如何我都会尝试澄清一些事情。
正如您所知,192.168.122.62
这是您的服务器(VM)IP,并且您应该位于192.168.122.0/24
网络上。
如果您ifconfig -a
在主机上运行,我很确定您将获得192.168.122.1
其中一个接口的 IP 地址,它应该位于由您的虚拟机管理程序创建的虚拟接口上,例如可以是 VirtualBox。
同时,我猜测您的虚拟网络位于 NAT(网络地址转换)后面,并且您的主机充当您的虚拟机的路由器。
这就是为什么当您查找时resolve.conf
您会得到您的主机 IP,实际上您的主机(它是您的 VM 的路由器)负责解析 DNS 请求。
您可以在您的虚拟机上运行ip r
或route
来netstat -nr
查看您的路由表。
我已经很久没有使用 dnsmasq 了,但如果我没有记错的话,如果你USR1
向它的进程发送信号,它会在其服务状态下生成一些有关缓存地址的日志,如下所示:
kill -USR1 `pidof dnsmasq`