总述

我们常常会遇到我们ping或者nslookup一个外部站点,但是返回的却是我们的内部的一个保留内网ip地址,这种情况就是因为我们的DNS走的是我们网卡的53端口,我们网卡再进行处理,将处理后的结果返回给一个内网的保留地址再返回给我们主机,这种情况下我们想要绕过网卡的DNS而是使用我们自己设定的DNS地址,就要在本地也开启一个53端口的DNS服务,然后将网卡的DNS地址改为我们本地的localhost 127.0.0.1,这样我们本地的DNS解析就会通过我们的127.0.0.1:53 这个端口进行服务了,而非再走向网卡的DNS解析地址端口。

使用工具

dnscrypt-proxy:

https://github.com/DNSCrypt/dnscrypt-proxy

操作流程

1. 编辑 dnscrypt-proxy.toml

重点修改或确认以下几项:

###########################
# 服务器列表
###########################
# 这里选择你信任的 DNS over HTTPS / DNSCrypt 提供商。
# 官方已经默认启用了多个,你也可以去 https://dnscrypt.info/public-servers/ 挑选。
server_names = ['cloudflare', 'google']

###########################
# 本地监听接口
###########################
# 指定本地监听 127.0.0.1:53
listen_addresses = ['127.0.0.1:53']

###########################
# 日志 & 隐私
###########################
# 如果你想看日志排错,打开下面这一行:
# log_level = 'info'


server_names:可选 ['cloudflare','google']、或者 ['quad9-doh-ip4-filter-pri'] 等;

listen_addresses:一定要有 127.0.0.1:53,这样本地 DNS 查询才会到这个代理上来。

2. 以管理员权限安装并启动服务

  • 打开 “开始”→ 输入 cmd→ 右键 “以管理员身份运行” → 进入命令行。

  • 切换到 dnscrypt-proxy 目录:

    cd \dnscrypt-proxy

  • 安装 Windows 服务:

    dnscrypt-proxy.exe -service install

  • 启动服务:

    dnscrypt-proxy.exe -service start

  • (可选)检查服务状态:

    dnscrypt-proxy.exe --service status

    若看到 “Service is running”,说明已经正常启动。

3. 把 Windows 网卡的 DNS 指向本地代理

  • 打开“控制面板”→“网络和 Internet”→“网络连接”。

  • 右键你正在用的 Wi-Fi(或以太网)→“属性”→选中“Internet 协议版本 4 (TCP/IPv4)”→“属性”。

  • 选择“使用下面的 DNS 服务器地址”,并填入:

    首选 DNS 服务器:127.0.0.1 备用 DNS 服务器:0.0.0.0

  • 确定后关闭。

4. 刷新并验证

在新的管理员命令行中运行:

ipconfig /flushdns

然后用 nslookupping 验证:

nslookup baidu.com

  • 如果返回的 “服务器” 一栏是 127.0.0.1,并且下方的 IP 是百度的真实公网 IP(例如 220.181.57.216),就说明你的 dnscrypt-proxy 起作用了。

  • 再次 ping baidu.com,应能获得正确的公网地址。

检查方法:

  1. 确认代理在跑,并验证它生效:
    用 sc 或 PowerShell 查看服务状态
    sc query dnscrypt-proxy
    或者在 PowerShell(管理员)里:
    Get-Service dnscrypt-proxy
    你应该能看到它的 STATE 是 RUNNING。

  2. 确认 127.0.0.1:53 在监听
    netstat -ano | findstr ":53"
    TCP 127.0.0.1:53 0.0.0.0:0 LISTENING 21352
    tasklist | findste 21352
    dnscrypt-proxy.exe 21352 Services 0 20,508 K

未生效情况可能存在的问题

从 ipconfig /all 里我们看到:

Meta Tunnel 这个虚拟网卡(198.18.0.1/30)依然拿着 DNS 服务器 198.18.0.2,

而你的 WLAN 真正配置的是 127.0.0.1

Windows 在查询 DNS 时,会优先用系统认为“绑定最靠前”或“路由最优”的接口的 DNS,而不是你在 WLAN 上手动设置的。这里,“Meta Tunnel” 把 DNS 绑在了第一位,所以所有查询都跑到它那去,绕过了你的 dnscrypt-proxy。

-----------------------------------------------------------------------

“Meta Tunnel” 这个网卡并不是 Windows 系统自带的,而是你之前安装的那个企业/IT 安全软件(比如 Sangfor SSL VPN、aTrust 客户端或类似的安全代理)在本地创建出来的“隧道”虚拟网卡。它的作用通常是:

承载 VPN 或安全隧道流量,把你访问公司内网、管理后台或安全检测流量都绕到 IT 的后端服务器上;

下发并劫持 DNS,把所有 DNS 请求先发到它那边,做安全审计、内部地址解析或策略拦截;

一、直接禁用“Meta Tunnel”的影响
优点:立刻不会再把 DNS 劫持到 198.18.0.2,你所有网络软件都会走你设置的 127.0.0.1 → dnscrypt-proxy;

