使用DDNS和内网穿透搭建公网服务

阅读本文可以没有网络知识背景的人理解DDNS与内网穿透,以极低的成本搭建个人服务。

什么是DDNS

DDNS(Dynamic Domain Name Server,动态域名服务)是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务器程序负责提供DNS服务并实现动态域名解析。 ——百度百科

通俗来说,互联网是依靠IP地址进行路由的,好比快递员根据家庭住址投送包裹。然而这种IP地址的数量是有限的,价格也是高昂的。我们的个人设备通常没有这种公网IP地址,而是仅仅在使用时被分配一个临时的公网IP地址,如果不连接时就会被收回。这样做可以节省很多IP地址资源。

但这样就遇到了一个问题:如果我想为他人提供服务,我的设备没有一个固定的IP地址,就好比一我经常搬家,别人总是想找我却发现我已经不在这儿住了。

DDNS就可以解决这个问题:我只要找一个不搬家的人,我每次搬家到告诉他我们搬到哪了,大家只要找他就能找到我。

这样,我们这种经常搬家的人也仿佛拥有了不动产,也能稳定为别人提供服务了。(就是别人找你会费劲一些,多跑一些路)

什么是内网穿透

内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。下面就相互通信的主机在网络中与 NAT 设备的相对位置介绍内网穿透方法。 ——百度百科

想理解内网穿透还得需要先知道NAT——网络地址转换。

真实的网络更加复杂,我们的设备可能连一个临时的公网IP都没有,而是隐藏在一层一层的内部网络之中,通过层层路由器接入互联网,这些路由器就是通过NAT仅用一个IP地址就能为所有内部网络设备提供互联网接入。这好比我们都住在不同的小区,而且还可能在这个小区里来回来搬家…

这时候要想为别人提供服务怎么办呢?(非常有服务精神了)

内网穿透就是干这个的:我只要找一个不搬家的人,我每次搬家都告诉他我在这个小区、进小区以后这么走,大家又可以通过他找到我了。

所以本质上DDNS和内网穿透都在干一件事,但是记录的东西有所不同,前者记录的是公网地址,后者记录的是公网地址和端口号等。实际情况更加复杂一些,这里不做展开,只要理解大致原理,就能利用这些做想做的事了。

有什么用

说了这么多,终于可以开始“以极低的成本搭建个人服务”了

简单来说,你可以

  • 随时远程启动和连接你的主机(远程启动需要路由器支持)
  • 在主机上搭建一个私有云盘、博客、网站等任何你可以自己部署的服务,在外随时访问

我就为实验室的服务器和路由器都做了内网穿透,使得这些原本只能在校园网或实验室里才能访问的服务,让大家疫情期间在家也能够访问。在疫情期间,实验室的网络服务也在不断升级,为工作学习提供便利。

比较推荐的花生壳,注册后可以几乎免费拿到两个端口映射,而且还提供设置访问密码的功能。但是免费用户一个月只有1个G的流量,应付网页应用足够了,云盘放点小文件也可以,大文件传输就免了。实际上我还从没用完过这免费的一个G。

Comments