前言
最近买了个树莓派折腾,所以研究了一些相关技术。树莓派相关内容及技术等下次再说,今天先简单说说内网穿透和DDNS的联系和区别。
正文
用途
- 先说结论:
内网穿透和DDNS都是在服务器本身不方便直接接入公网、进行公网访问时候,用的技术手段。目的都是为了实现服务的公网访问和便捷请求。
- 示例场景:
- 微信公众号、小程序开发(虽然有官方测试账号和沙盒环境)阶段,还没部署到线上服务器、绑定域名,想先在自己电脑或主机上测试调用微信接口;
- 资源在家或公司的局域网环境,自己在外也想访问并使用资源(类似NAS)
- 希望在外可以查看家中、办公室监控 ....
原理解析
- 这两者都可实现将局域网服务发布到公网,但所用原理及效率大有不同。
-
DDNS: DDNS是一种动态域名解析技术(Dynamic DNS),一般的DNS域名解析是对于固定IP的公网网络,在域名服务商那里将域名与固定IP绑定。即可实现通过域名访问固定IP服务器的效果。而DDNS是对于动态的公网IP进行的域名解析操作,主要是使用域名服务商(阿里云、腾讯云都有)提供的接口和SDK,用程序将动态的IP绑定到指定域名,并对IP进行监控和动态绑定。访问时,和固定ip解析的域名没有任何差别,配置好后不再需要其他操作。方便、快捷、一劳永逸。
条件:
- IP: 需要有公网IP(动态公网IP也是公网IP);
- 域名:需要有自己域名,并且有域名操作权限(需要授权给程序进行域名绑定等操作);
- 公网服务器:不需要
-
内网穿透: 内网穿透,是对于没有公网IP、或者有公网IP但自己不能使用(用公司网络和闲置电脑搭建自己的东西)。但还是想将服务投射到公网环境,所使用的一种技术。原理是类似与一种代理和转发,在一个公网可访问的服务器上部署一个内网映射程序的服务端,在需要公网投射的内网服务器上部署一个客户端,两者建立通信。内网穿透后再请求时,其实是先请求的该公网服务器的某个端口,服务端会将该请求转发给内网服务并返回信息,从而实现将内网服务投射到公网可访问。
条件:
- IP:不需要有公网IP(只要能上网就行);
- 域名:理论上需要有自己的域名绑定内网服务(花生壳那种是用的别人的二级、三级域名所以收费啊),当然也可以直接ip+端口进行转发,但不安全、不方便,不推荐;
- 公网服务器:理论上需要有一个可公网访问的服务器做内网穿透的服务端(同上,花生壳那种是用的他们的服务端,所以会收流量费,或者只免费使用1、2G流量)
原理图示
DDNS:
内网穿透:
对比及区别
条件对比:DDNS需要公网IP和自己的域名,内网穿透如果是使用的他人的内网穿透服务几乎不需要任何条件;
速度对比:毫无疑问,DDNS的速度和效率肯定大于内网穿透。DDNS只是在IP变动后将IP再次绑定到域名,链路和正常域名请求一样。
而内网穿透的请求多了一步,需要一个公网IP的服务端对请求进行判断、转发、再回传,链路较长,速度除了受自身网速等影响,也受代理服务器的影响。
结论
对比后是不是觉得DDNS这么好,谁还用内网穿透啊?而且TM内网穿透我要是不用别人的服务端,我还得自己有个公网服务器来搭建服务端?脱裤子放屁?
哈哈哈,当然还是有原因的。除了上面介绍内网穿透时候说得,自己偷偷搞以外。即使在自己能做主的家庭网络环境下,除了拉的专线,普通的宽带一般也都是大的局域网(也就是内网),连动态公网IP都不是。各大运营商对公网IP都是十分珍惜的,打客服都不一定可以申请到。所以有时候还是需要将自己家的内网环境下的服务投射到公网,只能使用内网穿透。而且如果是临时使用,用一下花生壳等内网穿透厂商的免费流量和服务还是很方便的。
其他
折腾这个树莓派,对自己的帮助挺大。除了可以学习到许多硬件相关知识,也了解了软件方面及系统相关、网络方面的知识。帮助不小。继续折腾吧!!!
评论区