|  | 
| # ----------教程3安装配置SniProxy---------- 
 # 项目网址 https://github.com/dlundquist/sniproxy
 
 
 复制代码# 一键安装-二选一
apt install sniproxy
# (推荐)编译安装-二选一
wget --no-check-certificate -O dnsmasq_sniproxy.sh https://raw.githubusercontent.com/myxuchangbin/dnsmasq_sniproxy_install/master/dnsmasq_sniproxy.sh && bash dnsmasq_sniproxy.sh -is
# SniProxy 操作指令:
# 启动
systemctl start sniproxy
# 停止
systemctl stop sniproxy
# 重启
systemctl restart sniproxy
# 状态
systemctl status sniproxy
# 开机自启
systemctl enable sniproxy
# 关闭开机自启
systemctl disable sniproxy
 # 配置文件 /etc/sniproxy.conf
 # 修改清空添加以下内容
 # ----------以下SniProxy配置内容,请把里面内容替换你自己的----------
 
 复制代码user daemon
# PID 文件,需要放在用户可写的目录下.
pidfile /var/run/sniproxy.pid
# 如没有指定,则从 /etc/resolv.conf 加载.
resolver {
        # 指定公共DNS服务器
    nameserver 127.0.0.1
    mode ipv4_only
}
# 监听 80 端口
listener 0.0.0.0:80 {
        # 协议 HTTP
    proto http
    access_log {
            filename /var/log/sniproxy/http_access.log
            priority notice
    }
}
# 监听 443 端口
listener 0.0.0.0:443 {
        # 协议 HTTPS
    proto tls
    access_log {
            filename /var/log/sniproxy/https_access.log
        priority notice
    }
}
# 如果没有指定表,则定义默认的"默认"表.
table {
    # 匹配有效的 Perl 兼容正则表达式
    # 匹配任何主机名
    .* *
}
# ----------以上SniProxy配置内容,请把里面内容替换你自己的----------
 # systemctl restart sniproxy 重启生效
 
 # 接下来,测试下能否成功了.
 # 添加 AdGuardHome 重写列表
 # 在 AdGuardHome里
 # 过滤器 > 自定义过滤规则 > 添加如下:
 # ----------以下AdGuardHome重写内容,请把里面内容替换你自己的----------
 
 复制代码||google.com^$client=~127.0.0.1,dnsrewrite=旁路由IP
||google.com.*^$client=~127.0.0.1,dnsrewrite=旁路由IP
||gstatic.com^$client=~127.0.0.1,dnsrewrite=旁路由IP
||googleusercontent.com^$client=~127.0.0.1,dnsrewrite=旁路由IP
||有图比.com^$client=~127.0.0.1,dnsrewrite=旁路由IP
||googlevideo.com^$client=~127.0.0.1,dnsrewrite=旁路由IP
||googleapis.com^$client=~127.0.0.1,dnsrewrite=旁路由IP
||ytimg.com^$client=~127.0.0.1,dnsrewrite=旁路由IP
||ggpht.com^$client=~127.0.0.1,dnsrewrite=旁路由IP
# ----------以上AdGuardHome重写内容,请把里面内容替换你自己的----------
 
 # 特别注意:这个旁路由IP,是你主路由给旁路由分配的IP,而不是127.0.0.1
 # 例如在主路由上给旁路由绑定静态IP为:192.168.1.11,那就在规则上替换为这个.
 
 # 然后在电脑或者手机打开你的浏览器访问www.google.com 或 www.有图比.com 测试能否访问了.
 
 # 我尽量说得明白给你看,你自己慢慢绕着理解,单独拿出来说
 # ||google.com^$client=~127.0.0.1,dnsrewrite=旁路由IP
 # 匹配google.com域名以及子域名,并排除IP为 ~127.0.0.1 的客户端,然后重写A记录到旁路由IP
 # 由于AdGuardHome在旁路由上运行,并且旁路由默认设置使用的DNS也是为 127.0.0.1 ,所以旁路由的本地IP是127.0.0.1
 # 而 dnsrewrite 的也是旁路由IP,不过这个不是本地的127.0.0.1 IP,而是主路由给旁路由分配的IP,例如:192.168.1.11
 # 由于我们要给局域网的设备把需要上网代理的域名都重写到旁路由IP,让自带v2raya上网代理的旁路由sniproxy处理返回,
 # 所以大家都在同一主路由下并分配了IP,大家要互相访问,那就要用到主路由给的IP了,所以 dnsrewrite 是这样理解.
 # 这个规则就是匹配需要上网代理的域名,并把旁路由设备自身排除在规则外,然后把域名重写A记录IP到旁路由,如果旁路由都应用这个规则就死循环了.
 
 # 上面的那些演示规则,我只测试google和有图比的,更多的请参考:
 # 国内被墙的域名 高墙List https://raw.githubusercontent.com/高墙list/高墙list/master/高墙list.txt 自己下载回用base64解码分析
 # 然后参考这里的 https://github.com/AdguardTeam/AdGuardHome/wiki/Hosts-Blocklists Adblock编写规则语法
 # 写成你自己的规则文件,放在直链下,或者旁路由上安装个http,放在上面.
 # 在AdGuardHome > 过滤器 > DNS 黑名单 > 添加黑名单,添加上规则的直链就行.
 
 此教程由荣耀(nat.ee)原创编写,转载请保留.
 | 
 |