在哪里可以获得 Debian Sid 的默认 /etc/hosts 文件?

在哪里可以获得 Debian Sid 的默认 /etc/hosts 文件?

我不知怎么删除了/etc/hosts测试系统 Debian Sid 上的 。现在我想安装默认的/etc/hosts。我试图dpkg -S /etc/hosts找出哪个包包含/etc/hosts,但没有找到。我在哪里可以下载它?

答案1

文件/etc/hosts已写入通过debian-installer,它不作为打包文件而存在。

以下是我的/etc/hosts默认安装:

127.0.0.1       localhost
127.0.1.1       hostname.fqdn.example.com    hostname

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

有关语法的更多详细信息,请参阅 Debian 参考部分主机名解析

更新:

因为我觉得这个答案获得的赞成票比我预期的要多,所以我为你做了一点手指工作,作为回报。:)

实际使用的包含debian-installer逻辑的包/etc/hosts名为net-cfg.更具体地说,两个文件,netcfg.hnetcfg-common.c处理构建文件的逻辑/etc/hosts

netcfg.h#define文件本身和 IPv6 条目都有:

#define HOSTS_FILE      "/etc/hosts"
...<snip>...
#define IPV6_HOSTS \
"# The following lines are desirable for IPv6 capable hosts\n" \
"::1     ip6-localhost ip6-loopback\n" \
"fe00::0 ip6-localnet\n" \
"ff00::0 ip6-mcastprefix\n" \
"ff02::1 ip6-allnodes\n" \
"ff02::2 ip6-allrouters\n"

netcfg-common.c包含脏活,填充以下信息/etc/hosts

if ((fp = file_open(HOSTS_FILE, "w"))) {
    char ptr1[INET_ADDRSTRLEN];

    fprintf(fp, "127.0.0.1\tlocalhost");

    if (ipaddress.s_addr) {
        inet_ntop (AF_INET, &ipaddress, ptr1, sizeof(ptr1));
        if (domain_nodot && !empty_str(domain_nodot))
            fprintf(fp, "\n%s\t%s.%s\t%s\n", ptr1, hostname, domain_nodot, hostname);
        else
            fprintf(fp, "\n%s\t%s\n", ptr1, hostname);
    } else {
#if defined(__linux__) || defined(__GNU__)
        if (domain_nodot && !empty_str(domain_nodot))
            fprintf(fp, "\n127.0.1.1\t%s.%s\t%s\n", hostname, domain_nodot, hostname);
        else
            fprintf(fp, "\n127.0.1.1\t%s\n", hostname);
#else
        fprintf(fp, "\t%s\n", hostname);
#endif
    }

    fprintf(fp, "\n" IPV6_HOSTS);

    fclose(fp);
}

答案2

在 Debian 上未选中,但应该选中

::1 本地主机 localhost.my.域
127.0.0.1 本地主机 localhost.my.域

(如果您不使用 IPv6,那么您可以忽略以 ::1 开头的行)

编辑:该文件可能是基本安装,而不是来自附加包。

相关内容