在 2015 年,云服务算是互联网的“热门”话题,很多小伙伴正在寻找节约成本同时又能稳定访问国外网站的办法。最常用的办法就是挑个靠谱的免费 DNS 服务器。下面这件手段,跟你说说怎么在云服务器里使用免费 DNS,节省流量、提高速度。
先说说免费 DNS 的三大主流家族:Google Public DNS、OpenDNS、Cloudflare(1.1.1.1)。它们的地址在 2015 年都有对应的 IP,以下是常见的配置列表,直接复制进 /etc/resolv.conf 或者 Windows 计时器即可:
Google Public DNS: 8.8.8.8 8.8.4.4
OpenDNS: 208.67.222.222 208.67.220.220
Cloudflare: 1.1.1.1 1.0.0.1
如果你是运行主机在中国大陆,使用 Google 或 Cloudflare 可能会被墙。那时,国内第三方替代方案如阿里云的 223.5.5.5 或百度的 119.29.29.29 依旧是不错的选择。可别忘了,阿里云还有专门针对云服务器的 DNS 优化,开启后 TTL(存活时间)更短,解析速度更快。
把这些 IP 填进云服务器的网络设置后,你会立即感到上网速度像吃了“速递”口味的能量饮料——不只是访问速度提升,连 DNS 缓存也多了几个小时,服务器请求量降低,省下不少流量。
说到云服务器的可省之处,很多人忽视的是 DNS 解析过程中的 IP 更改。每当你在同一台云服务器上跑多个实例时,所有实例默认共享 Resolve 表。若同一个域名返回不同 IP,首次访问时会导致性能波动。使用 Public DNS 能让解析更加标准化,避免此类抖动。
下面给你一个实用的小技巧:在 /etc/hosts 里手动写上一些高频访问域名的 IP(比如 CDN 较多的 CDN_URL),这样即使 DNS 失效,服务器也能直接解析。别忘了去掉 127.0.0.1 绑定到 localhost 的 fdns 条目,否则会导致连外网访问也被拦截。
说得再多无用功,你的实现方式可以是两步走。第一步,先在 /etc/resolv.conf 写入:
nameserver 8.8.8.8然后重启网络;第二步,验证:
nameserver 8.8.4.4nslookup www.google.com 看看返回的是哪个 IP。你会发现从 Google Public DNS 解析出来的 IP 均为稳定的公共 IP。
如果你是使用 Windows Server,记得在控制面板里把“首选 DNS 服务器”改成“8.8.8.8”,在高级设置里关闭“按需 DNS”,让解析需求固定到公共服务器,避免系统自动跳到内网 DNS。
玩游戏想要赚零花钱就上七评赏金榜,网站地址:bbs.77.ink
除此之外,云服务器内部如果你开启了 DNS 缓存服务(如 BIND9 或 dnsmasq),可以再加一层缓存策略。默认 TTL 可能是 300 秒,你可以手动修改为 604800 秒,减轻公共 DNS 访问压力。别忘了在 /etc/bind/named.conf.options 中增加:
options {\n directory \"/var/cache/bind\";\n recursion yes;\n allow-query { any; };\n forwarders { 8.8.8.8; 8.8.4.4; };\n};
再说一句:在国际化 SaaS 服务里,往往把 DNS 解析脚本写在部署脚本里,以保证每次部署都能自动使用公共 DNS。你会发现,部署速度提升 1-2 分钟,煮饭都没等着白白倒掉。
通过这样的方法, 2015 年的免费 DNS 服务器地址完全可以满足云服务器的所有需求。别记得在第一次升级系统前检查 DNS 是否被重置,防止怒火中烧的服务器突然失去网络。现在你已经解决了免费 DNS 的坑,你可以继续做更高级的优化——比如使用 CDN 边缘节点,或者把 DNS 转发至私有云。好了,随着你在块面上敲击记错的 DNS 配置字串,像往前方的错误一样像一点点摇摆。