如何提升自建DNS服务下的网络体验

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 网络质量和网络体验是通信过程中的两个不同层面,质量涉及设备上下行表现,而体验关乎端到端通信效果。衡量质量常用带宽、延迟、丢包率等指标;体验则关注可访问性,DNS解析速度和服务位置等。现代路由器能自动调整网络质量,普通用户无需过多干预。自建DNS服务时,选择权威DNS能解决可访问性,但可能不提供最优体验。AdguardHome和Clash等工具能进一步优化DNS解析,提升网络体验。

网络质量和网络体验

什么都不做, 即可以获得最好的网络体验

需要明确, 这里网络质量网络体验是两个不同的概念. 通信是一个过程, 涉及多个设备, 我们可以称单个设备的上下行表现为网络质量, 而整个端到端的通信表现, 我们可以称为网络体验.

如何衡量网络质量

衡量网络质量通常涉及多个指标和方法。以下是一些常见的衡量网络质量的方法和指标:

  1. 带宽(Bandwidth):带宽是指网络传输数据的能力,通常以每秒传输的数据量(比特/秒)来衡量。更高的带宽通常表示更好的网络质量。
  2. 延迟(Latency):延迟是指数据从发送端到接收端所需的时间。低延迟表示数据传输速度快,网络响应更快。
  3. 丢包率(Packet Loss Rate):丢包率是指在数据传输过程中丢失的数据包的比例。较低的丢包率通常意味着网络质量较好。
  4. 抖动(Jitter):抖动是指数据包在传输过程中的变化或波动。较小的抖动表示网络稳定性较高。
  5. 吞吐量(Throughput):吞吐量是指网络传输的实际数据量,通常以单位时间内的数据传输量来衡量。更高的吞吐量表示网络质量更好。
  6. 网络拓扑(Network Topology):网络拓扑描述了网络中节点之间的连接方式和结构。合理的网络拓扑设计可以提高网络性能和质量。
  7. 服务质量(Quality of Service,QoS):QoS 是一组技术和机制,用于确保在网络中的数据传输中实现可接受的服务质量。QoS 可以通过各种方式实现,包括流量控制、优先级队列等。
  8. 网络协议分析(Protocol Analysis):通过分析网络协议和数据包,可以了解网络中的性能指标和问题,例如使用 Wireshark 等网络分析工具。

综合利用这些指标和方法,可以全面地评估网络质量,确定网络性能的优势和改进的空间。 但这些是运营商关注的指标, 对于普通用户, 只需要购买价格合适的路由器即可, 现代路由器都有自动调整网络质量的功能.

如何衡量网络体验

首先是可访问性, 能访问是最重要的基础. 因此, 域名解析服务需要满足基础的能力:

  • 全面, 上级 DNS 服务需要权威, 且能够解析更多的域名
  • 正确, 解析结果需要正确, 不能出现解析错误. 部分 DNS 服务商会对一些域名进行劫持或污染, 解析到广告页面.
  • 及时, ip 地址变更后, 需要及时更新解析结果, 而不是返回旧的 ip 地址

其次是 DNS 解析结果的 IP 所能提供服务的网络质量.

互联网服务所能提供的网络质量, 通常强依赖地域, 服务器和客户端在地域上越接近, 则服务质量越好.

许多付费 DNS 解析服务商都支持按地域解析不同 IP, 例如这是阿里云能提供的一部分服务:

(1)运营商线路:支持按联通、电信、移动、教育网、鹏博士、广电网智能解析,细分到省份;
(2)海外地区线路:支持,细分到大洲、国家;
(3)阿里云线路:支持,细分到各个地区;
(4)自定义线路:支持自定义 IP 地址范围智能解析;

按区域解析不同 IP 的机制, 意味着不同地域的用户访问同一个域名时, 会得到不同的解析结果, 自然而然的, 优先解析到距离用户更近的服务器, 将会有更好的网络体验.

而优化用户网络体验这件事, 一般都是服务提供商根据用户的真实 IP 地址来做优化. 也就是对多数用户来说, _什么都不做, 即可以获得最好的网络体验_.

自建 DNS 服务如何选择上游 DNS 服务

中文互联网你搜索到的所有资料都会推荐你选择权威 DNS 服务商, 例如阿里云, 腾讯云, Cloudflare, 谷歌等. 这些 DNS 可以满足网络服务的的可访问性, 因为它们全面/正确/及时, 但是, 它们未必会给你解析到最近的服务器 IP.

互联网上大量的资料推荐大企业的 DNS 服务有其历史原因.

曾经我国的 ISP 运营商, 仅靠 DNS 劫持加上 HTTP 的中间人攻击, 就能够实现对用户的流量劫持, 从而实现广告推送. 现如今随着 https 的普及, 这种劫持方式已较为少见, 但部分地区的小区宽带仍然可能存在这种问题. 针对 DNS 劫持问题, 实际上改 DNS IP 无济于事, 因为劫持可以针对 53 端口, 而绝大多数 DNS 请求都是未加密的.

