我已经在运行 Ubuntu 9.04 Desktop 的机器上配置了 Samba 和 LAMP 服务器,并希望确保我们网络上的其他计算机始终可以通过其名称访问该机器上的 samba 和 Web 服务。假设主机的名称是“buildmachine1”。我希望 Windows 客户端能够通过“\buildmachine1\developersproject1”或“ http://buildmachine1/websvn ” 上的 Web 服务访问 samba 共享
buildmachine1 连接到我们的 LAN,这是一个更大的 Windows 网络的一部分。这个更大的网络由生活在无法到达的星系中的超级强大的生物管理,并将他们的网络管理任务外包给生活在另一个无法到达的星系中的超级强大的生物。归根结底,buildmachine1 或任何存在/用户都有权加入 Windows 域。
我有限的经验和这个问题暗示一台机器必须是域的成员才能通过它的名称访问。所有开发人员都可以通过它的 IP 地址访问机器,但该地址会定期更改,所以如果我们将驱动器号映射到 IP 地址或配置我们的颠覆客户端通过http://192.168.99.99/svn访问存储库,我们显然IP更改时必须重新配置所有内容。
考虑到环境和平台,我们如何才能可靠地通过机器名称而不是不断变化的IP地址访问机器?
不,它不需要是 Windows 域的成员。但由于它是内部服务器,因此简单的步骤是:
这两者都会让你要求超级强大的生物进行这种改变——这就是它的方式。然而,没有一个是特定于 Windows 的。
另一种方法是让机器在收到动态 IP 租约时注册自己的名称,尽管这需要很多事情都恰到好处......大多数已经在这个问题中得到了回答。
作为最后的游击手段,您可以将机器 IP 输入到每个人的主机文件中,并在 IP 更改时不断更改它。听起来很棒,不是吗?;)
所以最后,你总是需要有超级强大的人来遵循政策,而政策应该包括如何批准(或拒绝)和实施变更……而制定有效的政策最终是管理责任。或者无论如何。
Windows 机器使用 NetBIOS 处理这个问题。我对 Linux 的了解不够,无法为您进行调查,但谷歌可能会为您找到可以在 Linux 机器上运行的 NetBIOS 兼容服务。
NetBIOS 名称解析虽然不是很优雅。它只是广播询问谁有这个名字,所以它只能在一个子网上工作。如果您可以遵循@Oskar 的建议,那将是一个更优雅的解决方案。
编辑:虽然您的构建机器有一个 DHCP 地址,但您可能会发现它不会经常更改。通常它只会在 DHCP 租约到期时服务器关闭时才会改变。我在这里假设此框不会经常关闭...如果其地址不经常更改,那么您可能会发现主机文件是可接受的解决方案。在 lmhosts.sam 中,您可以指定
其中文件名可以是 UNC 路径。因此,您只需要在单个文件中维护一个条目。
我仍然认为,如果您能找到某种方式获得他们的帮助,那么让您的网络管理员为您的构建机器提供一个 DNS 条目(@Oskar)是更好的选择。
您不需要计算机成为域的一部分即可通过其名称(NetBIOS 名称)引用它。通过协商谁将成为子网上的主浏览器,NetBIOS 能够独立于服务器运行。为了使大型网络中的事情不那么不稳定,通常使用 WINS 服务器 --- WINS 有点像用于 NetBIOS 名称的 DNS。
Samba 使用 NetBIOS 广播并使用主机名作为 NetBIOS 名称。所以通常你正在寻找的东西会起作用。
问题是 NetBIOS 仅限于本地子网,除非涉及 WINS 服务器。因此,您可以在您的服务器上安装nmdb(Linux WINS 服务器),并在您的 Windows 客户端上添加一个辅助 WINS 服务器……但这里需要注意的是,您需要在您的机器上使用静态 IP 才能在客户端上添加 WINS 服务器:- )。
因此,除非您可以从上级获得静态 IP 或强制使用静态 IP,否则您就是 SOL。
既然您提到您的客户是更大的 Windows 网络的一部分。我假设这包括 WINS 服务器。我会要求该框的服务器管理员在其中为 Linux 服务器添加一个静态条目。如果只有几个客户端,您也可以欺骗和编辑主机文件。
这里的想法很疯狂,但是您必须有能力打开服务台票对吗?
我知道这会涉及到很多困难,但是为什么不向服务台开一张票,简单明了,告诉他们你想要做什么。IT 似乎忘记了他们在那里支持最终用户。
我会建议这样的事情。
我们要求将以下 MAC 地址 00 00 00 00 00 00 00 00 分配给静态 IP 地址,并将此 IP 地址映射到 buildserver1.internal.company.local 的内部 DNS 名称
我们需要这样做是因为动态 IP 更改会导致构建失败,从而导致项目延迟。
如果需要经理批准,请告知批准所需的经理级别。
现在,如果 IT 拒绝它,您将转发给您的经理,如果他拒绝,那么就接受这个问题。并为您需要的一切执行此操作,无论多么小,通过拒绝合理的请求来继续记录 IT 给您带来的所有问题,三件事中的一件将会发生,
我在一个地方做了这个,他们最终为开发人员提供了 12 个静态 IP 地址来运行测试服务器。