缺点:

你将无法访问那条隧道里需要用到的企业/内部资源(比如公司内网网站、共享盘、内部 AD 域名等);

如果有基于这张隧道做的安全检测(如全员上网审计、访问白名单),也会被绕过或直接失效。

如果你 根本不需要那条 VPN/安全通道(只是偶然安装过、现在不会用),禁用它是最简单粗暴的方法;但只要它依然有用,禁用就会影响你对内网服务的访问。

二、改 DNS 到 127.0.0.1 可行性
你把 “Meta Tunnel” 那个网卡的 DNS 也改成了 127.0.0.1,那么这条隧道的 DNS 查询同样会走你的 dnscrypt-proxy。

好处:依旧能避开运营商的 53 端口劫持;

风险:这条隧道如果还需要内部 DNS(比如 intranet.company.local、ad.domain),它就拿不到 IT 的 DNS 回应,内部域名解析会失败,导致 VPN 内网服务访问中断。

三、推荐更平衡的做法
调整接口优先级(Metric)

保留 “Meta Tunnel” 但把它的接口度量调高,让 Windows 优先用 WLAN 上的 127.0.0.1:

powershell
    # 在管理员 PowerShell 里运行
    Set-NetIPInterface -InterfaceAlias "Meta Tunnel" -InterfaceMetric 100
    Set-NetIPInterface -InterfaceAlias "WLAN"       -InterfaceMetric 10

    这样常规网站、公共 DNS 都走 dnscrypt-proxy;只有真正发往企业内网的流量,仍会匹配到 Meta Tunnel 上的路由。

按域名分流
    如果你用的是支持 DoH/DoT 分域转发的 dnscrypt-proxy,也可以在 forwarding_rules 里把内部域名(如 *.company.local)指定给原来的 IT DNS 服务器走 198.18.0.2,而其他全部走 DoH。这就不会把企业内部解析也走到外部代理。

视需求而定
    纯翻墙/公网浏览:禁用 Meta Tunnel 或全网改 DNS 都没问题;
    同时要访问内网资源:建议别禁用,用 “接口度量 + 分流” 的方式,让两边 DNS 各行其道。

解决办法一:禁用 “Meta Tunnel” 虚拟网卡

  1. Win+R,输入 ncpa.cpl,回车。

  2. 找到 “Meta Tunnel”,右键 → 禁用

  3. 再次在管理员 CMD 中运行:

    ipconfig /flushdns nslookup baidu.com

    这时 “服务器” 应该会变成 127.0.0.1,返回百度的公网 IP。


解决办法二:调整接口度量(Metric)

如果你想保留 Meta Tunnel,但让 WLAN 优先:

  1. 以管理员 PowerShell 运行:

    # 把 WLAN 的度量设得比 Meta Tunnel 低 Set-NetIPInterface -InterfaceAlias "WLAN" -InterfaceMetric 10 Set-NetIPInterface -InterfaceAlias "Meta Tunnel" -InterfaceMetric 100

  2. 然后:

    ipconfig /flushdns nslookup baidu.com

    系统就会优先走度量更低的 WLAN 上的 127.0.0.1

验证

无论用哪种方法,最后 nslookup baidu.com 应该显示:

服务器: UnKnown Address: 127.0.0.1 名称: baidu.com Address: 220.181.57.216 ←(示例公网 IP)

总结

  • Meta Tunnel 是你的安全/VPN 隧道网卡,禁用会断掉对内网的访问;

  • 临时改 DNS 到 127.0.0.1 可以“救急”,但可能让内网域名失效;

  • 最好是通过调整接口优先级或 DNS 分域策略,让公共域名走你的 dnscrypt-proxy,内部域名走原有的隧道 DNS。

实操

C:\Windows\system32>cd Q:\1Tool\dnscrypt-proxy

C:\Windows\system32>Q:

Q:\1Tool\dnscrypt-proxy>dnscrypt-proxy.exe -service stop
[2025-06-07 14:06:23] [NOTICE] Service stoppedd

Q:\1Tool\dnscrypt-proxy>dnscrypt-proxy.exe -service uninstall
[2025-06-07 14:06:27] [NOTICE] Service uninstalled

Q:\1Tool\dnscrypt-proxy>dnscrypt-proxy.exe -service install
[2025-06-07 14:06:33] [NOTICE] Installed as a service. Use `-service start` to start

Q:\1Tool\dnscrypt-proxy>dnscrypt-proxy.exe -service start
[2025-06-07 14:06:36] [NOTICE] Service started

Q:\1Tool\dnscrypt-proxy>netstat -ano | findstr ":53"
  TCP    0.0.0.0:5357           0.0.0.0:0              LISTENING       4
  TCP    127.0.0.1:53           0.0.0.0:0              LISTENING       21352
...