此外, 一些特殊用户希望访问特殊网站, 而部分 DNS 服务商存在 IP 污染问题, 会将特殊网站的域名解析到错误的 IP 地址, 导致无法访问. 而权威 DNS 服务商则较少出现这样问题.

因此, 这里存在三个问题需要考虑:

  1. IP 污染
  2. DNS 劫持
  3. 最优服务体验

权威 DNS 服务商可以解决问题 1 , 加密协议(DoT/DoH/QUIC)可以解决问题 2.

想要解决问题 3, 你需要使用回宽带运营商的默认 DNS 服务., 正如本文开头所说, _什么都不做, 即可以获得最好的网络体验_.

但如果你是一个有追求的人, 或者特殊用户, 下文将介绍如何配置 AdguardHomeClash 两种工具的配置, 以同时解决这三个问题.

权威且智能的 DNS 服务

AdguardHome 配置

AdguardHome, 以下简称ADG 是一个网络广告拦截与隐私保护软件, 也是一个 DNS 服务. 它支持自定义上游 DNS 服务, 以及自定义 DNS 规则.

ADG 默认的向上游请求 DNS 的方式是负载均衡, 用户可以设置多个上游, ADG将根据历史 DNS 查询加权权重选择其中 DNS 响应最快的上游. 简单说, ADG 会以更高的概率选择更快的 DNS 上游来解析域名, 以较低的概率选择非最优的 DNS 上游.

我们可以选择第三个选项: _最快的 IP 地址_.

该选项带来的好处, ADG自行测试上游 DNS 的 IP 解析结果, 将其中延迟最低的 IP 返回给下游客户端. 以下是bilibili的常规解析结果.

你可以看到 IP 非常多, 如果ADG不测试 IP 解析结果, 而将所有 IP 返回给客户端, 那么客户端会做什么?

有的客户端会选择第一个 IP, 有的客户端会选择最后一个 IP, 有的客户端会随机选择一个 IP. 不管是哪种, 都未必是最优的选择.

开启最快的 IP 地址选项后, 以下是bilibili的优选解析结果, 这一步将会带来网络体验的提升.

最快的 IP 地址为什么不是默认选择? 这个功能这么实用, 为什么不默认开启?

因为它的代价是等待所有上游 DNS 的 IP 解析结果, 当你的上游同时有多个 DNS 服务商时, 向上游的查询时间以其中最慢的为准. 例如, 你的上游有平均服务时长50ms的阿里和平均服务时长500ms谷歌, ADG的上游查询时间将是500ms+.

