N1设备部署实现Frp + DNS域名解析 + PassWall科学上网方案

N1设备部署实现Frp + DNS域名解析 + PassWall科学上网方案

问题:如何实现域名在局域网中访问时,直接解析到指定的内网主机ip,在非局域网访问时,解析到公网主机ip。N1作为旁路由,为局域网所有设备提供DNS域名解析服务。N1可以完美实现局域网内,域名映射不同的本地ip。但主机如果开启VPN科学上网时,VPN会强制接管DNS解析服务,执行自己的DNS解析,导致N1设备域名映射服务被绕过,域名内网解析出现异常。

方案:

1.为了解决开发主机开启科学上网时, VPN会在系统代理上强制走VPN的DNS服务,绕过N1的DNS服务。

N1 安装Kwrt 25.12-SNAPSHOT-06.27.2026 系统,做为旁路由(192.168.1.2),主路由器设置dns为192.168.1.2 ,N1 目前部署安装AdGuard Home并监听53端口提供DNS本地域名解析,dnsmasq改为监听5353端口。

N1设备当前的架构下,DNS 的数据流向顺序为:

客户端(192.168.1.114) -> AdGuard Home (53) -> Dnsmasq (5353) -> Passwall (做国内外 DNS 分流与防污染)

为了确保既能通过 Passwall 正常科学上网(进行正确的国内外 DNS 分流),又能保留 AdGuard Home 的广告过滤和本地域名解析能力,请按照以下步骤进行配置:

一、 配置 AdGuard Home (53端口)

AdGuard Home 作为全局 DNS 入口,负责接管客户端请求、过滤广告及解析自定义本地域名,然后将非本地域名解析请求转发给 Dnsmasq。

  1. 进入 AdGuard Home 管理界面 -> 设置 -> DNS 设置
  2. 上游 DNS 服务器 (Upstream DNS servers)
    • 填写:127.0.0.1:5353
    • 作用:将所有常规解析请求交给改为 5353 端口的 Dnsmasq
  1. DNS 缓存
    • 建议将 AdGuard Home 内部缓存大小设为 0 或较小值,避免影响 Passwall 动态 IP 规则更新。建议直接关闭DNS缓存
  1. 自定义 DNS 映射 / 本地域名
    • DNS 重写 中添加你的本地域名解析

二、 配置 Dnsmasq (5353端口)

Dnsmasq 作为桥梁,一方面处理系统底层的本地域名规则,另一方面与 Passwall 无缝对接。

  1. 进入 OpenWrt 后台 -> 网络 -> DHCP/DNS
  2. 基本设置
    • DNS 监听端口:设为 5353(已按你的要求修改)。
  1. 高级设置
    • 勾选 本地 server 优先 (Locally served domains)
  1. 动态 DHCP 租约自定义主机名(可以在此处定义局域网内其他设备的 IP/域名映射,AdGuard Home 会通过 Dnsmasq 读取到)。

三、 配置 Passwall (DNS 分流设置)

Passwall 将直接托管 Dnsmasq 的上游请求,实现“国内域名走国内 DNS,国外域名走远程加密 DNS/节点”的高效分流。

  1. 进入 Passwall -> 基本设置 -> DNS 设置(或DNS分流页签):
  2. DNS 分流模式:选择 Dnsmasq
  3. Dnsmasq 重定向:关闭,否则导致本地域名解析不成功

四、 客户端与旁路由网络设置 (针对 192.168.1.114)

为保证特定设备(192.168.1.114)的流量和 DNS 完美经过 N1,需要检查以下配置:

方案 A:单设备手动指定(推荐测试使用)

192.168.1.114 设备的网络属性中手动设置:

  • IP 地址192.168.1.114
  • 子网掩码255.255.255.0
  • 默认网关192.168.1.2(指向 N1 旁路由)
  • 首选 DNS192.168.1.2(指向 N1 的 AdGuard Home 53端口)

方案 B:主路由器 全局/DHCP 指定

  • 主路由 DHCP 设置中:将 默认网关 设为 192.168.1.2,将 DNS 服务器 设为 192.168.1.2

五、 N1 本身网络防环路设置(关键)

作为旁路由,N1 本身的 DNS 绝不能 指向自己(127.0.0.1192.168.1.2),否则容易引发 DNS 解析环路死锁。

  1. 进入 OpenWrt 后台 -> 网络 -> 接口 -> lan -> 编辑
  2. IPv4 网关:填写主路由 IP 192.168.1.1
  1. 使用自定义的 DNS 服务器:填写国内可靠的外部 DNS,如 223.5.5.5119.29.29.29(切勿填 127.0.0.1)。

完整的解析路径逻辑

当客户端 192.168.1.114 发起域名访问时:

  1. 查询请求 -> 发送到 N1 的 192.168.1.2:53 (AdGuard Home)。
  2. AdGuard Home 判断
    • 若是本地域名黑名单广告 -> 直接返回自定义 IP 或拦截。
    • 若是普通域名 -> 转发给 127.0.0.1:5353 (Dnsmasq)。
  3. Dnsmasq / Passwall 判断
    • 国内域名(如 baidu.com) -> 直连国内 DNS(223.5.5.5)解析,返回真实 IP,流量走主路由直连。
    • 国外域名(如 google.com) -> 走代理节点安全解析,返回无污染 IP,流量经 Passwall 代理转发。

常见问题:

1.FTP无法正常登录问题解决方案

Passwall 代理接管了 FTP 流量但未开放高位数据端口

如果是连接公网/外网 FTP 服务器,Passwall 的透明代理(Sing-Box)默认只拦截常见的 TCP 端口(如 80、443、21)。当 FTP 切换到被动模式建立高位数据通道时(如 10000~20000 端口),这些动态端口如果没有被代理正确转发或放行,就会导致连接超时。

  • 解决方法
    • 打开 Passwall 后台,将该 FTP 服务器的 IP 地址域名 添加到 “直连名单” (Bypass List),让 FTP 流量不经过 Sing-Box 代理内核,直接由 N1 转发出去。
Comments are closed.