Ubuntu 16.04下无法屏蔽LinkedIn.com的原因及解决方法咨询
为什么LinkedIn无法被屏蔽?以及可行的屏蔽方案
我来一步步拆解你遇到的问题——在Ubuntu 16.04下,hosts和BlockSite都拦不住LinkedIn,大概率是这几个原因,对应解决办法如下:
1. Hosts只屏蔽了单一域名,LinkedIn依赖大量子域名/CDN
LinkedIn的服务分散在很多子域名上,比如静态资源用static.licdn.com、API接口用api.linkedin.com、学习平台用learning.linkedin.com,甚至还有CDN节点的域名。如果你的hosts只加了linkedin.com或者www.linkedin.com,肯定拦不全。
解决办法:
- 把LinkedIn核心相关域名都加到
/etc/hosts里,指向0.0.0.0(比127.0.0.1更高效的屏蔽地址):
0.0.0.0 linkedin.com 0.0.0.0 www.linkedin.com 0.0.0.0 static.licdn.com 0.0.0.0 api.linkedin.com 0.0.0.0 learning.linkedin.com 0.0.0.0 media.licdn.com 0.0.0.0 *.linkedin.com
- 修改后一定要刷新系统DNS缓存:
先装nscd(如果没装):sudo apt-get install nscd
然后重启服务:sudo systemctl restart nscd
或者直接重启网络:sudo service networking restart
2. Firefox的DNS/浏览器缓存拖了后腿
就算系统hosts生效了,Firefox可能还存着之前的解析记录,导致它还能访问LinkedIn。
解决办法:
- 清空Firefox DNS缓存:在地址栏输入
about:networking#dns,点击「清除DNS缓存」按钮。 - 同时清浏览器缓存:按
Ctrl+Shift+Delete,只勾选「缓存」,点击「立即清除」。
3. BlockSite扩展的规则没覆盖全,或者被反屏蔽
有些网站会检测屏蔽类扩展,或者你的BlockSite规则只加了主域名,没覆盖子域名。
解决办法:
- 打开BlockSite设置,添加
*.linkedin.com(通配符匹配所有子域名),而不只是linkedin.com。 - 检查是否开启了「在隐私窗口生效」的选项——如果你常用隐私窗口,这个开关必须打开。
- 要是BlockSite还是不管用,换用uBlock Origin:在它的「我的规则」里添加
*://*.linkedin.com/*,设置为「阻止」,这个扩展的屏蔽逻辑更硬核,不容易被绕过。
4. Firefox开启了DNS-over-HTTPS(DoH),绕过了系统hosts
如果Firefox用了DoH,它会跳过系统的hosts文件,直接用第三方DNS服务器解析域名,导致hosts规则完全失效。
解决办法:
- 在Firefox地址栏输入
about:preferences#privacy,找到「DNS-over-HTTPS」选项,选择「关闭」,或者设置为「仅在使用默认DNS时启用」(确保系统DNS是本地的,不是第三方DoH服务)。
终极方案:用iptables系统级拦截
如果以上方法都不行,直接用防火墙拦截LinkedIn的IP段,这是最彻底的方式。
操作步骤:
- 查询LinkedIn的IP段:用
whois linkedin.com查看它的官方IP范围,或者用dig linkedin.com获取当前解析的IP。 - 执行iptables命令拦截:
sudo iptables -A OUTPUT -d [LinkedIn的IP段] -j DROP
比如查到IP段是108.174.0.0/16,就执行sudo iptables -A OUTPUT -d 108.174.0.0/16 -j DROP。
3. 保存规则防止重启失效:sudo iptables-save > /etc/iptables/rules.v4(如果没有/etc/iptables目录,先执行sudo mkdir -p /etc/iptables)。
内容的提问来源于stack exchange,提问作者Manasvee Kumar
相关产品推荐
相关产品推荐

