我可能被校园网针(对)了。

本文可能又名“虚调记-番外”。

校园网篇

我们的校园网用户体验极差,相信应该不会有人有异议。作为一个校内垄断的产业,既无明显的竞争,也看不到补贴,所以这个网费呀又贵,还三天两头的维护,维护完不仅没什么提升有时候用户体验还下降了。完了还三天两头断网,不愧是三停学院的名称来源之一。除此之外,校园网还存在着HTTP劫持(不知道是不是校园网的问题)。可是不办还不行,经常有些网站只有校内才能进去。当然,这些和今天写的这篇文章无关。

我们校园网中默认使用的两个DNS服务器分别是10.255.255.2510.255.255.26。虽然在DNS上好像并没有什么黑点,但是出于个人习惯我还是换成了外网的服务器。然而出现了一些小问题,比如我们学校的很多网站是有内外网两套系统的,使用校园网DNS会解析到内网IP,否则会解析到外网IP,然而校园网访问外网的网站很慢或者根本连不上。另外就是有时候访问使用了CDN的网站会解析到比较偏远的地方去。

以上这些问题平时用的时候大概还能忍,可是最近我发现我使用Linux系统的时候没法从外网的DNS服务器拿到解析,但是使用Windows却可以(据说某徐姓男子遇到了和我相反的情况)。我一度怀疑是校园网在搞墙中墙(我瞎猜的,以后报道出了偏差我不负责任),毕竟每次维护好像也没什么明面上的修改。所以我就又萌生出了搭建DNS服务器的想法(诶我为什么要说又)。

学宝虚拟机篇

说到作为服务器,使用Linux发行版当然比使用学宝虚拟机默认的WindowsXP在工具链友好度上要好得多,所以我们得想办法把虚拟机的系统换成Linux的。某徐姓校友的一篇 从Windows引导Debian网络安装 教了怎么将虚拟机的WindowsXP改为Debian。不过因为我还需要虚拟机使用迅雷挂机下载所以不能用这种方法。

最终我选择了在虚拟机中再安装一个虚拟机来解决,毕竟也不需要太在意性能的问题。值得注意的是因为宿主机(学宝虚拟机)是WindowsXP(32位)的,所以虚拟机也只能安装32位的系统。我装的是CentOS7 32位版,不过好像很多软件没有发行32位版本,所以如果不熟悉自行编译各类软件和解决依赖的问题的话建议考虑其他比较老的系统或版本。老版本对32位的支持(指软件)要好一些。

虚拟机软件我选择的是Oracle VBox。网络接入方式选择了桥接,并开启了混杂模式。这样就能使虚拟机获得和宿主机同一网段的IP了。具体的安装和设置的问题我就假定来看本文的人都会的,如果不会的话说明还需要学习,建议到C**N看相关博文。

DNS服务器篇

终于到文章中心部分了。不过按照惯例,这一部分我大概会写的很短。

DNS服务器当然是选择 dnsmasq 啦。具体设置步骤我就不说了,同上参看文档或相关博文。这部分我自己修改的主要就是向上游服务器请求的规则,比如*.csust.edu.cn的网址交由校园网的DNS服务器解析,我还找到了一份很长的国内网站和几个主要公司(如Apple、MS)的域名的列表,并将其交由114和中科大的DNS解析,然后其余网址都交给1111等境外网址,这样还能起到防污染的作用。

不过我还是觉得1.1.1.1的解析结果会在进入国内时被污染,所以想到了向境外服务器请求的数据通过V2ray代理到境外来避免污染。不过在写相关配置的时候感觉比较麻烦,而且我也不确定是否起作用。这时我看到了一个DNS over HTTP的项目,这样通过DoH可以尽量的避免被污染。所以我在服务器上搭建了一个这样的程序然后将dnsmsq的相关情求转发到这个程序上。

这样下来,就能达到学校网站解析内网地址,国内网站解析最近的CND,国外网站避免污染的效果。另外还能通过这个服务区获取ipv6解析结果。

信息发布篇

我搭建的DNS服务器的IP为: 10.64.219.125 端口为DNS默认的53。 (已下线)

另外,某徐 学长也做了一个DNS服务器,效果和我的差不多,相关信息见他的网页: https://dns.csust.ac.cn/