如何在 Windows 上将所有 .dev 域解析为 localhost

Ben*_*ack 5 domain-name-system windows dnsmasq

我们想在我们开发人员的 Windows 机器上进行设置,以便所有.dev域都解析为 localhost。在 Unix 系统上,用一个额外的行来启动 dnsmasqhosts就可以了,但遗憾的是 dnsmasq 仅适用于 Unix。在 Windows 方面,我不知道等效的解决方案,无论是内置的还是在第三方实用程序中可用的。我能想到的最好的是一些 PowerShell 脚本,以管理员身份运行,它们会c:\Windows\System32\Drivers\etc\hosts直接改变——最多是丑陋且容易出错的。

这样做的正确方法是什么?现在没有有意义的解决方案吗?

Ros*_*ser 7

替代方案:让您的开发人员只附加.localtest.me,这是一个已经存在的公共 DNS 区域(带有 * A 记录),用于此目的。

  • 我不确定将不受信任的公共域添加到您的工作流程是一个很好的计划! (9认同)

Jos*_*osh 5

我已经使用 Acrylic DNS 代理解决了这种情况。它是一款适用于 Windows 的免费开源软件,允许您将文件夹通配为本地顶级域注册表。

  1. 在此处下载丙烯酸 DNS 代理: http : //mayakron.altervista.org/wikibase/show.php?id=AcrylicHome
  2. 配置您的网络设置以指向您的本地 IP 地址,如下所述: http : //mayakron.altervista.org/wikibase/show.php?id=AcrylicWindows10Configuration
  3. 在此处打开您的 Acrylic 配置文件:开始 > 程序 > Acrylic DNS 代理 > 编辑自定义主机文件 (AcrylicHosts.txt)
  4. 添加您的通配顶级域,如下所示: 127.0.0.1 *.dev
  5. 像这样重启 Acrylic:开始 > 程序 > Acrylic DNS 代理 > 重启 Acrylic 服务
  6. 将通配符添加到您的 Apache 配置文件中。它可能类似于:

它可能类似于:

LoadModule vhost_alias_module modules/mod_vhost_alias.so  

NameVirtualHost *.dev:80  

<Directory "/www/sites">  
    Options Indexes FollowSymLinks Includes ExecCGI  
    AllowOverride All  
    Order allow,deny  
    Allow from all  
 </Directory>  

 <VirtualHost *.dev:80>  
     VirtualDocumentRoot c:/www/sites/%-1/%-2+/  
 </VirtualHost>  
Run Code Online (Sandbox Code Playgroud)

这应该够了吧。


The*_*ins 3

您的 DNS 中已有 .dev 区域吗?您可以创建一个通配符条目,其中 *.dev 转到环回。