|
|
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="x-dns-prefetch-control" content="on"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"><meta name="renderer" content="webkit"><meta name="force-rendering" content="webkit"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="HandheldFriendly" content="True"><meta name="mobile-web-app-capable" content="yes"><link rel="shortcut icon" href="https://hans362-img.oss.0vv0.top/favicon.ico"><link rel="icon" type="image/png" sizes="16x16" href="https://hans362-img.oss.0vv0.top/favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="https://hans362-img.oss.0vv0.top/favicon-32x32.png"><link rel="apple-touch-icon" sizes="180x180" href="https://hans362-img.oss.0vv0.top/apple-touch-icon.png"><link rel="mask-icon" href="https://hans362-img.oss.0vv0.top/safari-pinned-tab.svg"><title>对抗校园网 DNS 污染,我有妙招 | Hans362 's Blog</title><meta name="keywords" content="路由器, DNS, 校园网, Hans362"><meta name="description" content="最近给寝室接入了学校网络信息中心免费提供的 1Gbps 有线网络,这确实是我迄今为止使用过的最奢华的网络环境,尤其是把 WSL 软件源更换成 SJTUG 镜像站后,能够以接近 1Gbps 的速率更新软件包,体验极度舒适。 然而,某天早上7:30,当我试图打开 Bilibili 时,Chrome 浏览器却提示 DNS_PROBE_FINISHED_NXDOMAIN,手机客户端也加载失败。通过查阅校内"><meta property="og:type" content="article"><meta property="og:title" content="对抗校园网 DNS 污染,我有妙招"><meta property="og:url" content="https://blog.hans362.cn/post/how-i-fight-against-campus-dns-pollution/"><meta property="og:site_name" content="Hans362 's Blog"><meta property="og:description" content="最近给寝室接入了学校网络信息中心免费提供的 1Gbps 有线网络,这确实是我迄今为止使用过的最奢华的网络环境,尤其是把 WSL 软件源更换成 SJTUG 镜像站后,能够以接近 1Gbps 的速率更新软件包,体验极度舒适。 然而,某天早上7:30,当我试图打开 Bilibili 时,Chrome 浏览器却提示 DNS_PROBE_FINISHED_NXDOMAIN,手机客户端也加载失败。通过查阅校内"><meta property="og:locale" content="zh_CN"><meta property="article:published_time" content="2022-10-15T04:42:17.000Z"><meta property="article:modified_time" content="2025-04-11T10:35:15.356Z"><meta property="article:author" content="Hans362"><meta property="article:tag" content="路由器"><meta property="article:tag" content="DNS"><meta property="article:tag" content="校园网"><meta name="twitter:card" content="summary_large_image"><link rel="stylesheet" href="/css/style/main.css"><link rel="stylesheet" id="hl-default-theme" href="https://blog.hans362.cn/npm/highlight.js@10.1.2/styles/atom-one-light.css" media="none"><link rel="stylesheet" id="hl-dark-theme" href="https://blog.hans362.cn/npm/highlight.js@10.1.2/styles/atom-one-dark.css" media="none"><script src="/js/darkmode.js"></script><link rel="dns-prefetch" href="https://analytics.0vv0.top"><link rel="preconnect" href="https://hans362-img.oss.0vv0.top"><meta name="generator" content="Hexo 7.1.1"><link rel="alternate" href="/atom.xml" title="Hans362 's Blog" type="application/atom+xml"></head><body><div class="app-shell-loader">加载中...</div><div class="container" tabindex="-1"><header><div class="header__left"><a href="/" class="button"><span class="logo__text">Hans362 's Blog</span></a></div><div class="header__right"><div class="navbar__menus"><a href="/" class="button"><div class="navbar-menu">首页</div></a><a href="/archives/" class="button"><div class="navbar-menu">归档</div></a><a href="/tags/" class="button"><div class="navbar-menu">标签</div></a><a href="/bangumi/" class="button"><div class="navbar-menu">追番</div></a><a href="/links/" class="button"><div class="navbar-menu">友链</div></a><a href="/about/" class="button"><div class="navbar-menu">关于</div></a><a href="/atom.xml" class="button"><div class="navbar-menu">RSS</div></a></div><a href="/search/" class="button"><div id="btn-search"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="24" height="24" fill="currentColor" stroke="currentColor" stroke-width="32"><path d="M192 448c0-141.152 114.848-256 256-256s256 114.848 256 256-114.848 256-256 256-256-114.848-256-256z m710.624 409.376l-206.88-206.88A318.784 318.784 0 0 0 768 448c0-176.736-143.264-320-320-320S128 271.264 128 448s143.264 320 320 320a318.784 318.784 0 0 0 202.496-72.256l206.88 206.88 45.248-45.248z"></path></svg></div></a><a href="javaScript:void(0);" rel="external nofollow noreferrer" class="button"><div id="btn-toggle-dark"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg></div></a><a href="#" class="button" id="b2t" aria-label="回到顶部" title="回到顶部"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="32" height="32"><path d="M233.376 722.752L278.624 768 512 534.624 745.376 768l45.248-45.248L512 444.128zM192 352h640V288H192z" fill="currentColor"></path></svg> </a><a class="dropdown-icon button" tabindex="0"><div id="btn-dropdown"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="24" height="24" fill="none" stroke="currentColor" stroke-width="0.7" stroke-linecap="round" stroke-linejoin="round"><path fill="currentColor" d="M3.314,4.8h13.372c0.41,0,0.743-0.333,0.743-0.743c0-0.41-0.333-0.743-0.743-0.743H3.314c-0.41,0-0.743,0.333-0.743,0.743C2.571,4.467,2.904,4.8,3.314,4.8z M16.686,15.2H3.314c-0.41,0-0.743,0.333-0.743,0.743s0.333,0.743,0.743,0.743h13.372c0.41,0,0.743-0.333,0.743-0.743S17.096,15.2,16.686,15.2z M16.686,9.257H3.314c-0.41,0-0.743,0.333-0.743,0.743s0.333,0.743,0.743,0.743h13.372c0.41,0,0.743-0.333,0.743-0.743S17.096,9.257,16.686,9.257z"></path></svg></div></a><div class="dropdown-menus" id="dropdown-menus"><a href="/" class="dropdown-menu button">首页</a> <a href="/archives/" class="dropdown-menu button">归档</a> <a href="/tags/" class="dropdown-menu button">标签</a> <a href="/bangumi/" class="dropdown-menu button">追番</a> <a href="/links/" class="dropdown-menu button">友链</a> <a href="/about/" class="dropdown-menu button">关于</a> <a href="/atom.xml" class="dropdown-menu button">RSS</a></div></div></header><cover></cover><main><div class="post-content"><div class="post-title"><h1 class="post-title__text">对抗校园网 DNS 污染,我有妙招</h1><div class="post-title__meta"><a href="/archives/2022/10/" class="post-meta__date button">2022-10-15</a> <span class="separate-dot"></span> <a href="/categories/%E6%8A%80%E6%9C%AF%E5%90%91/" class="button"><span class="post-meta__cats">技术向</span></a><style>.post-meta__pv{color:var(--t-l);visibility:hidden;opacity:0;transition:.2s}</style><span class="separate-dot"></span> <span class="post-meta__pv"></span></div></div><aside class="post-side"><div class="post-side__toc"><div class="toc-title">文章目录</div><ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#%E6%9B%B4%E6%8D%A2-dns%E6%B2%A1%E9%82%A3%E4%B9%88%E7%AE%80%E5%8D%95"><span class="toc-text">更换 DNS?没那么简单</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E5%8F%A6%E8%BE%9F%E8%B9%8A%E5%BE%84"><span class="toc-text">另辟蹊径</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#smartdns%E5%87%BA%E5%87%BB"><span class="toc-text">SmartDNS,出击!</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E6%80%BB%E7%BB%93"><span class="toc-text">总结</span></a></li></ol></div></aside><a class="btn-toc button" id="btn-toc" tabindex="0"><svg viewBox="0 0 1024 1024" width="32" height="32" xmlns="http://www.w3.org/2000/svg"><path d="M128 256h64V192H128zM320 256h576V192H320zM128 544h64v-64H128zM320 544h576v-64H320zM128 832h64v-64H128zM320 832h576v-64H320z" fill="currentColor"></path></svg></a><div class="toc-menus" id="toc-menus"><div class="toc-title">文章目录</div><ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#%E6%9B%B4%E6%8D%A2-dns%E6%B2%A1%E9%82%A3%E4%B9%88%E7%AE%80%E5%8D%95"><span class="toc-text">更换 DNS?没那么简单</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E5%8F%A6%E8%BE%9F%E8%B9%8A%E5%BE%84"><span class="toc-text">另辟蹊径</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#smartdns%E5%87%BA%E5%87%BB"><span class="toc-text">SmartDNS,出击!</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E6%80%BB%E7%BB%93"><span class="toc-text">总结</span></a></li></ol></div><article class="post post__with-toc card"><div class="post__header"><div class="post__expire" id="post-expired-notify"><p><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" style="fill:#f5a623;stroke:#f5a623"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg> 本文最后更新于 <span id="expire-date"></span> 天前,文中部分描述可能已经过时。</p></div><script>(()=>{var e=Date.parse("2022-10-15"),t=(new Date).getTime(),t=Math.floor((t-e)/864e5);120<=t&&(document.querySelectorAll("#expire-date")[0].innerHTML=t,document.querySelectorAll("#post-expired-notify")[0].style.display="block")})()</script></div><div class="post__content"><html><head><script>var meting_api="https://api-v2.hans362.cn/vip/?server=:server&type=:type&id=:id&r=:r"</script><script class="meting-secondary-script-marker" src="/js/Meting.min.js"></script></head><body><p>最近给寝室接入了学校网络信息中心免费提供的 1Gbps 有线网络,这确实是我迄今为止使用过的最奢华的网络环境,尤其是把 WSL 软件源更换成 SJTUG 镜像站后,能够以接近 1Gbps 的速率更新软件包,体验极度舒适。</p><p>然而,某天早上7:30,当我试图打开 Bilibili 时,Chrome 浏览器却提示 <code>DNS_PROBE_FINISHED_NXDOMAIN</code>,手机客户端也加载失败。通过查阅校内论坛,我得知由于某些原因,从2022年5月25日起的每天0点至8点,学校网络信息中心提供的 DNS 服务器会<strong>故意</strong>不返回大部分视频网站(包括但不限于哔哩哔哩、腾讯视频、爱奇艺、优酷、华数TV、抖音、快手)及游戏网站(包括但不限于Steam商店和聊天、Origin、战网、英雄联盟、崩坏)的解析结果,即所谓的 DNS 污染。</p><p>虽然我多数时候没有在0点至8点使用这些网站的需求,但是我并不认可这种行为,所以本文就来谈谈我是如何对抗校园网 DNS 污染的。</p><span id="more"></span><h2 id="更换-dns没那么简单"><a class="markdownIt-Anchor" href="#更换-dns没那么简单"></a> 更换 DNS?没那么简单</h2><p>也许你会认为,既然只是学校网络信息中心提供的 DNS 服务器在特定时段不返回解析结果,那么只要改为使用公共 DNS 就能解决问题。没错,我一开始也是这样认为的,校内论坛上提供的解决方法亦是如此。</p><p>但是,在路由器上更换 DNS 后,却没有任何效果。我尝试在特定时段使用 <code>nslookup</code> 命令向校园网 DNS 服务器和一些公共 DNS 服务器查询 <code>bilibili.com</code> 的解析结果,结果很 amazing 啊!</p><pre><code class="hljs asciidoc">Sat Oct 14 02:03:09 GMT 2022
|
|
|
<span class="hljs-section">== SJTU Primary ==</span>
|
|
|
Server: 202.120.2.101
|
|
|
Address 1: 202.120.2.101 202.120.2.101.dns.sjtu.edu.cn
|
|
|
|
|
|
<span class="hljs-section">== SJTU Secondary ==</span>
|
|
|
Server: 202.112.26.40
|
|
|
Address 1: 202.112.26.40 202.112.26.40.dns.sjtu.edu.cn
|
|
|
|
|
|
<span class="hljs-section">== 114 ==</span>
|
|
|
Server: 114.114.114.114
|
|
|
Address 1: 114.114.114.114 public1.114dns.com
|
|
|
|
|
|
<span class="hljs-section">== DNSPod ==</span>
|
|
|
Server: 119.29.29.29
|
|
|
Address 1: 119.29.29.29 pdns.dnspod.cn</code></pre><p>无一例外地全部被阻断!我尚不清楚校园网是如何做到这一点的,或许是强制重定向所有 DNS-over-UDP 查询请求到校园网 DNS 服务器,导致请求根本没有到达 114 或 DNSPod 服务器,又或许是由于 DNS-over-UDP 查询是明文的,校园网出口能够识别出查询的域名,从而直接返回空结果。总之,这种情况下,简单地更换 DNS 服务器是无效的。</p><p>而且,即使这种方法有效,公共 DNS 会导致一些校内域名无法被正常解析,或无法返回最快的结果,同样会影响使用体验。</p><h2 id="另辟蹊径"><a class="markdownIt-Anchor" href="#另辟蹊径"></a> 另辟蹊径</h2><p>既然更换 DNS 无效,那么就只能另辟蹊径了。我想到的第一个方法是使用代理服务器,利用 dns2socks 等工具将 DNS 查询请求转发到代理服务器,再由代理服务器向公共 DNS 服务器查询结果,最后将结果返回给客户端。但这种方法需要一台境内服务器以确保速度,同时协议转换的过程对路由器的性能也有一定的要求。</p><p>因此,我决定使用另一种方法,那就是 DNS-over-HTTPS(DoH) 和 DNS-over-TLS(DoT)。二者都是 DNS-over-UDP 的替代方案,通过 HTTPS 或 TLS 协议向公共 DNS 服务器查询结果,从而避免了 DNS-over-UDP 查询请求被校园网通过某些方式污染的问题。</p><p>同时,为了避免上一节末尾提到的问题,我希望能够优先使用校园网 DNS 服务器进行查询,只有在校园网 DNS 服务器无法正常返回结果时才使用 DoH 或 DoT 向公共 DNS 服务器进行查询。<a target="_blank" rel="noopener" href="https://github.com/pymumu/smartdns">SmartDNS</a> 无疑是实现这一需求的绝佳工具。</p><h2 id="smartdns出击"><a class="markdownIt-Anchor" href="#smartdns出击"></a> SmartDNS,出击!</h2><blockquote><p>SmartDNS 是一个运行在本地的 DNS 服务器,它接受来自本地客户端的 DNS 查询请求,然后从多个上游 DNS 服务器获取 DNS 查询结果,并将访问速度最快的结果返回给客户端,以此提高网络访问速度。 SmartDNS 同时支持指定特定域名 IP 地址,并高性匹配,可达到过滤广告的效果。<br>与 DNSmasq 的 all-servers 不同,SmartDNS 返回的是访问速度最快的解析结果。<br>支持树莓派、OpenWrt、华硕路由器原生固件和 Windows 系统等。</p></blockquote><p>(摘录自 <a target="_blank" rel="noopener" href="https://github.com/pymumu/smartdns">SmartDNS 项目主页</a>)</p><p>关于 SmartDNS 是如何实现择优解析,以及如何避免因测速导致 DNS 解析过慢的,可以参考 Sukka 的<a target="_blank" rel="noopener" href="https://blog.skk.moe/post/i-have-my-unique-dns-setup/#Zhong-Chang-Xiu-Xi-SmartDNS-Shi-Ru-He-Bi-Mian-Yin-Ce-Su-Dao-Zhi-DNS-Jie-Xi-Guo-Man-De">这篇文章</a>。</p><p>根据 SmartDNS 的官方文档以及路由器的处理器构架,我下载了编译好的 armv7 二进制,并编写了配置文件。</p><pre><code class="hljs apache"><span class="hljs-attribute">bind</span> :<span class="hljs-number">5362</span>
|
|
|
|
|
|
<span class="hljs-attribute">speed</span>-check-mode ping,tcp:<span class="hljs-number">80</span>,tcp:<span class="hljs-number">443</span>
|
|
|
|
|
|
<span class="hljs-attribute">server</span> <span class="hljs-number">202.120.2.101:53</span>
|
|
|
<span class="hljs-attribute">server</span> <span class="hljs-number">202.112.26.40:53</span>
|
|
|
|
|
|
<span class="hljs-attribute">server</span>-https https://<span class="hljs-number">1.12.12.12</span>/dns-query
|
|
|
<span class="hljs-attribute">server</span>-https https://<span class="hljs-number">120.53.53.53</span>/dns-query
|
|
|
<span class="hljs-attribute">server</span>-https https://<span class="hljs-number">1.1.1.1</span>/dns-query
|
|
|
<span class="hljs-attribute">server</span>-tls dot.pub:<span class="hljs-number">853</span>
|
|
|
<span class="hljs-attribute">server</span>-tls <span class="hljs-number">8.8.4.4:853</span></code></pre><p>将 SmartDNS 运行后,我将路由器自带的 dnsmasq 的上游服务器设置为 <code>127.0.0.1:5362</code>,然后…</p><pre><code class="hljs apache"><span class="hljs-attribute">Sat</span> Oct <span class="hljs-number">15</span> <span class="hljs-number">02</span>:<span class="hljs-number">03</span>:<span class="hljs-number">09</span> GMT <span class="hljs-number">2022</span>
|
|
|
<span class="hljs-attribute">Server</span>: <span class="hljs-number">127.0.0.1</span>
|
|
|
<span class="hljs-attribute">Address</span> <span class="hljs-number">1</span>: <span class="hljs-number">127.0.0.1</span> localhost.localdomain
|
|
|
|
|
|
<span class="hljs-attribute">Name</span>: bilibili.com
|
|
|
<span class="hljs-attribute">Address</span> <span class="hljs-number">1</span>: <span class="hljs-number">119.3.70.188</span> ecs-<span class="hljs-number">119</span>-<span class="hljs-number">3</span>-<span class="hljs-number">70</span>-<span class="hljs-number">188</span>.compute.hwclouds-dns.com</code></pre><p>与此同时,SmartDNS 的日志也记录下了这次查询的过程。</p><pre><code class="hljs stylus"><span class="hljs-selector-attr">[2022-10-15 02:03:09,372]</span><span class="hljs-selector-attr">[ INFO]</span><span class="hljs-selector-attr">[ dns_server.c:4236]</span> query server bilibili<span class="hljs-selector-class">.com</span> from <span class="hljs-number">192.168</span>.<span class="hljs-number">50.1</span>, qtype = <span class="hljs-number">28</span>
|
|
|
<span class="hljs-selector-attr">[2022-10-15 02:03:09,374]</span><span class="hljs-selector-attr">[ INFO]</span><span class="hljs-selector-attr">[ dns_client.c:3135]</span> send request bilibili<span class="hljs-selector-class">.com</span>, qtype <span class="hljs-number">28</span>, id <span class="hljs-number">3</span>
|
|
|
<span class="hljs-selector-attr">[2022-10-15 02:03:09,376]</span><span class="hljs-selector-attr">[ INFO]</span><span class="hljs-selector-attr">[ dns_server.c:4236]</span> query server bilibili<span class="hljs-selector-class">.com</span> from <span class="hljs-number">192.168</span>.<span class="hljs-number">50.1</span>, qtype = <span class="hljs-number">1</span>
|
|
|
<span class="hljs-selector-attr">[2022-10-15 02:03:09,376]</span><span class="hljs-selector-attr">[ INFO]</span><span class="hljs-selector-attr">[ dns_client.c:3135]</span> send request bilibili<span class="hljs-selector-class">.com</span>, qtype <span class="hljs-number">1</span>, id <span class="hljs-number">4</span>
|
|
|
<span class="hljs-selector-attr">[2022-10-15 02:03:09,376]</span><span class="hljs-selector-attr">[ INFO]</span><span class="hljs-selector-attr">[ dns_client.c:3135]</span> send request bilibili<span class="hljs-selector-class">.com</span>, qtype <span class="hljs-number">28</span>, id <span class="hljs-number">5</span>
|
|
|
<span class="hljs-selector-attr">[2022-10-15 02:03:09,521]</span><span class="hljs-selector-attr">[ INFO]</span><span class="hljs-selector-attr">[ dns_server.c:1608]</span> result: bilibili<span class="hljs-selector-class">.com</span>, qtype: <span class="hljs-number">1</span>, rtt: <span class="hljs-number">4.1</span> ms, <span class="hljs-number">119.3</span>.<span class="hljs-number">70.188</span>
|
|
|
<span class="hljs-selector-attr">[2022-10-15 02:03:09,981]</span><span class="hljs-selector-attr">[ INFO]</span><span class="hljs-selector-attr">[ dns_server.c:583 ]</span> result: bilibili<span class="hljs-selector-class">.com</span>, id: <span class="hljs-number">64281</span>, index: <span class="hljs-number">1</span>, rtt: <span class="hljs-number">4.1</span> ms, <span class="hljs-number">119.3</span>.<span class="hljs-number">70.188</span>
|
|
|
<span class="hljs-selector-attr">[2022-10-15 02:03:09,981]</span><span class="hljs-selector-attr">[ INFO]</span><span class="hljs-selector-attr">[ dns_server.c:583 ]</span> result: bilibili<span class="hljs-selector-class">.com</span>, id: <span class="hljs-number">64281</span>, index: <span class="hljs-number">2</span>, rtt: <span class="hljs-number">5.3</span> ms, <span class="hljs-number">47.103</span>.<span class="hljs-number">24.173</span></code></pre><p>对抗成功!</p><h2 id="总结"><a class="markdownIt-Anchor" href="#总结"></a> 总结</h2><p>本文利用 SmartDNS 解决了校园网 DNS 污染问题,成功构建了愉快的网络环境。如果你的校园网也存在故意污染 DNS 的情况,并且不想或不能直接更换公共 DNS,不妨试试本文的方法。</p><p>最后说一句,我能够理解学校这么做的考虑,但我认为堵不如疏,强制性的网络限制并不是一个好方法。</p></body></html></div><div class="license"><div class="license-title">对抗校园网 DNS 污染,我有妙招</div><div class="license-link"><a href="https://blog.hans362.cn/post/how-i-fight-against-campus-dns-pollution/">https://blog.hans362.cn/post/how-i-fight-against-campus-dns-pollution/</a></div><div class="license-meta"><div class="license-meta-item"><div class="license-meta-title">本文作者</div><div class="license-meta-text">Hans362</div></div><div class="license-meta-item"><div class="license-meta-title">最后更新</div><div class="license-meta-text">2022-10-15</div></div><div class="license-meta-item"><div class="license-meta-title">许可协议</div><div class="license-meta-text"><a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh" rel="nofollow noopener noreferrer" target="_blank">CC BY-NC-SA 4.0</a></div></div></div><div>转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!</div></div><div class="post-footer__cats"><a href="/categories/%E6%8A%80%E6%9C%AF%E5%90%91/" class="post-cats__link button">技术向</a><a href="/tags/%E8%B7%AF%E7%94%B1%E5%99%A8/" class="post-tags__link button"># 路由器</a><a href="/tags/DNS/" class="post-tags__link button"># DNS</a><a href="/tags/%E6%A0%A1%E5%9B%AD%E7%BD%91/" class="post-tags__link button"># 校园网</a></div></article><div class="nav"><div class="nav__prev"><a href="/post/2022-annual-report/" class="nav__link"><div><svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M589.088 790.624L310.464 512l278.624-278.624 45.248 45.248L400.96 512l233.376 233.376z" fill="#808080"></path></svg></div><div><div class="nav__label">上一篇</div><div class="nav__title">2022年终总结</div></div></a></div><div class="nav__next"><a href="/post/weekly-28/" class="nav__link"><div><div class="nav__label">下一篇</div><div class="nav__title">周记#28 - “开学第一课”</div></div><div><svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M434.944 790.624l-45.248-45.248L623.04 512l-233.376-233.376 45.248-45.248L713.568 512z" fill="#808080"></path></svg></div></a></div></div><div class="post__sponsers card"><div class="sponser-label">喜欢这篇文章吗?考虑支持一下作者吧~</div><a class="sponser-button button" href="https://afdian.net/@hans362" rel="external nofollow noreferrer" target="_blank" data-type="afdian">爱发电</a> <a class="sponser-button button" data-type="alipay">支付宝<img class="sponser-qrcode" src="https://hans362-img.oss.0vv0.top/2021/08/05/68281340.jpg"></a></div><div class="post__comments post__with-toc card" id="comment"><h4>评论</h4><div id="disqus_thread">您所在的地区可能无法访问 Disqus 评论系统,请切换网络环境再尝试。</div></div></div></main><footer><p class="footer-copyright">Copyright © 2017 - 2025 <a href="/">Hans362 's Blog</a></p><p>Powered by <a href="https://hexo.io" target="_blank">Hexo</a> | Theme - <a href="https://github.com/ChrAlpha/hexo-theme-cards" target="_blank">Cards</a></p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-8746554831230893" data-ad-slot="6356225601" data-ad-format="auto" data-full-width-responsive="true"></ins><script>(adsbygoogle=window.adsbygoogle||[]).push({})</script></footer></div><script defer src="https://blog.hans362.cn/npm/vanilla-lazyload@17.8.3/dist/lazyload.min.js"></script><script>window.lazyLoadOptions={elements_selector:".lazy"}</script><script async defer data-website-id="5d181692-8a81-4c20-a282-cee87a6b90ef" src="https://analytics.0vv0.top/vue.js"></script><script src="/js/pageviews.js"></script><link rel="stylesheet" href="https://blog.hans362.cn/npm/katex@0.16.0/dist/katex.min.css" crossorigin="anonymous"><script>function loadComment(){let n,e;(n=document.createElement("script")).src="https://blog.hans362.cn/js/disqus.js",document.body.appendChild(n),n.onload=()=>{new DisqusJS({shortname:"hans362-s-blog",siteName:"Hans362 's Blog",api:"https://api-v3.hans362.cn/",apikey:"8Z1UVT4UOk22yNyk9MhpqQ0FLb27Hb1bpV066b4v9zOFie0GQ6VCoJ9TJwoGlCVF",admin:"hans362",identifier:"post/how-i-fight-against-campus-dns-pollution/",url:"https://blog.hans362.cn/post/how-i-fight-against-campus-dns-pollution/",nesting:"4"})},(e=document.createElement("link")).rel="stylesheet",e.href="https://blog.hans362.cn/css/disqusjs.css",document.head.appendChild(e)}var runningOnBrowser="undefined"!=typeof window,isBot=runningOnBrowser&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro|msn)bot|crawl|spider|yand|duckgo/i.test(navigator.userAgent),supportsIntersectionObserver=runningOnBrowser&&"IntersectionObserver"in window;setTimeout(function(){var e;!isBot&&supportsIntersectionObserver?(e=new IntersectionObserver(function(n){n[0].isIntersecting&&(loadComment(),e.disconnect())},{threshold:[0]})).observe(document.getElementById("comment")):loadComment()},1)</script></body></html> |