效果
- 运行屏蔽脚本,将静默调整防火墙设置,不弹出窗口、不留痕迹。
- 正在访问的网页会即时显示“连接被屏蔽”。
- 重启电脑后,屏蔽仍会保留。
- 运行解除屏蔽脚本后,所有屏蔽都会解除。
用法
然后进行下述操作:
- 编辑 0_Domains.txt。每行填写一个需要屏蔽的域名;
- 建立屏蔽:运行 1_Block.vbs 即可。可能需要授予管理员权限;
- 解除屏蔽:运行 1_Unblock.vbs 即可。可能需要授予管理员权限。
原理
通过 Windows 防火墙阻止特定域名的IP地址的入站和出站连接来实现域名屏蔽。
防火墙规则可以在 wf.msc(高级安全 Windows Defender 防火墙)中查看。
2_Block.ps1 是用于建立屏蔽的脚本,它会:
- 读取域名列表。从 0_Domains.txt 文件读取需要屏蔽的域名
- DNS解析。对每个域名进行 DNS 解析,获取其对应的 IP 地址(支持 IPv4 和 IPv6)
- 创建防火墙规则。
- 对每个 IP 地址创建出站和入站规则。
- 规则命名格式:
2_Block domain.com (1.2.3.4) Out/In
2_Unblock.ps1 是用于解除屏蔽的脚本,它会:
- 查找并删除所有名称以 "2_Block " 开头的防火墙规则。
- 因此,如有不希望被自动解除屏蔽的规则,只需去
wf.msc 修改规则名称即可。
限制
操作系统需为 Windows 10 / 11。
只能屏蔽整个域名(如https://www.msn.cn/),不能精确屏蔽某个 URL(如https://www.msn.cn/zh-cn/sports/)。
附注
- 脚本可搭配 ClassIsland 自动化使用,例如:
- 在上课前解除屏蔽。
- 下课后(或午晚休时)建立屏蔽。
- 如果只需要对 Edge 进行屏蔽,使用 Url Disabler 这个软件是很优雅的方案。
- 坐和放宽。