我刚刚开始学习网络服务。到目前为止,我知道域名用于网页地址(URL),例如,如果我们有这样的 URL:
http://www.theaddress.thedomain.com/path/to/file.html
http://
表示正在使用的协议。www
是主机名。theaddress.thedomain.com
是域名。- 等等。
但我对这些术语在 Linux 系统中的使用感到困惑。例如,当我尝试在 VirtualMachine 上安装 Apache2 并将其用作服务器时,我仍然无法使用主机名,而只能在 Web 浏览器中输入我的 VM IP 地址。
它们在系统中做什么?当我们不使用 Linux 作为 Web 服务器时,这些事情重要吗?是否可以用虚拟机的主机名和域名来寻址?或者,这两个仅在服务器上线时使用?
答案1
通常,您必须运行 DNS 服务器才能获取域名,而个人虚拟机通常不需要这样做。您可以使用虚拟机的 IP 地址从 LAN 内部连接到虚拟机,或使用 localhost 从虚拟机内部连接到其自身。如果您确实想要,您可以在您的机器上(不是在虚拟机中,而是在运行虚拟机的操作系统中)编辑主机文件,以包含虚拟机的自定义主机名,基本上,它会将主机名映射到虚拟机的 IP。
答案2
不用让事情变得太复杂,你最初的假设是正确的。
您可以为 Machine-A 指定一个域名,但网络上的其他机器仍然需要“某人”将该名称转换为 IP(如果您尝试 ping 它的话),大多数情况下,“某人”是 DNS 服务器。存在使此发现自动化的服务,即让您的机器通过特定协议广播其主机名,但我们暂时先不讨论这一点。
对于虚拟机来说,需要记住的另一件事是,VirtualBox 等会自动将您的虚拟机置于 LAN 网络中,因此默认情况下您的主机与虚拟机位于不同的网络中。
如果您在虚拟机中使用 Apache,我建议将虚拟机的网络类型设置为“桥接”,这样它就可以像同一家庭网络上的另一台机器一样运行。
关于如何从主机或同一网络中的任何其他机器访问虚拟机(假设您已经设置了桥接网络),您可以在家庭路由器中注册它,大多数路由器都会在其管理控制台上提供注册主机名的选项。
希望这可以帮助。