我有一个 Apache Web 服务器设置,并尝试配置主机名,以便同一 LAN 网络中的其他计算机可以使用主机名而不是 IP 地址进行连接。在主机上,我可以使用 IP 地址和主机名访问 Apache Web 服务器。从同一 LAN 网络中的另一台计算机,我可以使用 IP 地址访问 Web 服务器,但不能使用主机名。我该如何解决这个问题?
这是我的文件:
/etc/apache2/sites-available/000-default.conf
<VirtualHost *>
DocumentRoot /var/www/html
ServerName server100.net
ServerAlias www.server100.net
ServerAdmin webmaster@localhost
</VirtualHost>
/etc/hosts
127.0.0.1 localhost
127.0.1.1 home
199.163.65.10 server100.net www.server100.net
主机是 Ubuntu 22.04 LTS 虚拟机,并尝试从 Windows 10 虚拟机进行连接。如果我需要提供更多信息,请告诉我。
答案1
您的路由器在 DHCP 设置中会有一个名为 的选项Domain Name
。这用于解析本地网络中的主机名。您可以运行cat /etc/resolv.conf
它将告诉您的搜索域。
例如,如果您的搜索域是,local
您可以使用<hostname>.local
它通过本地网络访问机器。
答案2
您需要在每个客户端上指定 hosts 文件,以便为每个客户端设置。
或者设置一个 DNS(如 BIND),并将路由器设置为将其作为 DHCP 客户端的 DNS。
您的路由器可能允许您在那里进行设置(机器名称/IP),并使其工作起来更加轻松和省力。如果您正在运行服务器,那么添加 BIND 并不是最糟糕的想法,并且如果您导入黑名单,则可以开始过滤整个 LAN 中的流量。
你还遇到了一个问题:你是否拥有 server100.net?你需要将所有到此站点的流量保留在你的 LAN 内,这又需要 DNS/路由器上的一些本地规则