Ubuntu /etc/hosts 地址格式为 *.*.*.*

Bjo*_*orn 5 ubuntu hosts

假设一个网站没有像这样的域名www.google.com,连接到它的唯一方法是使用像216.58.212.68. 如果我添加一个/etc/hosts看起来像的条目,它0.0.0.0 216.58.212.68会阻止与该网站的连接吗?网络浏览器也会被阻止访问吗?

此外,这也适用于本地地址192.168.0.1吗?

Tim*_*edy 14

不会。hosts 文件不会影响任何路由。它只影响名称查找。由于216.58.212.68是 IP 地址,系统不会在主机表中查找它。

在此处阅读有关主机文件的更多信息:http : //manpages.ubuntu.com/manpages/trusty/man5/hosts.5.html

如果您想阻止从您的系统到 IP 地址的连接,有几种方法可以做到这一点,例如:

  1. 黑洞流量使用route命令:

    route add 216.58.212.68 gw 127.0.0.1 lo
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用以下route命令拒绝流量:

    route add -host 216.58.212.68 reject
    
    Run Code Online (Sandbox Code Playgroud)
  3. 空路由使用ip命令:

    ip route add blackhole 216.58.212.68/32
    
    Run Code Online (Sandbox Code Playgroud)

现在,如果您想按名称阻止流向系统的流量,您可以在主机文件中添加一个假条目,将该名称指向回送地址:

127.0.0.1    badactor.evil.com
Run Code Online (Sandbox Code Playgroud)

然后,任何试图从您的系统到达该主机的流量都将被伪造——只要您的系统设置为在 DNS 之前使用主机文件查找。任何特定的基于 DNS 的查找仍然有效,尽管您可以使用像Pi Hole这样的 DNSMASQ 服务器来阻止甚至 DNS 查找。

请确保您阅读了routeip命令的手册页,以便您了解如何在需要时使这些命令在重新启动后保持不变。