通过 Little Snitch 屏蔽 无关娱乐网站
前置 条件
常用网站 若 IP信息固定,优先在 switchhosts 中 进行 写死;
不使用 VPN 时 的网络 -LittleSnitch 接管 DNS解析
走全部进程, IP 和 域名 两个 同步进行屏蔽, 同时 协议和端口要选择全部,
网页 是 应用层, 基本走的是 TCP/UDP 终端 ping 是 ICMP (Internet Control Message Protocol) 协议
使用 VPN时 网络数据包被包含在VPN内 无法解析
启用 VPN 后,流量的路由路径发生了改变,这通常会导致本地的 hosts 文件和普通防火墙规则(如 Little Snitch)失效。这是因为:
流量劫持: 开启 VPN 后,你的系统流量不再直接发往目标服务器,而是先加密发往 VPN 服务器。
路由绕过: 对于 Little Snitch 而言,它可能只看到流量发往了“VPN 进程”或“VPN 网关”,而无法直接过滤 VPN 隧道内部的目标 IP
若要在 VPN 环境下依然屏蔽 v2ex.com,你需要从源头(域名解析)或VPN 内部进行限制。以下是几种可行方案:
- 使用 DNS 过滤(最通用,推荐) 既然 VPN 会接管你的 DNS 请求,最简单的办法是在 DNS 解析阶段就将其拦截。
方法: 使用具有过滤功能的 DNS 服务,如 AdGuard DNS 或配置 NextDNS。
操作:
登录你的 DNS 服务商后台。
在“黑名单 (Deny List)”中添加 v2ex.com。
在 macOS 的“系统设置” -> “网络” -> “DNS”中,将其设置为你配置好的 DNS 服务器。
原理: 当你输入 v2ex.com 时,DNS 服务器会直接返回错误或空地址,你的电脑根本无法获取该网站的真实 IP,VPN 也就无从转发流量。
- 在 VPN 客户端内配置(如果支持) 许多现代 VPN 客户端(如 Clash, Surge, Loon, Quantumult X 等)自带分流与规则过滤功能,这比系统层面的屏蔽更有效。
规则设置: 打开你使用的 VPN 客户端配置文件,在 Rules (规则) 部分添加:
# 以 Clash 规则为例
DOMAIN-SUFFIX,v2ex.com,REJECT
原理: VPN 客户端在处理流量时,会优先匹配该规则。一旦命中 REJECT,流量在进入 VPN 隧道前就会被直接丢弃。- 使用 hosts 文件结合 VPN 模式 部分 VPN 软件提供了“强制使用本地 DNS”的选项。
如果你的 VPN 软件允许“Local DNS”或“FakeIP”模式,请确保你之前的 hosts 映射依然生效。
注意: 如果 VPN 配置为“全局模式(Global)”,它可能会强制使用远程 DNS,从而完全绕过本地的 hosts。此时你需要确保 VPN 配置中开启了 skip-proxy 或类似的本地解析规则。
- 彻底的“物理”屏蔽:路由器层级 这是最彻底的方法,屏蔽所有连接到你家庭 WiFi 的设备对该网站的访问,无论是否有 VPN。
操作: 如果你的路由器支持 OpenWrt 或类似的固件,安装 AdGuard Home 或 dnsmasq 插件,在 DNS 重写或黑名单中添加 v2ex.com。
原理: 无论设备运行什么应用或 VPN,只要经过你的网关,DNS 请求都会被重定向到黑洞地址。
总结建议:
VPN 环境下,不要尝试仅依靠电脑端的防火墙拦截,因为 VPN 往往具有更高的网络优先权。
优先级建议: VPN 客户端规则 (规则列表/Reject) > DNS 服务过滤 (NextDNS) > 路由器黑名单。
验证方法: 开启 VPN 后,在终端输入 dig v2ex.com。如果返回的是 0.0.0.0 或解析失败,则说明拦截成功
graph TD
subgraph "场景 A: 正常直连"
User1[用户设备] -- 1. 请求访问 v2ex.com --> DNS[DNS 服务器]
DNS -- 2. 返回真实 IP --> User1
User1 -- 3. 直接发往 v2ex.com --> LS{Little Snitch}
LS -- 4. 规则匹配/拦截 --> Target1[v2ex.com 服务器]
end
subgraph "场景 B: 开启 VPN 后"
User2[用户设备] -- 1. 请求访问 v2ex.com --> VPN_Client[VPN 客户端/隧道]
VPN_Client -- 2. 流量加密封装 --> VPN_Server[远程 VPN 服务器]
VPN_Server -- 3. 解封/代理访问 --> Target2[v2ex.com 服务器]
LS2{Little Snitch} -.-> VPN_Client
end
style LS fill:#f9f,stroke:#333,stroke-width:2px
style LS2 fill:#eee,stroke:#333,stroke-dasharray: 5 5
概念解读:
流量劫持: 当你开启 VPN,系统所有流量会被强制“注入”到 VPN 建立的虚拟网卡(隧道)中。Little Snitch 原本监控的是“你的应用 $\rightarrow$ 网络接口”的流量,但现在应用面对的是 VPN 隧道,Little Snitch 只能看到“应用 $\rightarrow$ VPN 进程”,而看不清 VPN 内部发往哪里。
路由绕过: 你的数据包在进入 VPN 后,会被 VPN 协议重封装。对于系统底层路由表来说,目的地址不再是 v2ex.com 的 IP,而是 VPN 服务器的 IP。因此,你针对 v2ex.com 设置的拦截规则因为“路由路径的改变”而失效了。
- 为什么优先级更高? 路由器位于 “网络链路的必经之路(网关)”。
防火墙(如 LS): 工作在软件层面(端点),如果软件被规避、VPN 隧道加密或系统权限被绕过,拦截就会失效。
路由器: 是所有设备联网的“物理关口”。无论你的设备如何伪装、加密、甚至运行 VPN,数据包最终必须通过路由器转发出去。在路由器上做的 DNS 劫持或防火墙过滤,属于“上帝视角”,设备无法通过简单的软件设置绕过。
- 路由器的可玩性在哪里? 路由器的可玩性核心在于 “边缘计算” 与 “流量控制”:
DNS 劫持 (AdGuard Home/MosDNS): 不仅能屏蔽广告,还能强制把 v2ex.com 解析到 0.0.0.0,从根源上让局域网内所有设备都无法解析该网站。
透明代理 (OpenWrt/Clash): 把代理软件部署在路由器上,实现“无感知”翻墙,所有连上 WiFi 的设备自动具备过滤和代理能力,无需在手机或电脑上安装任何插件。
流量整形 (QoS): 限制特定设备的带宽,或者优先保障游戏流量。
- 路由器比翻墙软件靠谱吗? 它不是替代关系,而是 “基础设施” vs “端点应用”:
路由器方案的优势:
统一管控: 一次配置,全家所有设备(包括电视、智能家居)受管,不存在绕过问题。
深度集成: 可以结合复杂的分流规则,处理各种诡异的网络环境。
软件方案的优势:
灵活性: 随时切换节点,即插即用,不需要折腾硬件。
总结建议: 如果你想彻底解决屏蔽问题,在路由器上配置 DNS 黑名单(Domain Blocklist)是终极手段。这不需要高级的翻墙知识,只需要在路由器插件中添加一条规则:address=/v2ex.com/#,这样无论是 VPN 还是直连,只要通过该路由,该域名永远无法访问。