hosts文件中的通配符

时间:2010-11-16 13:34:34

标签: dns hosts

在Windows或Linux上的hosts文件中不可能使用通配符。 有没有办法用浏览器插件或其他东西来做?

我在vbox实例上有一个开发服务器,所以它实际上是局域网。 我正在为我的虚拟主机创建.dev域,因此example.com成为example.dev。 对于一个应用程序,我正在创建随机子域(abd34dn.example.dev),它应该都指向开发服务器的IP。

我有什么选择?

4 个答案:

答案 0 :(得分:4)

不是编辑主机文件(不适合您的要求),而是设置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记录,如上所述。

答案 1 :(得分:2)

AngryHosts可以作为一个简单的DNS,它只是一个很小的软件,非常容易使用。

答案 2 :(得分:2)

我制作了这个简单的工具来代替主机。支持正则表达式。 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"
    }
]

答案 3 :(得分:1)

您可以使用echoipdns(https://github.com/zapty/echoipdns)。

通过运行echoipdns dev,对.dev子域的所有请求都会重定向到127.0.0.1,因此任何具有xyz.dev等的域都将解析为127.0.0.1。您可以使用任何其他后缀,只需将dev替换为您想要的名称。

Echoipdns功能更强大,如果您想使用网络中其他机器的网址,您仍然可以零配置使用它。

例如如果您的机器IP地址是192.168.1.100,您现在可以使用域名xyz.192-168-1-100.dev,它将始终解析为192.168.1.100。这个魔术是由echoipdns通过查看域名的第二部分中的IP地址并在DNS查询上返回相同的IP地址来完成的。您必须在要从中访问远程系统的计算机上运行echoipd。

echoipdns也可以设置为独立的DNS代理,因此只需指向此DNS,您现在可以使用上述所有优势而无需每次都运行特殊命令,甚至可以从移动设备使用它。

基本上,这简化了基于通配符域的DNS开发,适用于本地和团队环境。

echoipdns适用于Mac,Linux和Windows。

注意:我是echoipdns的作者。