我的国家印度尼西亚正试图接管这里所有 ISP 的 DNS 功能。
数千个网站,包括 reddit、vimeo 甚至(有时)github 都被封锁。
如果替换的 DNS 服务器能够正常且快速地运行,情况就不会那么糟糕。但是事实并非如此。
它们的速度极其缓慢,似乎要花很长时间才能更新新条目。
我在公司运行 ubuntu 服务器 (14.04)。是否可以在我的 LAN 上设置一个 DNS 缓存服务器,该服务器无需使用端口 53 即可更新?或者不会被我的 ISP 拦截?
如果您有答案,请用大写字母慢慢解释,因为 DNS 问题总是让我感到困惑。
答案1
如果您的 ISP(或您的政府)拦截了您到端口 53 的传出连接,那么您可以做的一件事就是设置一个 VPN 到您所在国家/地区以外的服务器,并通过它路由 DNS 流量。不过,这将花费您每月几美元。如果这是一个选项,请在网上搜索“VPN 服务器”。不要试图使用免费的 VPN,DNS 太重要了,不能依赖不可靠且速度慢的免费 VPN。
更新
是的,VPN 连接有时会很慢和/或中断。您必须权衡这一点与 ISP 提供的 DNS 服务器连接速度慢/中断的问题。抱歉,我无法告诉您哪种解决方案更糟糕,您必须自己想办法。
“如果在 VPN 上设置了 DNS 缓存服务器,我可以在本地 LAN 上设置另一个缓存服务器,从 VPN 的 DNS 缓存中获取更新吗?” - 是的,我基本上会这么做。请注意,您无法控制在 VPN 服务器上设置哪个 DNS 服务器,但这可以作为您选择 VPN 提供商的标准的一部分。
答案2
正如 sмurf 所写,在更自由的国家/地区的虚拟服务器上使用 VPN 和 DNS 解析器可能是一个很好的解决方案。我使用OpenVPN用于虚拟专用网络和域名管理系统作为本地解析器、内部权威服务器和 DNS 中继。DNS 流量通过 VPN 传输到各个方向。我对这种设置的体验非常好。OpenVPN 不会降低连接的可靠性,实际上恰恰相反。如果连接失败,OpenVPN 会保留网络数据包,直到重新建立连接。即使长途跋涉的 IP 地址发生变化,网络程序也不会注意到任何事情。但这对 DNS 并没有真正的帮助,因为 DNS 通常使用较短的超时时间。无论如何,这是我推荐的配置:
- 在国外的虚拟服务器。在其上安装 OpenVPN。关于 DNS,您有更多选项,您可以选择对您来说最简单的选项:
- 将虚拟服务器用作路由器。您只需在内核中启用转发,无需执行其他任何操作,并添加防火墙规则以阻止非 DNS 流量。
- 我猜您可以简单地订阅使用 OpenVPN 的 VPN 服务,而不是租用虚拟服务器并在其上设置 OpenVPN,结果将与前一个选项相同。
- 安装 Dnsmasq。Dnsmasq 将充当托管公司提供的 DNS 解析器的中继。
- 安装完整的 Bind 解析器。如果您不信任托管公司的 DNS 解析器,则应选择此选项。我自己没有尝试过,但据我所知,它很简单。
- 本地内部网络中的 VPN 服务器。在此服务器上安装 OpenVPN,并设置与远程租用 VPN 的最简单的点对点连接。这将是一个路由器,因此也在此处启用转发。
- 本地网络中的缓存 DNS 服务器。在此处安装 Dnsmasq,它将是一个缓存 DNS 中继。将其配置为将 DNS 请求中继到 VPN 另一端的 DNS 服务器。您必须在此处设置路由(ip route add ...),以便发送到远程 DNS 的数据包通过您的本地 VPN 服务器。
Dnsmasq 的默认配置仅允许 150 个缓存条目,您必须为 60 个用户增加该值。Dnsmasq 是为小型网络设计的,但它们将 60 个用户视为小型网络。它的优点是您的配置大约只有两行。
如果您愿意,您可以将单个服务器用于本地 DnsMasq 和本地 VPN 服务器。
答案3
由于 OP 提到他需要一个网关来控制局域网中的计算机,因此我建议设置一个 Squid 代理,并让其将流量转发到更自由国家的托管机箱。需要一个具有大量缓存和本地 DNS 服务器的 Web 代理,因为从您的 IP 到位于另一个州的 IP 的大量流量会引起怀疑,从而导致禁止该 IP。因此,您需要拥有“大量免费互联网”的本地副本。
由于您不需要所述托管服务器来执行除网关之外的任何其他操作,因此您可以在此处尝试便宜的主机。http://www.spotvps.com/
或者,由于 IPv6 尚未成为最终用户部署的标准,您的 IPS 很可能不会监控围栏的那一侧,那么您可以从此处注册一个免费的 IPv6 on IPv4 隧道和 DNS 解析器https://ipv6.he.net/
您可以先尝试查看此列表中的任何 DNS 服务器是否被禁止: http://en.flossmanuals.net/bypassing-censorship/ch033_playing-with-dns/
另一个解决方案是下载并安装 Tor,它将加密所有互联网流量。
- 其他解决方案是使用浏览器(例如 Firefox),并将其设置为使用以下列表中通过 socks5 进行 DNS 转发的代理服务器: http://www.socks-proxy.net/