标签 hosts 下的文章

网上有许多持续维护的含有不同垃圾域的有用列表。将这些列表复制到你的主机文件中可以轻松阻止大量的域,你的系统将根本不用去连接它们。此方法可以在不安装浏览器插件的情况下工作,并且将为系统上任何浏览器(和任何其他程序)提供阻止操作。

在本教程中,我将向你展示如何在 Linux 中启动并运行 Steven Black 的统一主机脚本。该脚本将使用来自多个来源的最新已知的广告服务器、网络钓鱼网站和其他网络垃圾的地址来更新你的计算机主机文件,同时提供一个漂亮、干净的方式来管理你自己的黑名单/白名单,其分别来自于该脚本管理的各个列表。

在将 30,000 个域放入主机文件之前,需要注意两点。首先,这些巨大的列表包含可能需要解除封锁的服务器,以便进行在线购买或其他一些临时情况。如果你弄乱了你的主机文件,你要知道网上的某些东西可能会出现问题。为了解决这个问题,我将向你展示如何使用方便的打开/关闭开关,以便你可以快速禁用你的阻止列表来购买喜马拉雅盐雾灯(它是等离子灯)。我仍然认为这些列表的目的之一是将所有的一切都封锁(有点烦人,直到我想到了做一个关闭开关)。如果你经常遇到你需要的服务器被阻止的问题,只需将其添加到白名单文件中即可。

第二个问题是性能受到了轻微的影响, 因为每次调用一个域时, 系统都必须检查整个列表。只是有一点点影响, 而没有大到让我因此而放弃黑名单,让每一个连接都通过。你具体要怎么选择自己看着办。

主机文件通过将请求定向到 127.0.0.1 或 0.0.0.0(换句话说定向到空地址)来阻止请求。有人说使用 0.0.0.0 是更快,问题更少的方法。你可以将脚本配置为使用 -ip nnn.nnn.nnn.nnn 这样的 ip 选项来作为阻止 ip,但默认值是 0.0.0.0,这是我使用的值。

我曾经将 Steven Black 的脚本做的事每隔一段时间就手动做一遍,进到每一个站点,将他们的列表拷贝/粘贴到我的主机文件中,做一个查找替换将其中的 127 变成 0 等等。我知道整件事情可以自动化,这样做有点傻,但我从来没有花时间解决这个问题。直到我找到这个脚本,现在这事已经是一个被遗忘的杂务。

让我们先下载一份最新的 Steven Black 的代码拷贝(大约 150MB),以便我们可以进行下一步。你需要安装 git,因此如果还没安装,进入到终端输入:

sudo apt-get install git

安装完之后,输入:

mkdir unifiedhosts
cd unifiedhosts
git clone https://github.com/StevenBlack/hosts.git
cd hosts

当你打开了 Steven 的脚本时,让我们来看看有什么选项。该脚本有几个选项和扩展,但扩展我不会在这里提交,但如果你到了这一步并且你有兴趣,readme.md 可以告诉你所有你需要知道的。

你需要安装 python 来运行此脚本,并且与版本有关。要找到你安装的 Python 版本,请输入:

python --version

如果你还没安装 Python:

sudo apt-get install python

对于 Python 2.7,如下所示,输入 python 来执行脚本。对于 Python 3,在命令中的 python 替换成 python3。执行后,该脚本会确保它具有每个列表的最新版本,如果没有,它会抓取一个新的副本。然后,它会写入一个新的主机文件,包括了你的黑名单/白名单中的任何内容。让我们尝试使用 -r 选项来替换我们的当前的主机文件,而 -a 选项可以脚本不会问我们任何问题。回到终端:

python updateHostsFile.py -r -a

该命令将询问你的 root 密码,以便能够写入 /etc/。为了使新更新的列表处于激活状态,某些系统需要清除 DNS 缓存。在同一个硬件设备上,我观察到不同的操作系统表现出非常不同的行为,在没有刷新缓存的情况下不同的服务器变为可访问/不可访问所需的时间长度都不同。我已经看到了从即时更新(Slackware)到重启更新(Windows)的各种情况。有一些命令可以刷新 DNS 缓存,但是它们在每个操作系统甚至每个发行版上都不同,所以如果没有生效,只需要重新启动就行了。

现在,只要将你的个人例外添加到黑名单/白名单中,并且只要你想要更新主机文件,运行该脚本就好。该脚本将根据你的要求调整生成的主机文件,每次运行文件时会自动追加你额外的列表。

最后,我们来创建一个打开/关闭开关,对于打开和关闭功能每个都创建一个脚本,所以回到终端输入下面的内容创建关闭开关(用你自己的文本编辑器替换 leafpad):

leafpad hosts-off.sh

在新文件中输入下面的内容:

#!/bin/sh
sudo mv /etc/hosts /etc/hostsDISABLED

接着让它可执行:

chmod +x hosts-off.sh

相似地,对于打开开关:

leafpad hosts-on.sh

在新文件中输入下面的内容:

#!/bin/sh
sudo mv /etc/hostsDISABLED /etc/hosts

最后让它可执行:

chmod +x hosts-on.sh

你所需要做的是为每个脚本创建一个快捷方式,标记为 HOSTS-ON 和 HOSTS-OFF,放在你能找到它们的地方。


via: https://www.darrentoback.com/this-script-updates-hosts-files-using-a-multi-source-unified-block-list-with-whitelisting

作者:dmt 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

亲爱的ubuntu极客们,

在本教程中我将教你如何通过编辑/etc/hosts文件来屏蔽在Ubuntu Linux上不受欢迎的网站,这是用来处理DNS和Linux网络的系统文件。

我很喜欢这种方法,因为我不需要依靠第三方应用程序,这是非常容易使用的。您需要做的就是在/etc/hosts文件文件中做一个简单的变化。

请确保您有使用此方法时在机器上处于root用户访问状态,因为/etc/hosts文件文件由root用户拥有的,所以它不能被不被普通用户编辑。

编辑 /etc/hosts 文件您需要什么?root权限和一个文本编辑器。

在本教程中我将用我喜欢的文本编辑器,vim。好了,打开一个新的终端(CTRL+ALT+T),然后运行下面的命令来打开/etc/hosts文件进行编辑。

vim /etc/hosts

添加下面这行

127.0.0.1   domain.com

更换domain.com为你要屏蔽的网站,你完成了编辑处理后,保存该文件并退出。

现在是时候来测试该方法是否成功了。尝试访问你屏蔽的网站。

我的表弟是沉迷于Facebook的社交网络,每次他发现我的笔记本电脑的时候,他就打开它,并去facebook.com陪陪他的朋友。

我应该怎么做呢?

我编辑/etc/hosts文件,这样他想访问的网站就像已关闭了一样。

您也可以使用这个方法来保护孩子免受互联网成人内容的危害,如色情和恐怖电影。


via: http://www.unixmen.com/block-website-ubuntu/

译者:乌龙茶 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出