教程:旁路由DNS翻墙—-新玩法,只需主路由改DNS就行。

34次阅读

共计 6048 个字符,预计需要花费 16 分钟才能阅读完成。

内容最后由 nat.ee 于 2023-6-20 17:56 编辑 # 前话# 传统意义上来说,使用旁路由翻墙,需要修改主路由的网关为旁路由 IP,# 又或者需要翻墙的设备修改网络的静态 IP 地址里的网关为旁路由 IP,# 并且不管你有没有翻墙,那么你的网络数据都要走一遍到旁路由处理,# 此教程实现的是,只把需要翻墙的域名走旁路由处理,而且不用修改网关,# 只需要修改主路由的 DNS 为旁路由的 IP 就行,真正做到旁路由挂了,也不影响主路由网络。# 因为主路由下可设置两个 DNS,当第一个主 DNS 失败,会使用备用 DNS 查询。# 适合 Debian / Ubuntu / Armbian / DietPi# 不建议用 OpenWrt 当旁路由系统,有局限性,换成完整的 Linux 体验吧,可玩更多。# 操作安装以下程序前,请先关闭旁路由系统的防火墙,# 并且确保 [53/80/443] 端口未被占用。# 在主路由上给你的旁路由绑定静态 IP# 示例:主路由 IP: 192.168.1.1 旁路由器 IP: 192.168.11# ———- 教程 1 安装配置 AdGuardHome———-# 项目网址 https://github.com/AdguardTeam/AdGuardHome# 安装 AdGuard Home# 安装所需依赖 apt-get updateapt-get install curl sudo -y# 一键下载安装 curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s — -v# AdGuardHome 操作指令:# 启动 sudo /opt/AdGuardHome/AdGuardHome -s start# 停止 sudo /opt/AdGuardHome/AdGuardHome -s stop# 重启 sudo /opt/AdGuardHome/AdGuardHome -s restart# 状态 sudo /opt/AdGuardHome/AdGuardHome -s status# 安装 sudo /opt/AdGuardHome/AdGuardHome -s install# 卸载 sudo /opt/AdGuardHome/AdGuardHome -s uninstall 复制代码# 安装成功后,浏览器打开 http://IP:3000# 首次安装配置# 网页管理界面 > 监听接口 - 选择 [所有接口] > 端口 - 填[3000]# DNS 服务器 > 监听接口 - 选择[所有接口] > 端口 - 填[53]# 配置文件 /opt/AdGuardHome/AdGuardHome.yaml# 优化设置# 设置 > DNS 设置 > 上游 DNS 服务器 - 填多个国内公共 DNS# 设置 > DNS 设置 > 上游 DNS 服务器 > 选择 - 并行请求# 设置 > DNS 设置 > 上游 DNS 服务器 > Bootstrap DNS 服务器 > 添加国内公共 DNS# 设置 > DNS 设置 > DNS 服务配置 > 速度限制 - 填[0]# 设置 > DNS 设置 > DNS 服务配置 > 选择 - 禁用 IPv6 地址的解析# 设置 > DNS 设置 > DNS 缓存配置 > 缓存大小 - 填[16777216] > 覆盖最小 TTL 值 - 填[300] > 覆盖最大 TTL 值 - 填[1800] > 选择 - 乐观缓存# 设置 > DNS 设置 > 访问设置 > 允许的客户端 - 留空# 安装 resolvconf 配置旁路由 本地 DNSapt-get install resolvconf -y# 编辑 /etc/resolvconf/resolv.conf.d/head 文件# 添加 nameserver 127.0.0.1nameserver 192.168.1.1 复制代码# 127.0.0.1 为旁路由本地 IP,而 192.168.1.1 为主路由 IP# 优先使用 127.0.0.1,如果查询失败就用 192.168.1.1# 在你的主路由 DHCP 里,修改 DNS 设置# 第一条填旁路由的 IP,让旁路由的 AdGuard Home 优先接管 DNS.# 第二条填主路由的 IP,让主路由备用接管 DNS.# ———- 分割线 ———-# ———- 教程 2 安装配置 V2raya———-# 官网 https://v2raya.org/# 安装所需依赖 apt-get updateapt-get install nftables wget curl sudo -y# 安装 V2Ray 内核# 一键下载安装 - 二选一 bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)# 一键下载安装 - 二选一 curl -Ls https://mirrors.v2raya.org/go.sh | sudo bash# 安装后可以关掉服务,因为 v2rayA 不依赖于该 systemd 服务。sudo systemctl disable v2ray –now# 安装 v2rayA# 添加公钥 wget -qO – https://apt.v2raya.org/key/public-key.asc | sudo tee /etc/apt/trusted.gpg.d/v2raya.asc# 添加 V2RayA 软件源 echo "deb https://apt.v2raya.org/ v2raya main" | sudo tee /etc/apt/sources.list.d/v2raya.listsudo apt updatesudo apt install v2raya# 启动 v2rayAsudo systemctl start v2raya.service# 设置开机自动启动 sudo systemctl enable v2raya.service 复制代码# 安装成功后,浏览器打开 http://IP:2017# 在第一次进入页面时,你需要创建一个管理员账号,请妥善保管你的用户名密码,如果遗忘,使用 sudo v2raya –reset-password 命令重置。设置 > 透明代理 / 系统代理 > 选择 - 启用:分流规则与规则端口所选模式一致 > 开启 IP 转发设置 > 透明代理 / 系统代理实现方式 > 选择 -tproxy 设置 > 规则端口的分流模式 > 选择 -RoutingA > 配置 > 清空并添加以下内容:# ———- 以下 v2rayA 配置内容,请把里面内容替换你自己的 ———-# 默认全局代理 default: proxy# 目的 IP 规则# 梯子 IP 直连 ip(xxx.xxx.xxx.xxx) -> direct# 路由器 IP 直连 ip(192.168.1.1/24) -> direct# 国内 IP 和本地 IP 直连 ip(geoip:private,geoip:cn) -> direct# 国内域名 直连 domain(geosite:cn) -> direct# 目的端口规则# Adguard Home DNS 直连 port(53) -> direct 复制代码# ———- 以上 v2rayA 配置内容,请把里面内容替换你自己的 ———- 设置 > 自动更新订阅 > 选择 - 每隔一段时间更新订阅(单位:小时)> 填[12] 设置 > 解析订阅链接 / 更新时优先使用 > 选择 - 跟随规则端口# 永久开启路由转发# 修改 /etc/sysctl.conf 文件# 添加 net.ipv4.ip_forward = 1 复制代码# 让其即刻生效 sysctl -p# 记得把你的梯子添加好,然后运行。# 在本地 ssh 测下能否正常翻。例如:curl -L www.google.com# ———- 分割线 ———- nat.ee 2023-06-20 17:51 2# ———- 教程 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# 修改清空添加以下内容# ———- 以下 SNI Proxy 配置内容,请把里面内容替换你自己的 ———-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 兼容正则表达式     # 匹配任何主机名     .* *}复制代码# ———- 以上 SNI Proxy 配置内容,请把里面内容替换你自己的 ———-# systemctl restart sniproxy 重启生效# 接下来,测试下能否成功了。# 添加 AdGuardHome 重写列表# 在 AdGuardHome 里# 过滤器 > 自定义过滤规则 > 添加如下:# ———- 以下 AdGuard Home 重写内容,请把里面内容替换你自己的 ———-||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||YouTube.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 复制代码# ———- 以上 AdGuard Home 重写内容,请把里面内容替换你自己的 ———-# 特别注意:这个旁路由 IP,是你主路由给旁路由分配的 IP,而不是 127.0.0.1# 例如在主路由上给旁路由绑定静态 IP 为:192.168.1.11,那就在规则上替换为这个。# 然后在电脑或者手机打开你的浏览器访问 www.google.com 或 www.YouTube.com 测试能否访问了。# 我尽量说得明白给你看,你自己慢慢绕着理解,单独拿出来说# ||google.com^$client=~127.0.0.1,dnsrewrite= 旁路由 IP# 匹配 google.com 域名以及子域名,并排除 IP 为 ~127.0.0.1 的客户端,然后重写 A 记录到旁路由 IP# 由于 AdGuard Home 在旁路由上运行,并且旁路由默认设置使用的 DNS 也是为 127.0.0.1,所以旁路由的本地 IP 是 127.0.0.1# 而 dnsrewrite 的也是旁路由 IP,不过这个不是本地的 127.0.0.1 IP,而是主路由给旁路由分配的 IP,例如:192.168.1.11# 由于我们要给局域网的设备把需要翻墙的域名都重写到旁路由 IP,让自带 v2rayA 翻墙的旁路由 SNI Proxy 处理返回,# 所以大家都在同一主路由下并分配了 IP,大家要互相访问,那就要用到主路由给的 IP 了,所以 dnsrewrite 是这样理解。# 这个规则就是匹配需要翻墙的域名,并把旁路由设备自身排除在规则外,然后把域名重写 A 记录 IP 到旁路由,如果旁路由都应用这个规则就死循环了。# 上面的那些演示规则,我只测试 Google 和 YouTube 的,更多的请参考:# 国内被墙的域名 高墙 List https://raw.githubusercontent.com/ 高墙 list/ 高墙 list/master/ 高墙 list.txt 自己下载回用 base64 解码分析# 然后参考这里的 https://github.com/AdguardTeam/AdGuardHome/wiki/Hosts-Blocklists Adblock 编写规则语法# 写成你自己的规则文件,放在直链下,或者旁路由上安装个 http,放在上面。# 在 AdGuard Home > 过滤器 > DNS 黑名单 > 添加黑名单,添加上规则的直链就行。此教程由荣耀 (nat.ee) 原创编写,转载请保留。nat.ee 2023-06-20 17:56 3 相信各位都了解过 奈飞 DNS 解锁吧,我这个原理是相同的,利用了 SNI Proxy,不过是在本地使用。别忘了,给你的规则添加上这些解锁网站的,看这里 https://raw.githubusercontent.com/ab77/netflix-proxy/master/proxy-domains.txt crazynet 2023-06-20 17:57 4 先回帖,回头研究一下 blacklife 2023-06-20 17:57 5 有些服务用的不止 80 443 就挂壁了 Rece 2023-06-20 17:58 6 感谢大佬分享 hcyme 2023-06-20 17:59 7 只相信 vlan

正文完
 0