如何通过 http://hostname/ 访问我的 192.168.* Linux 服务器?

如何通过 http://hostname/ 访问我的 192.168.* Linux 服务器?

(如果这个问题表述得不好或重复,请见谅。我不是一个网络人员,而且我可能没有使用正确的术语......这也使得很难看出这个问题是否已经得到解答。)

我在 VirtualBox、Windows 主机中运行 CentOS 服务器,我可以http://192.168.1.109/从 LAN 上的机器看到访问 Apache 托管的页面。但我希望人们能够键入http://hostname/...既因为这样更容易,又主要是因为我不确定本地 IP 是否是静态的。我不太确定如何继续 - 有人能给我指出正确的方向吗?谢谢。

答案1

我假设您使用的是桥接网络(否则虚拟机就不会那么容易访问)。配置 LAN 的 DNS 取决于控制它的盒子(我期望是一些家用路由器)。

如果该路由器太原始,没有自己的 DNS 服务器,或者你不想配置它,则可以使用 mDNS。安装阿瓦希在 Linux 系统上,你好在 Windows 机器上。

答案2

您可以在 Windows 上创建一个 hosts 文件,将 192.168.1.109 指向“webserver”或任何您喜欢的名称,以便 Windows 主机可以访问它。这假设您的 Windows 计算机也在 192.168.1.x 上,并且连接是桥接的。否则,您可以查看端口转发您的 NAT 虚拟网络连接,但上次我尝试使用 virtualbox 时,这很难做到,所以我使用了桥接网络。

否则,您需要设置一个内部 DNS 服务器,并为该 IP 设置适当的记录。对于您所描述的情况来说,这有点过分了。

google hosts 文件窗口以获取有关如何设置的信息。这只是主机 Windows 系统上的一个简单文本文件,但仅适用于该系统,不适用于您网络中的所有人。如果他们运行的是 Windows,您还需要在他们的机器上自定义 HOSTS 文件。只有当您有很多机器时才会很麻烦。如果您在较大的站点中工作,则需要使用 DNS 服务器路由,除非您虚拟化 DNS 服务器,否则初始设置所需的 PITA 数量级只有大约三个数量级 :-)

答案3

如果您的主机有动态 IP,则需要一台 DHCP 服务器,该服务器要么与 DNS 服务器通信,要么本身就是 DNS 服务器。我总是在基于 Linux 的路由器上使用 DNSMasq,它可以执行 DHCP 和名称解析。

如果您的路由器不支持名称服务器,您可以设置一个名称服务器,如 bind,它知道哪个主机在哪里。但是,拥有单独的名称服务器的缺点是,您需要为主机提供静态 IP,然后在名称服务器中提供这些 IP 的名称。

作为最后的手段,您还可以在每个需要能够按名称查找服务器的客户端上编辑 hosts 文件。我需要一个像“192.168.1.1 bla.localdomain bla”这样的条目。主机文件的位置取决于操作系统。

答案4

如果您不确定 IP 地址是否是静态的,那么您可能想查看/确保 Web 服务器在 LAN 上有一个 DNS 条目,以便始终可以找到它。测试客户端上的 hosts 文件的问题在于它们假设 IP 地址是静态的,因此如果 IP 地址发生变化,那么您必须不断更新 hosts 文件,这很烦人。

最简单的答案是尝试为 Web 服务器提供一个静态地址(只需为其分配一个静态地址或配置一个“DHCP 保留”),然后您就可以按照 Bart 的想法使用 hosts 文件。

相关内容