寻求可远程管控Ubuntu设备网站访问的屏蔽工具方案
寻求可远程管控Ubuntu设备网站访问的屏蔽工具方案
Hey there! 看了你的需求——要在Ubuntu上远程管控网站访问对抗拖延,不用太复杂的防绕过机制,还不能影响同住的人,这几个方案应该适合你,都是操作简单、贴合你要求的:
方案一:基于hosts文件+SSH远程控制(零额外软件成本)
这是最基础的方法,利用系统自带的hosts文件拦截网站,再通过SSH远程触发切换,几乎不用装额外工具:
- 第一步:在Ubuntu上开启SSH服务
打开终端,执行以下命令安装并启动SSH:
记住你的Ubuntu设备的局域网IP(可以用sudo apt update && sudo apt install openssh-server sudo systemctl start sshd sudo systemctl enable sshd # 设置开机自启ip a命令查看),还有你的登录用户名和密码。 - 第二步:准备两个hosts配置文件
先备份默认的hosts文件:
然后创建一个用于屏蔽的hosts文件:sudo cp /etc/hosts ~/normal_hosts
编辑cp ~/normal_hosts ~/blocked_hosts~/blocked_hosts,在文件末尾添加要屏蔽的网站,比如:127.0.0.1 facebook.com 127.0.0.1 www.facebook.com 127.0.0.1 twitter.com 127.0.0.1 www.twitter.com - 第三步:远程切换屏蔽状态
从手机(比如用Termius这类SSH客户端)或Windows(直接用PowerShell/CMD输入ssh 你的用户名@Ubuntu的IP)连接到Ubuntu,然后:- 开启屏蔽:
sudo cp ~/blocked_hosts /etc/hosts - 关闭屏蔽:
sudo cp ~/normal_hosts /etc/hosts
- 开启屏蔽:
- 增加一点“门槛”防自己轻易取消
你可以给sudo设置一个单独的密码(和登录密码不同),或者把切换命令写成加密脚本——比如用gpg加密脚本文件,每次运行前需要输入解密密码,这样你临时想取消屏蔽就得费点劲找解密方式,刚好符合你的需求。
方案二:用Cold Turkey Blocker+远程桌面(可视化操作,更直观)
Cold Turkey Blocker是专门对抗拖延的工具,支持Linux(包括Ubuntu),可以设置密码保护,还能一键屏蔽全浏览器的指定网站:
- 第一步:在Ubuntu上安装Cold Turkey Blocker
下载Linux版本的安装包完成安装后,打开工具设置好要屏蔽的网站列表,然后设置一个解锁密码——这个密码别记太牢,或者存在手机里,这样你在Ubuntu本地想取消就得找密码。 - 第二步:开启远程桌面
在Ubuntu的「设置-共享」里开启「远程桌面」,设置好访问密码。 - 第三步:远程控制
手机上用VNC Viewer这类客户端,Windows上用自带的远程桌面连接,输入Ubuntu的IP和远程桌面密码,登录后就可以打开Cold Turkey Blocker,一键开启/关闭屏蔽了。因为本地解锁需要密码,你临时想绕过就得输入密码,满足你的“minor trouble”要求。
方案三:Syncthing同步hosts+定时脚本(适合不想用SSH的用户)
如果你觉得SSH命令太麻烦,可以用Syncthing同步文件,再配合简单的定时脚本自动切换:
- 第一步:在Ubuntu和手机/Windows上安装Syncthing
Syncthing是跨平台的文件同步工具,安装后在Ubuntu上创建一个同步文件夹,比如~/sync_hosts。 - 第二步:准备hosts文件并设置同步
把之前的normal_hosts和blocked_hosts放到同步文件夹里,设置Syncthing自动同步这个文件夹到手机/Windows设备。 - 第三步:写定时脚本自动替换hosts
在Ubuntu上创建一个脚本~/switch_hosts.sh,内容如下:
给脚本加执行权限:#!/bin/bash # 检查同步文件夹里的trigger文件,如果是block就切换到屏蔽模式,normal就恢复 TRIGGER_FILE=~/sync_hosts/trigger if [ -f "$TRIGGER_FILE" ]; then CONTENT=$(cat "$TRIGGER_FILE") if [ "$CONTENT" = "block" ]; then sudo cp ~/sync_hosts/blocked_hosts /etc/hosts elif [ "$CONTENT" = "normal" ]; then sudo cp ~/sync_hosts/normal_hosts /etc/hosts fi # 删除trigger文件避免重复执行 rm "$TRIGGER_FILE" fichmod +x ~/switch_hosts.sh
然后用crontab设置每分钟执行一次:
在打开的文件末尾添加:crontab -e*/1 * * * * /home/你的用户名/switch_hosts.sh - 第四步:远程触发
你在手机/Windows的Syncthing同步文件夹里创建一个叫trigger的文件,内容写block,等待1分钟就会自动屏蔽网站;写normal就恢复。为了增加门槛,你可以把脚本的sudo权限设置成需要密码,或者把同步文件夹加密,这样你本地想取消就得解密文件夹,多一点麻烦。
备注:内容来源于stack exchange,提问作者master bob
相关产品推荐
相关产品推荐

