当前位置: 首页>>技术教程>>正文


Ubuntu/etc/hosts地址为*。*。*。*

,

问题描述

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

此外,这是否也适用于本地地址,例如192.168.0.1

最佳方法

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

在此处阅读有关主机文件的更多信息: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
    
  2. 使用route命令拒绝流量:

    route add -host 216.58.212.68 reject
    
  3. 使用ip命令的空路由:

    ip route add blackhole 216.58.212.68/32
    

现在,如果您要按名称阻止到系统的通信,则可以在您的主机文件中添加一个伪造的条目,将该名称指向回送地址:

127.0.0.1    badactor.evil.com

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

确保已阅读routeip命令的手册页,因此,如果需要,您将了解如何使这些命令在重新引导后保持不变。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8367.html,未经允许,请勿转载。