Maza 广告拦截
🥇 Hacker News 排名第一
评论: https://news.ycombinator.com/item?id=22717650
一个命令屏蔽所有浏览器中的所有广告
sudo maza start
类似 Pi-hole,但在本地使用您的操作系统。
简单、原生且高效的本地广告拦截器。兼容 MacOS、Linux、BSD 和 Windows 子系统 Linux (WSL) 的 Bash 脚本。
- 仅需 bash 🤖。
- 影响任何已安装的浏览器或软件 😱。
- 您无需安装任何浏览器扩展或应用程序 🚫,只需使用操作系统自带的工具。
- 使用单个命令更新要拦截的 DNS 列表 😎。
- 纯开源 ❤️。
目录
📟 命令
📡 更新数据库
sudo maza update
🔨 启动
sudo maza start
🛠 停止
sudo maza stop
⚖️ 状态
sudo maza status
⚙️ 安装或更新
😥 要求
- bash 4.0 或更高版本
- curl
- 仅限 macOS 用户,gsed:
brew install gnu-sed
然后执行以下操作。
curl -o maza https://raw.githubusercontent.com/tanrax/maza-ad-blocking/master/maza && sudo rm -rf /usr/local/bin/maza && chmod +x maza && sudo mv maza /usr/local/bin
可选但建议备份您的 hosts 文件。
sudo cp /etc/hosts /etc/hosts.backup
🤖 自动更新要拦截的域名
打开您的 cron
。
crontab -e
在末尾添加以下行。
@daily maza update
一些用户报告在 MacOS 上创建守护进程时遇到问题。使用 TERM=dumb
修复。
TERM=dumb
@daily maza update
🔪 卸载
sudo rm /usr/local/bin/maza && sudo rm -r /root/.config/maza
🚫 不拦截特定域名
编辑 /root/.config/maza/ignore
并添加您想忽略的域名。
示例:
ads-twitter.com
ads.twitter.com
默认情况下,以下域名被忽略以避免操作系统出现问题。
localhost
localhost.localdomain
local
broadcasthost
ip6-localhost
ip6-loopback
ip6-localnet
ip6-mcastprefix
ip6-allnodes
ip6-allrouters
ip6-allhosts
0.0.0.0
最后更新 Maza 以应用更改。
sudo maza update
🎯 添加自定义要拦截的域名
如果您想包含自己要拦截的域名,可以将它们添加到 /root/.config/maza/custom-domains
。每个域名必须单独一行,忽略结尾斜杠或协议(http
或 https
)。
例如:
beauty-tea.com
www.expaqua.cloud
ad.about.com
然后更新数据库以重新生成包含您的域名的列表。
sudo maza update
🔒 替代 DNS 列表
默认使用 Yoyo(Peter Lowe)DNS 列表(拦截 3.7k 个域名)。如果您想使用其他列表,例如 Steven Black 的列表(拦截 135k 个域名),您必须在第 8 行添加您的列表 URL。
URL_DNS_LIST_CUSTOM="https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts"
DNSMASQ
不幸的是,hosts 文件不支持子域名(通配符),这对于正确过滤所有 DNS 是必要的。您需要在本地安装服务器来实现这个目的,Maza 支持 Dnsmasq 格式。
MacOS
0 更新 Maza
sudo maza update
1 安装
brew install dnsmasq
2 配置
编辑文件。
/usr/local/etc/dnsmasq.conf
在末尾添加以下行。
conf-file=(您的用户路径)/.config/maza/dnsmasq.conf
示例
conf-file=/Users/myuser/.config/maza/dnsmasq.conf
启动 DNSMASQ。
sudo brew services stop dnsmasq
sudo brew services start dnsmasq
3 告诉您的操作系统使用您的 DNS 服务器
删除 macOS DNS 服务器列表,并添加 3 个地址。第一个将是您的本地服务器,其他 2 个属于 OpenDNS,您可以使用任何其他的。
127.0.0.1
208.67.222.222
208.67.220.220
刷新您的 DNS 缓存
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
4 重启/启动 Maza
sudo maza stop
sudo maza start
Linux (Debian/Ubuntu)
0 更新 Maza
sudo maza update
1 安装
sudo apt update
sudo apt install dnsmasq
2 配置
编辑以下路径的文件。
/etc/dnsmasq.conf
在文件末尾添加以下行。
conf-file=(你的用户路径)/.config/maza/dnsmasq.conf
示例
conf-file=/home/myuser/.config/maza/dnsmasq.conf
启动 DNSMASQ。
sudo systemctl stop dnsmasq
sudo systemctl start dnsmasq
sudo systemctl enable dnsmasq
3 告诉你的操作系统使用你的 DNS 服务器
3.1 Gnome Shell
在 Gnome Shell 中,打开 设置->网络
。点击你的连接。
添加你的本地服务器(dnsmasq),另外两个属于 OpenDNS,你可以使用任何其他的。
127.0.0.1,208.67.222.222,208.67.220.220
3.2 KDE Plasma
在 KDE Plasma 中,打开 设置->网络->连接
。点击你的连接,然后点击 ip4
标签。
方法
:自动(仅地址)。
添加你的本地服务器(dnsmasq),另外两个属于 OpenDNS,你可以使用任何其他的。
DNS 服务器
:127.0.0.1,208.67.222.222,208.67.220.220
。
4 重启/启动 Maza
sudo maza stop
sudo maza start
附加功能:dnsmasq 负责解析所有 DNS
在配置文件中添加:/usr/local/etc/dnsmasq.conf
no-resolv
server=208.67.222.222
server=208.67.220.220
附加功能:dnsmasq 处理 localhost
域名
如果你想让所有 .localhost
域名指向 localhost,请在配置文件中添加:/usr/local/etc/dnsmasq.conf
或 /etc/dnsmasq.conf
。
address=/.localhost/127.0.0.1
☕ 请我喝杯咖啡
帮助我继续改进。
ssh customer@andros.dev -p 5555
💬 获取帮助或与社区交流
[Jabber/XMPP](https://github.com/tanrax/maza-ad-blocking/blob/master/xmpp:maza-ad-blocking@groups.im.andros.dev/?join
🍓 用 MAZA 创建你自己的 PI-HOLE 服务器
你可以轻松地在 Raspberry Pi、VPS 或任何你想要的地方创建自己的 DNS 服务器,只需 10 个命令就可以连接你的设备,这要归功于 Maza。按照教程进行操作。
⚠️ 注意
请记得备份 /etc/hosts
,以防出现意外情况。如果不执行此操作,本项目及其作者将不对任何可能产生的后果负责。