最近,前些天新买的树莓派到了。于是,准备上手用这个树莓派搭建一个属于自己的服务器,在上面放一个人网站,以后可能会当作一个云盘、个人博客以及Minecraft的私服。
以下记录一下全过程
有线连接树莓派,初次上电连接
纵观全过程,第一步花的时间其实是最多的。因为使用的是mac,木有网线接口,转接线还需要驱动,真是烦……于是采用了ssh远程连接develop
(1)下载了镜像,树莓派的系统是基于linux写的,实际上就是一个内嵌了很多开发工具的linux,从科协拿了个读卡器把镜像写到sd卡上,作为启动盘
(2)把树莓派有线连接到路由器,登陆路由器后台扒下了树莓派的IP
(3)命令行ssh登陆树莓派,ip默认是198.162.1.100,密码默认是啥我忘了
(4)修改默认ip并且固定,修改初始密码
(5)修改网络默认配置文件,把宿舍的Wi-Fi的ID和密码存一下,以后就不需要网线了,具体操作百度一下就有
(6)sudo raspi-config 配置,打开VNC等等一大堆服务,然后把分辨率调大
(7)用VNC服务打开远程桌面
(8)玩一会linux上的游戏,上面居然还内嵌了全套libreoffice
寻找自己的路由器的外网ip,注册一个域名,并且动态解析到外网ip
(1)在路由器后台进行设置,宿舍用的是TP-LINK的(象征着zwj的TP-LINK),在后台把树莓派的IP设置成DMZ主机
(2)众所周知的,网络分为内网和外网,内网就是由路由器构成的一个小网络,ip地址是由路由器分配,专属于这个网络内的,就像是一个局部变量。而外网就是人类最大的网络,因特网。私有的外网的IP是非常稀有、昂贵的,一般只有各大电信公司有资格分配,少数公司自己也花钱买了。
(现在使用IPv4外网IP也不够用了,所以纷纷升级IPv6)
而电信公司就给我们的路由器分配了一个外网ip,是动态的
要在因特网上找到一台服务器,就需要确认自己的外网ip,过程很简单,百度“ip”(图片用校园网测试的)
(3)注册域名
使用了花生壳的服务,注册了一个免费域名
用树莓派下载花生壳客户端,以便使用域名解析的服务
为了省事,开VNC桌面,打开浏览器直接下载就好了,下完安装一下
【开启花生壳】
phddns start
phddns restart
phddns status
可以通过web端远程管理
用树莓派登陆好之后,花生壳会分配一个专属的SN码,进入后台管理,如果看到它已经找到了设备,说明域名已经动态解析到这个外网IP了。实际上也可以使用DDNS服务,也就是动态域名解析
最后查询一下
成功了
但是DDNS不是很好,毕竟:
做端口映射和内网穿刺
现在大家可以通过域名找到你的路由器了,可是路由器下个挂了那么多台主机,如何才能定位到其中的一台上呢?
这时候就需要使用路由器的端口映射功能了:
路由器上有很多裸露的端口,作为和外网的连接接口,通过这些端口,外网可以获得路由器上希望发布的一些东西。例如,80端口是典型的网站端口,使用HTTP协议,所有的有备案的网站,希望百度搜索的到的网站,都是通过80端口收发数据的。22端口是服务ssh的,8080端口是被用于WWW代理服务的,可以实现网页浏览,经常在访问某个网站或使用代理服务器的时候将路由器上的闲置端口。
于是我设置了两个端口映射到我的树莓派上的80端口和22端口,以便发布网站以及远程ssh
因为一些不可知(我不知)的原因,似乎是因为防火墙的存在吧,这种保护内网安全的措施,使得即使域名已经解析到了动态外网IP(测试没错),内网中也可以打开80端口上的测试网页,但是依然没有办法从路由器的端口进入到树莓派的80端口——这时候我们就需要内网穿透
【实际上接下来的步骤是可以从ngrok或者frp获得免费的内网穿透服务的!但是我被坑了】
因为我木有学过任何黑客技术,这种略带破坏性的操作我还是求助于现有的服务代理了。使用花生壳的内网穿透服务,我忍痛氪金了
6RMB!
于是我们有了:
大功告成
把网站挂到端口上
因为变成了服务器,需要常年运行,所以接了一个风扇,以及一堆散热片提供散热。用RPi.GPIO实现python控制引脚,os包查询系统状态,具体不想细说了
此后只需要发布并且维护个人网站即可
树莓派中在/var/www/html/中放了index.html,这个就是你的网站主页,在这个文件夹下可以布置超链接连接到的更多其他页面,以及资源调用
然后自己写了一个首页
snake是超链接,连接到的网页就放在这个目录之下的一个文件夹中
里面还有一个网页,并且包括了css等资源文件夹
是我从其他地方找的一个源码,稍微修改一下就能用了
以上是用手机登陆的效果
靠文本编辑器写网页是一个很傻逼的事情,所以我下了Dreamwaver(好像是这么拼的),准备以后有时间好好设计一个个人网站