四次元科技

科技、动漫、生活、学习以及一切

聊聊我家的网络环境搭建

前言

众所周知,国内上网的时候会遇到一些DNS劫持,SNI阻断等问题。作为一个程序员,每天上一上Github,上一上V2EX也是家常便饭,所以这时候就非常需要一套可以直接出国的网络部署。基于这种需求,我便开始了对家中网络的折腾。

1.0版本

刚刚接触搭建网络的时候,由于没有什么经验,也没什么现成的方案,所以我选择了最简单粗暴的All in one部署策略。

硬件设施

部署方式

优点

缺点

这种方式我使用了大概3年,由于出国程序基本是一套混沌系统,各种原因都有可能导致他挂掉,所以当初老婆经常要让我帮她修网。

2.0版本

这次有了经验之后,添加了新的设备,设置起来更复杂了,但是解决了好几个之前的痛点。

硬件设施

部署方式

优点

缺点

这种模式几乎可以解决所有的问题了,所以我也稳定的用了2年多,可以精细的控制哪些设备可以出国,哪些设备不能出国,而且出国挂掉也不会导致网络不可用。
但是随着家里的网络带宽来到了千兆,以及开始有了BT下载和异地组网等需求后,NAT降级和带宽劣化也成为了促使我寻找更加优秀的方案的理由。

3.0版本(当前使用)

这次需要的设备更多了……但是这次也许会是最佳的方案了!

硬件设施

部署方式

优点

缺点

首先我先来介绍一下PaoPaoDNSPaoPaoGateWay

PaoPaoDNS是一款在本地搭建的递归查询服务器。

我们平时用的本地DNS服务,例如dnsmasq,或者分流常用的smartdns、mosdns等,都是本地缓存服务器,他们依赖于上游的公共DNS的准确性,例如如果使用阿里DNS: 223.5.5.5,那他们对国内地址的解析则会和223.5.5.5是相同的,如果223.5.5.5因为种种原因返回了错误的地址,那smartdns、mosdns也会返回错误的地址。

而递归查询服务,会递归查询到权威DNS服务器,这样就可以保证查询的结果是百分百准确的。你也可以理解为你是在本地搭建了一个和223.5.5.5相同类型的服务器,而你的上游就是DNS的根服务器,这样自然准确性可以得到保证了。

PaoPaoGateWay是一款本地搭建的旁路网关。

这个旁路网关做的事情,就是相当于我在2.0版本中的OpenWRT旁路网关。他主要负责对分流到出国线路的域名做DNS(FakeIP)解析,以及转发到出国线路。

PaoPaoGateWay和PaoPaoDNS结合到一起,就可以成为一套配置简单效果理想的抗劫持,支持国内外分流的DNS+网关系统。

具体的配置方式可以去看他们的仓库。

PaoPaoDNS: https://github.com/kkkgo/PaoPaoDNS

PaoPaoGateWay: https://github.com/kkkgo/PaoPaoGateWay