在没有管理员权限的情况下将路由添加到 win/OSX 主机文件,或使用免费的主机文件

Mik*_*ans 7 windows macos hosts node.js

我读过如何在 Windows 上配置用户特定的主机文件,它没有答案,并且是 2012 年的,所以任何人恢复它的机会几乎为零。

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

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

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

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

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

Dea*_*lor 1

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

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

此问题中的更多 NodeJS DNS 服务器:Simple DNS Server in Node.JS? (主要/权威 DNS 服务器)(也许是 ndns?)

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

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

  • 不幸的是,这意味着没有管理员权限你就无法做到这一点,所以这意味着这不是所问问题的答案。 (4认同)