OpenVPN虽然可以实现翻墙,但是解决不了DNS污染问题,令翻墙的效果大打折扣。
我们深入分析DNS污染产生的原理。
测试中的OpenVPN配置,在server端已经推送8.8.8.8作为客户端的DNS.
redirect-gateway def1 也已经开启。Windows PC端将以OpenVPN网关作为默认网关。
DNS请求会从OpenVPN网关发送出去。
尽管如此,GFW还是会污染我们的DNS查询请求。
据估计,可能是这样的,当PC发起DNS查询,同时会向两个网关查询。哪个网关先响应,就用哪一个的。 这样就麻烦了。GFW完全可以发送假的数据包。
解决DNS污染的方法是在VPS 上建立Bind9 DNS Server.
并建立 dns.domain.com 的 dns反向解析 至 10.8.0.1.
OpenVPN推送 10.8.0.1作为DNS解析。
Windows系统的DNS会反向解析10.8.0.1,如果有效,则使用10.8.0.1作为域名解析。
因为10.8.0.1是局域网,所以Windows会优先查询局域网。这样局域网查询的请求结果会优先返回。 由此可以避免DNS污染。
客户端查询10.8.0.1,如何返回一个有效结果?bind9起着什么特别作用?是否如同局域网Ics共享的一般,192.168.0.1是服务器,也是客户端dns server,在openvpn里10.8.0.1为网关服务端,其dns为8.8.8.8
回复删除