Q:\1Tool\dnscrypt-proxy>tasklist | findstr 21352
dnscrypt-proxy.exe           21352 Services                   0     20,508 K

Q:\1Tool\dnscrypt-proxy>ipconfig /flushdns

Windows IP 配置

已成功刷新 DNS 解析缓存。

Q:\1Tool\dnscrypt-proxy>nslookup baidu.com
服务器:  UnKnown
Address:  198.18.0.2

名称:    baidu.com
Address:  198.18.0.165


Q:\1Tool\dnscrypt-proxy>ipconfig /all

Windows IP 配置

   主机名  . . . . . . . . . . . . . : QiaoShen
   主 DNS 后缀 . . . . . . . . . . . :
   节点类型  . . . . . . . . . . . . : 混合
   IP 路由已启用 . . . . . . . . . . : 否
   WINS 代理已启用 . . . . . . . . . : 否

未知适配器 Meta:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Meta Tunnel
   物理地址. . . . . . . . . . . . . :
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . : fe80::3e16:a5fe:113d:a6c5%4(首选)
   IPv4 地址 . . . . . . . . . . . . : 198.18.0.1(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.252
   默认网关. . . . . . . . . . . . . : 0.0.0.0
   DNS 服务器  . . . . . . . . . . . : 198.18.0.2 ——> 关键
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用

...

无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Intel(R) Wi-Fi 6 AX200 160MHz
   物理地址. . . . . . . . . . . . . : E4-FD-45-3D-2C-BE
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . : fe80::5cea:4fab:2048:8fc4%20(首选)
   IPv4 地址 . . . . . . . . . . . . : 192.168.1.6(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   获得租约的时间  . . . . . . . . . : 2025年6月7日 13:28:54
   租约过期的时间  . . . . . . . . . : 2025年6月8日 14:07:16
   默认网关. . . . . . . . . . . . . : 192.168.1.1
   DHCP 服务器 . . . . . . . . . . . : 192.168.1.1
   DHCPv6 IAID . . . . . . . . . . . : 149224773
   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-2E-9C-41-A0-6C-24-08-54-4A-61
   DNS 服务器  . . . . . . . . . . . : 127.0.0.1
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用

以太网适配器 以太网 3:
...

Q:\1Tool\dnscrypt-proxy>ipconfig /all

Windows IP 配置

   主机名  . . . . . . . . . . . . . : QiaoShen
   主 DNS 后缀 . . . . . . . . . . . :
   节点类型  . . . . . . . . . . . . : 混合
   IP 路由已启用 . . . . . . . . . . : 否
   WINS 代理已启用 . . . . . . . . . : 否

未知适配器 Meta:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Meta Tunnel
   物理地址. . . . . . . . . . . . . :
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . : fe80::de2c:e791:4de:28c6%4(首选)
   IPv4 地址 . . . . . . . . . . . . : 198.18.0.1(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.252
   默认网关. . . . . . . . . . . . . : 0.0.0.0
   DNS 服务器  . . . . . . . . . . . : 127.0.0.1 ——> 关键
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用

...

无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Intel(R) Wi-Fi 6 AX200 160MHz
   物理地址. . . . . . . . . . . . . : E4-FD-45-3D-2C-BE
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . : fe80::5cea:4fab:2048:8fc4%20(首选)
   IPv4 地址 . . . . . . . . . . . . : 192.168.1.6(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   获得租约的时间  . . . . . . . . . : 2025年6月7日 13:28:53
   租约过期的时间  . . . . . . . . . : 2025年6月8日 14:07:16
   默认网关. . . . . . . . . . . . . : 192.168.1.1
   DHCP 服务器 . . . . . . . . . . . : 192.168.1.1
   DHCPv6 IAID . . . . . . . . . . . : 149224773
   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-2E-9C-41-A0-6C-24-08-54-4A-61
   DNS 服务器  . . . . . . . . . . . : 127.0.0.1 ——> 关键
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用

以太网适配器 以太网 3:
...

Q:\1Tool\dnscrypt-proxy>ipconfig /flushdns

Windows IP 配置

已成功刷新 DNS 解析缓存。

Q:\1Tool\dnscrypt-proxy>nslookup baidu.com
服务器:  UnKnown
Address:  127.0.0.1

非权威应答:
名称:    baidu.com
Addresses:  110.242.68.66
          39.156.66.10


Q:\1Tool\dnscrypt-proxy>ping baidu.com

正在 Ping baidu.com [110.242.68.66] 具有 32 字节的数据:
来自 110.242.68.66 的回复: 字节=32 时间<1ms TTL=64
来自 110.242.68.66 的回复: 字节=32 时间<1ms TTL=64
来自 110.242.68.66 的回复: 字节=32 时间<1ms TTL=64
来自 110.242.68.66 的回复: 字节=32 时间<1ms TTL=64

110.242.68.66 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms
文章作者: QiaoShen
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 QiaoShen-World
Windows 疑难杂症 疑难杂症
喜欢就支持一下吧