零、背景
朋友买了一台国外的服务器部署了博客,然后买了一个域名进行解析,但是服务器和域名都是国外的,在国内无法直接通过域名访问网站,于是问我有什么解决方案,我回了他一句话:买一个国内DNS解析服务。他表示不理解,和他学过的网络有点不一样,于是有了此文。
一、网络是怎么连接的?
网络是由一堆带有IP地址的硬件和路由器、交换机、DNS服务器等设备组成的。
如果一台主机想访问另一台主机,知道对方的IP即可(前提自己没被墙且对方开启通信权限)。
下面是本机无对应域名DNS缓存信息且正常情况下DNS服务器有对应域名信息的请求过程抽象:

可以看出当网络正常时DNS服务器可以返回域名对应的服务器IP地址,然后客户端可以通过IP地址和此服务器进行通信。
当购买国外的域名之后,一般都是域名供应商提供DNS解析服务,国内的DNS服务器没有记录该域名的解析信息。如果供应商的DNS服务器设置一些策略禁止国内的IP去查询,那么国内无法通过此域名访问其绑定的服务器。
此时就会出现,国内的DNS服务器无域名信息,国外的DNS服务器自己又无法访问,于是最后无法访问目标服务器。
二、怎么解?
买国内的DNS解析服务,服务供应商的DNS服务器要能让国外也访问,这样不影响国外用户,国内也能通过DNS服务知道服务器的IP然后去正常访问,如下图:

三、购买了就一定能正常访问了吗?
不一定,先确定供应商能不能提供上述要求的服务,其次确定自己只用了一处DNS解析服务,防止别处配置解析信息有误导致DNS污染,最后一定要保证服务器IP国内也能访问,否则添加了域名解析也没用,就得换IP或者考虑下面的方法了。
四、其他方式
- 利用 CDN(省时省心)。
- 代理服务器。
正文完
