Intro
买了个nas后发现找资源什么也挺累,就一直放着吃灰。最近买了个智能插座,发现这不是吃灰,是在吃电了。每个月电费也要十来块,这还不如买个云服务器还能有公网IP呢。
所以得折腾起来,不能放那白白吃电。
吃灰的主要原因就是只能给连了家里wifi的设备用,这样就很局域。
所以得先解决外网访问的问题,这样他才真的是个服务器了。
公网IP
为什么不用FRP
我不太想用frp,主要是从原理上说,他是一台云服务器和我的本地服务器建立隧道,云服务器有提供公网IP,然后用户访问云服务器IP时请求转发到我本地服务器。
问题是,随便一台主流云服务器的性能也不比我本地这台机器差,我要是有云服务器,何必要本地个人服务器呢。。。而且带宽还受限。
当然带宽受限是主要问题,毕竟是台nas机器,保不齐我就想用他来看资料呢~
所以就得用公网IP。
原理
公网IP来支持外部访问的原理比较直观,对广袤的互联网说出你的唯一id,然后外网用户根据这个唯一id就能找到你。
你和用户是直接的交流,不用受流量或者其他带宽等问题的限制。
当然问题也不少:
- 就是安全性会受到挑战(想想你会在微博上公开你的身份证号吗?)
- 另外就是搞到个公网IP不简单。
第一点对我其实还好,毕竟是瞎折腾,nas里面也没啥敏感数据,出问题了重启重装呗。(当然顺便也学学安全防御,实践一下)
所以本文主要是解决第二个问题。
如何获得公网IP
IPV4
由于ip资源有限的问题,IPV4公网IP真的很难弄到了。我是在深圳,办的电信,反正各种电话都打了也没弄到。
放弃。
IPV6
ipv6的主要问题是,虽然大力推广,但仍不算是主流,不过后续文章会有解决改问题的方法。
ipv6地址就很容易弄到了,给你安装宽带的师傅发信息,或者网上也有大量教程可以帮你弄到一个ipv6的公网ip。
像这样子:2001:0db8:86a3:08d3:1319:8a2e:0370:7344
但是要注意,不能是fe80开头的,这个其实是本地ip,类似ipv4的192开头的一样。
使用起来和ipv4不太一样,比如访问ipv4一般是http://192.168.31.5/
,而为了说明这是一个ipv6地址,你需要加一个中括号[], 如: http://[2001:0db8:86a3:08d3:1319:8a2e:0370:7344]
。
如果一切顺利,你可以在现在应该能够顺利在外网访问到你的服务器了。
配置域名
完成上面的步骤后,只要网络环境支持(蜂窝网络或者大部分wifi都支持),我们可以通过ipv6格式的IP地址,顺利的访问到我们的个人服务器,而且带宽流量都没限制,只根据你的套餐流量来。
但是配置一个域名,这是很低成本,而且很必须的一个事情。
因为你的ipv6地址并不是固定的,而是始终在变化的。总不能每天出门前都看看自己服务器ipv6地址是啥,放笔记本记下来吧。
而且做成网站或者提供对外服务,也不能每隔段时间就让人重新请求别的ip地址。
获取一个域名
到处都能买域名。没啥特殊要求,各种特价域名几块钱就能好几年了。这里就没必要去搞那种免费的三级域名了。 直接买个好点的域名,能用好久。而且域名也算是你个人纪念的一个标志资产,不缺钱,多买几年,用处还挺多的。
手动关联域名和IP
这里要简单科普一下域名和ip的关系。我们知道,ip是你设备或者说服务器的身份证号码,知道号码,我们就能唯一的找到这台设备。域名则像是你服务器的名字,名字更好记,也更方便使用。我们在访问一个网站时,一般都是使用的域名,浏览器会去找各个dns服务器去查询这个名字的服务器,他的ip是多少,然后再向他发起请求。
这里来了一个新的概念,DNS。我们在购买域名后需要通过DNS服务来将其和IP地址关联起来。
这里建议选用cloud flare配置。
首先进入couldflare网页,注册一个账号。
然后按网站提示将之前购买的网站的配置到cloudflare下来。
成功绑定后你可以在cloudflare上开始配置你域名的DNS了。
添加一条AAAA记录,这个就是绑定你域名和ip地址的地方。
保存后需要一段时间生效。生效后就可以通过域名访问到你的服务器啦。
动态关联域名和IP
前文提到,IPv6地址并不是静态的,过一段时间就会变化,所以上面手动关联肯定不长久。我们需要动态的来做这个事情。
这样便是DDNS技术。
我的服务器安装了docker,所以我直接用docker安装了ddns-go
这个服务。
这个服务会在你服务器IP的9876端口出现一个配置页面,在这个页面上可以完成ipv6地址和cloudflare的动态绑定。(需要创建一个api token,网页上已有教程,这里不赘述。)
结语
至此,如果这是一个只给你自己看,或者拿来练手的小网站,你就可以不用继续折腾了。做好可以把你的网址链接发在评论里,大家相互访问访问。
但是,实际上,这离一个真正的服务器还有一点点距离。比如咱们现在都还是http的,怎样配置https呢?这个也需要折腾一番,后续再说。
本文也提到了docker,这是个个人建服务器非常关键的工具,也是我会愿意自己整服务器的核心原因。挖个坑,后面也写写。