这个问题看似微不足道,但过去 36 个月里,我一直幻想着在 hosts.deny 文件中输入的内容会阻止我的计算机访问这些网站。但有些网站仍然能访问并建立连接。
但是上周我将我的整个 hosts.deny 列表放入了 hosts 文件中,现在我想要阻止的所有内容都被阻止了。
如果在 hosts 文件中有 hosts.deny 就可以解决问题,为什么还要使用 hosts.deny?
我所说的阻止是指
127.0.0.1 某个站点.topdomain
大约一年前,我问过类似的问题,但那时我还没有尝试将所有内容都放入 hosts 文件中,而且似乎没有人能将这些点联系起来。
答案1
它们由不同的工具使用。请参阅man hosts;man tcpd
。
/etc/hosts.deny
是 TCP Wrappers 包的一部分tcpd
(参见维基百科),并充当类似守护进程和目标 TCP 服务之间的中介inetd
,并用作传入 TCP 连接的访问控制机制。
/etc/hosts
是系统查找 URI 并将主机名转换为 IP 地址的一部分,用于传出 TCP/IP 请求。