在 windows 或 linux 上的 hosts 文件中不能使用通配符。有没有办法用浏览器插件或其他东西来做到这一点?
我在 vbox 实例上有一个开发服务器,所以它实际上是局域网。我正在为我的虚拟主机创建 .dev 域,因此 example.com 变为 example.dev。对于一个应用程序,我正在创建随机子域 (abd34dn.example.dev),它们都应该指向开发服务器的 IP。
我有哪些选择?
不要编辑主机文件(这不符合您的要求),而是设置 DNS 服务器并设置通配符 DNS A 记录——比如
*.example.dev IN A 1.2.3.4
您提到了子域,但我假设您实际上想要 example.dev 下的主机条目(A 地址条目)。现在 abcd.example.dev 表示“abcd”是主机条目,而不是子域。只有当您说 xyz.abcd.example.dev 时,“abcd”才会成为子域。关键是要说 - 因为您只需要 abcd.example.dev - 那么您只需要 DNS A 记录,建议如上所述。
我制作了这个简单的工具来代替主机。支持正则表达式。 https://github.com/stackia/DNSAgent 仅限 Windows。可能与 Mono 一起工作。
示例配置:
[
{
"Pattern": "^.*$",
"NameServer": "8.8.8.8"
},
{
"Pattern": "^(.*\\.googlevideo\\.com)|((.*\\.)?(youtube|ytimg)\\.com)$",
"Address": "203.66.168.119"
},
{
"Pattern": "^.*\\.cn$",
"NameServer": "114.114.114.114"
},
{
"Pattern": "baidu.com$",
"Address": "127.0.0.1"
}
]
AngryHosts可以充当一个简单的 DNS,它只是一个小软件,非常易于使用。
您可以为此使用 echoipdns ( https://github.com/zapty/echoipdns )。
通过运行 echoipdns dev,所有对 .dev 子域的请求都被重定向到 127.0.0.1,因此任何带有 xyz.dev 等的域都将解析为 127.0.0.1。您可以使用任何其他后缀,也只需将 dev 替换为您想要的名称。
Echoipdns 更强大,当你想使用网络中其他机器的 url 时,你仍然可以零配置使用它。
例如,如果您的机器 IP 地址是 192.168.1.100,您现在可以使用域名 xyz.192-168-1-100.dev,它将始终解析为 192.168.1.100。这个魔法是由 echoipdns 通过查看域名第二部分中的 IP 地址并在 DNS 查询中返回相同的 IP 地址来完成的。您必须在要访问远程系统的机器上运行 echoipdns。
echoipdns 也可以设置为独立的 DNS 代理,因此只需指向此 DNS,您现在无需每次运行特殊命令即可使用上述所有好处,甚至可以在移动设备上使用它。
因此,这从本质上简化了本地和团队环境中基于通配符域的 DNS 开发。
echoipdns 适用于 Mac、Linux 和 Windows。
注意:我是 echoipdns 的作者。