4

我已阅读How to configure user specific hosts file on Windows,它没有答案,并且是从 2012 年开始的,因此任何人恢复它的机会几乎为零。

这是我的用例:我们有一个 nodejs 工具套件,它允许用户生成保存到生产系统上他们自己的子域的内容。假设它部署在 上example.org,并且您使用用户名注册,xyz那么您生成的内容最终会出现在xyz.examplecontent.org(由于明显的安全问题而导致不同的域)。

问题是这也需要开发人员在本地进行测试,包括执行用户名前缀域路由的系统。由于在干净的结帐时,没有预烘焙的用户,每个开发人员都必须设置一些用户(这部分是必不可少的,因为它测试用户创建过程),然后还要手动编辑他们的hosts文件,以便有(如据计算机所知)将正确解析的用户子域主机。

可以使用https://npmjs.org/package/hostilehttps://npmjs.org/package/mod-hosts之类的库(折扣https://npmjs. org/package/local-tld因为它仅适用于 OSX)但由于在 Windows 或 OSX 上修改主机文件需要管理权限,而且您绝对不会以管理员权限运行任何应用程序,这些库很酷,但实际上并不可用.

在http://npmjs.org搜索可以解决此问题的“主机”时,是否有任何 Node.js 包我找不到,或者 Windows 和 OSX 是否有办法设置免费主机文件以便附加主机规则可以在不污染主文件的情况下指定,并且不需要管理员权限?

注意: “这个自动化工具可以为您做到这一点,并在 *n*x、OSX 和 windows 上运行,但需要 ruby​​/python/perl/whatever”之类的答案当然也是完全可以接受的。只要它是跨平台的并且不需要管理员权限,那已经比手工策划要好。

4

1 回答 1

0

我可能会建议创建一个自定义 DNS 服务器来响应*.somespecificdomain.ext请求并在本地运行它。

有几个用 Node JS 编写的 DNS 服务器,这是一个例子:https ://github.com/tjfontaine/node-dns

此问题中有更多 nodejs DNS 服务器: Node.JS 中的简单 DNS 服务器?(主要/权威 DNS 服务器)(也许是 ndns?)

然后,您可以将此 DNS 服务器添加到本地网络设备 DNS 服务器的底部。如果您在主要网络设备上使用 DHCP,则可能将其添加到特定目标操作系统上的虚拟网络适配器或类似设备中。

是的,您需要管理员/root 权限才能将 DNS 服务器添加到网络适配器 - 但这是一次性任务。

于 2013-12-19T04:33:50.637 回答