ABAP CDS View里也能用CAST和CONCAT?手把手教你在S/4 HANA中优雅处理字段
2026/6/7 4:42:29
Pi-hole是一款网络级广告拦截器,通过DNS过滤实现全网去广告。只需将设备DNS指向Pi-hole,即可拦截广告、追踪器和恶意网站。
设备请求 → Pi-hole DNS → 黑名单检查 │ ├── 在黑名单 → 返回0.0.0.0(广告被拦截) │ └── 不在黑名单 → 转发到上游DNS → 返回真实IP# docker-compose.ymlversion:'3.8'services:pihole:image:pihole/pihole:latestcontainer_name:piholehostname:piholeports:-"53:53/tcp"-"53:53/udp"-"80:80/tcp"environment:TZ:'Asia/Shanghai'WEBPASSWORD:'your_password'PIHOLE_DNS_:'223.5.5.5;119.29.29.29'# 上游DNSDNSSEC:'true'volumes:-'./etc-pihole:/etc/pihole'-'./etc-dnsmasq.d:/etc/dnsmasq.d'cap_add:-NET_ADMINrestart:unless-stopped# Ubuntu 18.04+可能有systemd-resolved占用53端口# 检查sudolsof-i :53# 禁用systemd-resolvedsudosystemctl stop systemd-resolvedsudosystemctl disable systemd-resolved# 或者修改配置sudosed-i's/#DNSStubListener=yes/DNSStubListener=no/'/etc/systemd/resolved.confsudosystemctl restart systemd-resolveddocker-compose up -d# 访问Web界面# http://IP/admin# 密码:docker-compose中设置的WEBPASSWORDWeb界面 → Adlists → 添加订阅列表 推荐列表: # 官方默认 https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts # 中国广告域名 https://anti-ad.net/easylist.txt https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-domains.txt # 隐私追踪 https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt# 命令行更新dockerexecpihole pihole -g# 或者Web界面Tools → Update GravityWhitelist → 添加域名 常见需要白名单的域名: - s.youtube.com(YouTube历史记录) - video-stats.l.google.com - www.googleadservices.com(部分网站登录需要)路由器管理界面 → DHCP设置 → DNS服务器 主DNS:Pi-hole的IP地址 备用DNS:留空或8.8.8.8 效果:所有连接路由器的设备自动使用Pi-hole# Windows网络适配器 → IPv4 → DNS服务器 → 手动 首选DNS:Pi-hole的IP# macOS系统偏好设置 → 网络 → 高级 → DNS 添加Pi-hole的IP# Linux# /etc/resolv.confnameserver192.168.1.100# Pi-hole IP# Android/iOSWiFi设置 → 高级 → DNS → 手动 输入Pi-hole的IP# /etc/dnsmasq.d/02-custom.conf# 自定义域名解析address=/nas.home/192.168.1.10address=/router.home/192.168.1.1address=/pihole.home/192.168.1.100# 重启生效docker restart piholeSettings → DNS → Conditional Forwarding 勾选 Use Conditional Forwarding Local network: 192.168.1.0/24 DHCP router: 192.168.1.1 效果:可以通过主机名访问局域网设备Settings → DHCP 启用DHCP服务器后,Pi-hole会: - 自动分配IP - 自动设置DNS为Pi-hole - 显示设备名称 注意:需要先关闭路由器的DHCP# /etc/dnsmasq.d/01-pihole-custom.confcache-size=10000Settings → DNS → Upstream DNS Servers 推荐配置: - 阿里DNS: 223.5.5.5, 223.6.6.6 - 腾讯DNS: 119.29.29.29 - Cloudflare: 1.1.1.1(国内可能慢) 启用选项: ☑️ Use DNSSEC ☑️ Use Conditional Forwarding# 禁用查询日志(提高性能)Settings → Privacy → Privacy level 选择 Anonymous mode# 或者限制日志大小# /etc/pihole/pihole-FTL.confMAXDBDAYS=7使用组网软件(如星空组网)将多个站点组成虚拟局域网后:
家里Pi-hole 公司设备 手机 10.26.0.100 ←── 10.26.0.50 ←── 10.26.0.200 │ │ │ └───────── 虚拟局域网 ────────────┘ 所有设备DNS都指向 10.26.0.100# 公司设备DNS配置echo"nameserver 10.26.0.100">/etc/resolv.conf# 手机配置WiFi/移动网络 → DNS →10.26.0.100# 部署第二个Pi-hole作为备用# 使用Gravity Sync同步配置services:pihole-backup:image:pihole/pihole:latestenvironment:PIHOLE_DNS_:'10.26.0.100'# 主Pi-hole作为上游Total Queries: 总查询数 Queries Blocked: 拦截数量 Percent Blocked: 拦截比例 Domains on Adlists: 黑名单域名数 正常情况: - 拦截比例 10-30% - Top Blocked: 广告域名排行Query Log → 查看所有DNS查询 状态说明: OK (forwarded): 转发到上游DNS OK (cached): 命中缓存 Blocked (gravity): 被黑名单拦截 Blocked (regex blacklist): 被正则规则拦截# 获取统计数据curl"http://pi.hole/admin/api.php?summary"# 禁用Pi-hole(临时关闭)curl"http://pi.hole/admin/api.php?disable=300&auth=TOKEN"# 300秒后自动恢复解决方法: 1. Query Log找到被拦截的域名 2. 添加到白名单 3. pihole restartdns可能原因: 1. 广告和内容同域名(无法拦截) 2. 使用IP直连(绕过DNS) 3. 使用HTTPS DNS(DoH) 解决: - 添加更多黑名单订阅 - 路由器拦截DoH服务器# 检查上游DNS延迟dig@223.5.5.5 www.baidu.com# 更换更快的上游DNS# 或增加缓存大小| 特性 | Pi-hole | AdGuard Home |
|---|---|---|
| 资源占用 | 更低 | 略高 |
| Web界面 | 功能全 | 更现代 |
| DoH/DoT | 需配置 | 内置 |
| 家长控制 | 无 | 有 |
| 加密DNS客户端 | 无 | 有 |
选择建议:
Pi-hole是网络级广告拦截的最佳方案:
| 模块 | 内容 |
|---|---|
| 部署 | Docker一键部署 |
| 配置 | 黑名单订阅、白名单 |
| 客户端 | 路由器/单设备DNS设置 |
| 高级 | 本地DNS、DHCP、条件转发 |
| 多站点 | 组网实现全局去广告 |
效果预期:
本文首发于CSDN,转载请注明出处。