我在 VirtualBox 虚拟机上有两个 Linux 服务器。一个是 Ubuntu Linux,另一个是 OpenSuse Linux。
Ubuntu 服务器的主机名是“ubuntu-server”,而 open suse 服务器的主机名是“suse-server”。
当我从主机输入 http:// ubuntu-server 时,它运行正常。但是当我从主机输入 http:// suse-server 时,它不起作用。要访问 suse apache,我必须输入其 IP 地址,例如:http:// 192.168.1.5
我检查了我的“hosts”文件,其中没有 ubuntu-server 的任何条目。
如何在不输入 IP 地址且不编辑主机中的 hosts 文件的情况下访问 SUSE 服务器的 Apache?
我的主机操作系统是Windows 7 Professional。
答案1
将网络适配器置于桥接模式,以便它从路由器获取自己的地址
在虚拟机的设置中,选择Networking->Adapter *x*->Bridged Mode->OK
答案2
为了让它按您希望的方式工作,您有两个选择:在您的网络上设置 DNS 服务器以将请求路由到suse-server
IP,或者您可以在 ubuntu 服务器/etc/hosts
文件中添加 SUSE 计算机的条目。我不会深入介绍 DNS 服务器设置,但 hosts 文件方法非常简单。只需将以下行添加到 Ubuntu 机器上的文件即可:
192.168.1.5 suse-server.localdomain suse-server
根据需要更改 IP 和主机名,但这应该可行。
您也可以在 SUSE 机器上执行相同操作,只需将以下内容添加到其 hosts 文件中:
192.168.1.x ubuntu-server.localdomain ubuntu-server
再次修改 IP 和主机名以符合要求。
编辑
抱歉,我没看到您不想编辑 hosts 文件。既然是这样。DNS 服务器是我所知道的唯一选项。我认为有些路由器可能会提供自己的 DNS 服务器。我会先研究一下。
答案3
如果您可以在没有 DNS 的情况下从 Windows 访问 Ubuntu 服务器(因为没有正式的 DNS 服务器),那么听起来 WINS 可能正在解析,并且 Ubuntu 已正确注册到主浏览器。如果您使用的是 DHCP,您的路由器可能处理不正确?从路由器到机器可能存在 DHCP 注册问题。
答案4
一个可能的原因是 SUSE 上的 DHCP 客户端在协商期间不发送主机名。如果网络由 NetworkManager 管理,请尝试从 GUI 更改设置,或者直接编辑 /etc/dhclient-eth0.conf。如果未安装 NetworkManager,请尝试 /etc/dhclient.conf,不带“ethx”后缀。