在 Firefox 和 Chrome 上,如何允许本地网络和维基百科(localhost
、、、等)但192.168.1.*
阻止*.wikipedia.org
其他所有内容?本质上是白名单。但是我仍然希望系统上的其他工具能够完全访问互联网,例如git
、wget
等,因此解决方案不能影响它们。
本质上是在浏览器级别而不是系统级别将互联网列入白名单。
答案1
对于 Chrome,您可以使用一个命令行参数:
google-chrome --host-rules="MAP * 127.0.0.1, EXCLUDE wikipedia.org","MAP * 127.0.0.1, EXCLUDE *.wikipedia.org"
这会将每个域映射到本地主机(维基百科除外)。
/usr/lib/firefox/distribution/policies.json
对于 Firefox,请创建包含以下内容的文件:
{
"policies": {
"WebsiteFilter": {
"Block": ["<all_urls>"],
"Exceptions": ["*://wikipedia.org/*","*://*.wikipedia.org/*","*://localhost/*"]
}
}
}
您可以在以下位置找到有关 Firefox 支持的政策的更多信息https://github.com/mozilla/policy-templates
答案2
另一个选择是使用用户脚本(greasmonkey、tampermonkey)将网络列入白名单。
// ==UserScript==
// @name White List
// @version 1
// @grant none
// @run-at document-start
// @match *://*/*
// ==/UserScript==
var hostname = window.location.hostname;
var allowIPs = true;
var whiteList = [
"localhost",
"wikipedia.org",
"askubuntu.com"
];
// https://stackoverflow.com/a/26445549/473368
var ip = allowIPs && /^(?!0)(?!.*\.$)((1?\d?\d|25[0-5]|2[0-4]\d)(\.|$)){4}$/.test(hostname);
var listed = false;
for (var x in whiteList) {
if (hostname.indexOf(whiteList[x]) != -1) {
listed = true;
break;
}
}
// Not an IP? Not a whitelisted domain? Block it!
if (!ip && !listed) {
document.documentElement.remove();
}