因此用户在配置此选项时, 需要权衡上游 DNS 的服务质量和数量, 不要贪多.
这里我推荐设置两个上游, 一个权威(https: //dns.alidns.com/dns-query), 加上一个运营商 DNS.

运营商的 DNS IP 各地都不相同, 可以点击这里查看自己所在地区的运营商 DNS.

或者, 你可以在路由器的管理界面上查看运营商推荐的 DNS :

Clash 配置

特殊需求用户看重 DNS 劫持和 IP 污染问题, 但又不想放弃最优服务体验, 可以使用Clashdns模块.

其中nameserver-policy可以指定不同的域名使用不同的 DNS 服务商, 以下是一个示例配置:

dns:
  default-nameserver:
    - tls://223.5.5.5:853
    - tls://1.12.12.12:853
  nameserver:
    - https://dns.alidns.com/dns-query
    - https://one.one.one.one/dns-query
    - https://dns.google/dns-query
  nameserver-policy:
    "geosite:cn,private,apple":
      - 202.103.24.68 # 自己所在地的运营商 DNS
      - https://dns.alidns.com/dns-query
    "geosite:geolocation-!cn":
      - https://one.one.one.one/dns-query
      - https://dns.google/dns-query

它的含义是:

  • default-nameserver: 用于解析配置nameserver中的 DNS 服务的 IP
  • nameserver: 用于解析网络请求的域名
  • nameserver-policy: 根据策略, 指定不同的域名使用不同的 DNS 服务

感谢阅读

如果本文对您有所帮助, 还请点个赞. 也非常欢迎留言讨论.

目录
相关文章
|
26天前
|
安全 API 网络安全
OpenStack的 网络服务(Neutron)
【8月更文挑战第23天】
53 10
|
23天前
|
自然语言处理 数据可视化 API
淘宝商品评论 API 接口:深度解析用户评论,优化产品与服务
淘宝是领先的中国电商平台,其API为开发者提供商品信息、交易记录及用户评价等数据访问服务。对于获授权的开发者和商家,可通过申请API权限、获取并解析评论数据来进行情感分析和统计,进而优化产品设计、提升服务质量、增强用户互动及调整营销策略。未授权用户可能受限于数据访问。
|
2天前
|
自然语言处理 数据可视化 BI
文档解析(大模型版)服务体验评测
体验文档解析(大模型版)服务时,清晰的入门指南、操作手册和FAQ至关重要。若存在不足,需增加直观的操作流程说明(如动画演示)、深化高级功能文档,并提供实时在线支持,帮助用户快速解决问题。
|
7天前
|
弹性计算 自然语言处理 数据可视化
|
16天前
|
存储 消息中间件 算法
深入解析OpenStack Cinder:块存储服务详解
本文介绍了OpenStack及其块存储服务Cinder。OpenStack是一个开源云计算管理平台,提供基础设施即服务(IaaS),核心服务包括计算、网络、存储等。Cinder主要用于为虚拟机提供持久性块存储,具备多种功能,如卷操作、备份、快照及与实例的交互等。此外,还详细介绍了Cinder的工作流程、命令行操作及不同存储插件的使用。
|
17天前
|
域名解析 网络协议
DNS服务工作原理
文章详细介绍了DNS服务的工作原理,包括FQDN的概念、名称解析过程、DNS域名分级策略、根服务器的作用、DNS解析流程中的递归查询和迭代查询,以及为何有时基于IP能访问而基于域名不能访问的原因。
37 2
|
26天前
|
监控 安全 网络安全
云端防御:融合云服务与网络安全的未来
【7月更文挑战第56天】 随着云计算技术的蓬勃发展,企业和个人越来越依赖于云平台提供的弹性、可伸缩及成本效益高的服务。然而,这种依赖性也带来了前所未有的安全挑战。本文探讨了在云服务模型下,如何通过创新的网络安全策略和技术维护信息安全。我们将深入分析云计算环境中存在的安全漏洞,并展示如何利用先进的加密技术、身份验证机制和智能监控工具来强化数据保护。同时,文中还将讨论隐私保护的最新趋势和合规性问题,以期为读者提供全面的云计算与网络安全融合指南。
|
6天前
|
云安全 安全 网络安全
探索云计算与网络安全的共生之道在数字化浪潮席卷全球的今天,云计算作为信息技术的一大革新,正重塑着企业的运营模式与服务交付。然而,随着云服务的普及,网络安全与信息安全的挑战也日益凸显,成为制约其发展的关键因素。本文旨在深入探讨云计算环境下的网络安全问题,分析云服务、网络安全及信息安全之间的相互关系,并提出相应的解决策略,以期为构建一个更安全、可靠的云计算生态系统提供参考。
本文聚焦于云计算环境中的网络安全议题,首先界定了云服务的基本概念及其广泛应用领域,随后剖析了当前网络安全面临的主要威胁,如数据泄露、身份盗用等,并强调了信息安全在维护网络空间秩序中的核心地位。通过对现有安全技术和策略的评估,包括加密技术、访问控制、安全审计等,文章指出了这些措施在应对复杂网络攻击时的局限性。最后,提出了一系列加强云计算安全的建议,如采用零信任架构、实施持续的安全监控与自动化响应机制、提升员工的安全意识教育以及制定严格的合规性标准等,旨在为云计算的安全可持续发展提供实践指南。
24 0
|
20天前
|
Java 缓存 数据库连接
揭秘!Struts 2性能翻倍的秘诀:不可思议的优化技巧大公开
【8月更文挑战第31天】《Struts 2性能优化技巧》介绍了提升Struts 2 Web应用响应速度的关键策略,包括减少配置开销、优化Action处理、合理使用拦截器、精简标签库使用、改进数据访问方式、利用缓存机制以及浏览器与网络层面的优化。通过实施这些技巧,如懒加载配置、异步请求处理、高效数据库连接管理和启用GZIP压缩等,可显著提高应用性能,为用户提供更快的体验。性能优化需根据实际场景持续调整。
44 0
|
20天前
|
开发者 iOS开发 C#
Uno Platform 入门超详细指南:从零开始教你打造兼容 Web、Windows、iOS 和 Android 的跨平台应用,轻松掌握 XAML 与 C# 开发技巧,快速上手示例代码助你迈出第一步
【8月更文挑战第31天】Uno Platform 是一个基于 Microsoft .NET 的开源框架,支持使用 C# 和 XAML 构建跨平台应用,适用于 Web(WebAssembly)、Windows、Linux、macOS、iOS 和 Android。它允许开发者共享几乎全部的业务逻辑和 UI 代码,同时保持原生性能。选择 Uno Platform 可以统一开发体验,减少代码重复,降低开发成本。安装时需先配置好 Visual Studio 或 Visual Studio for Mac,并通过 NuGet 或官网下载工具包。
25 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多