宿主文件

宿主文件

我正在尝试远程屏蔽我 ubuntu 电脑上的网站,以帮助解决拖延问题。因此,我可以在 ubuntu 和智能手机(或辅助 Windows PC)上安装一个程序,当我在智能手机上运行它时,它会阻止访问 ubuntu 上的某些网站,理想情况下是所有浏览器上的网站。类似于 Qustodio 为 Windows 所做的,或远程 leechblock。

我没有太多纪律问题或技术知识,所以不需要某种难以绕过的系统。如果我可以从辅助设备打开和关闭它,并且需要经历一些小麻烦才能在 ubuntu 上禁用它,例如卸载它或需要查找密码或技术知识,那就足够了。我不是一个人住,所以我不能在整个网络上屏蔽网站。

谢谢!

答案1

宿主文件

我们要做的基本上是复制您的原件,/etc/hosts.conf然后编辑它并让所有麻烦的网站(例如 Facebook)指向您自己的计算机(127.0.0.1),以便加载这些网站失败(除非您正在运行自己的网络服务器)。

块文件

创建以下文件并调用它/etc/hosts.bob.block(尽管确切的名称并不重要):

127.0.0.1   localhost
# WARNING: I am assuming your computer's name is bob. If not, grab it from /etc/hosts.conf
127.0.1.1   bob

# 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

127.0.0.1   www.youtube.com
127.0.0.1   youtube.com
127.0.0.1   www.facebook.com
127.0.0.1   www.facebook.com.ar
127.0.0.1   www.9gag.com
127.0.0.1   9gag.com
127.0.0.1   www.twitter.com
127.0.0.1   twitter.com

启用文件

我们需要对您现有的原始 Host 文件进行备份,并将其命名为hosts.bob.enable

sudo cp /etc/hosts /etc/hosts.bob.enable

在本地搜索

要阻止被禁止的网站:

sudo cp /etc/hosts.bob.block /etc/hosts

要再次启用被禁止的网站:

sudo cp /etc/hosts.bob.enable /etc/hosts

就我个人而言,我将这两个包装到名为enable_internet.sh和的脚本中disable_internet.sh,并将它们放在我的主文件夹中。

准备从 KDE Con​​nect 以 sudo 身份运行

我们将使用KDE 连接从手机切换互联网。它应该已经安装在您的计算机上。

否则只需运行:

sudo apt install kdeconnect

但是 KDE Con​​nect 无法以 sudo 形式运行命令。我们需要修复它。

您可以关注这个答案来自 Unix Stack Exchange,它创建了一个简单的 C 程序并解决了该问题(使用 SUID 位):

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
  
int main()
{
  setuid(0);
  system("cp /etc/hosts.bob.block /etc/hosts");
  return 0;
}

制作一个应用程序来启用它,制作另一个应用程序来禁用它。

出于安全原因,请安装您在中创建的应用程序/usr/local/bin并确保它由 root 拥有。

我们将把这两个 C 程序称为enable_internetdisable_internet

通过手机切换支持

KDE 连接支持从您的手机发出远程命令;预先记录在您的系统上。

首先将手机与电脑配对。你可以在网上查看如何操作,其实很简单(不需要蓝牙,只要在同一个 Wi-Fi 上就足够了)

其次,在您的计算机上打开 KDE Con​​nect Indicator(如果未运行,请启动 KDE Con​​nect Indicator 应用程序),右键单击->配置。

选择您的手机。然后搜索Run commands在 KDE Con​​nect 中运行命令

点击空白框并添加启用选项和禁用选项:

KDE Con​​nect 中的命令

就是这样。

现在您应该能够在手机中看到命令,您可以来回切换:

从手机上看到的命令

评论

浏览器(例如 Chrome)在内部缓存 DNS 查询,因此如果您禁用互联网并且已经访问过这些网站;您可能仍然可以访问被阻止的网站(如 Youtube)几分钟。

重新启动浏览器应该可以解决这个问题。

再次启用互联网也是如此,尽管 DNS 解析失败时浏览器会更加激进;并且通常需要刷新一到三次才能访问现已解除阻止的网站。

相关内容