从零开始搭建私人服务器
以下文章属于本站原创作品,转载请注明出处
背景
本站通过 hexo 加上 Netlify 自动部署实现,只能展现静态内容,用来做博客正好。但是如果想搭建稍微复杂点的系统,就有点不满足需求了。闲暇时间在知乎上看见一篇文章。于是就动手购买配件,一步一步开始动手搭建自己的服务器,并将自己的步骤以及其中遇到的问题记录下来,目前主要打算用作 Web 应用的部署,以及私人网盘的搭建。有兴趣的同学可以参考知乎上的链接:搭建家庭 NAS 服务器有什么好方案? 。
硬件
某宝购买迷你主机,配置为赛扬 2955U + 4G 内存 + 64 固态硬盘,发货默认安装了 win 7 系统,下载安装了鲁大师进行跑分,实测跑分有 4W 左右,主机价格为 **640 RMB**;
某东购买笔记本硬盘,配置为希捷 7mm 薄盘,320G ,5400 转,价格为 **62 RMB**;
系统
- 下载系统,选择使用 Ubuntu server 18.04.3 LTS
- 准备一个 U 盘,下载 UNetbootin,选择上面下好的镜像,将 U 盘制作成启动盘
安装步骤就不用我在这里赘述了,有疑问的同学可以参考此链接,Ubuntu 18.04 Server 版安装过程图文详解 。之所以安装 Ubuntu server 版的原因是,买来就是当作服务器的,如果安装桌面版的话,相信大多数人安装系统成功的第一件事就是进行各种个性化的设置,并且花大量时间去进行各种软件的安装以及桌面美化工作。这与我们搭建服务器的初心反而背道而驰了。
- 花生壳内网穿透
进入 Ubuntu server,下载安装花生壳 Linux 版,可查看花生壳官方帮助文档 ,按文档来注册花生壳账号,注册成功后除系统默认赠送的一个域名外,还可以注册一个免费域名,但是需要花 6 RMB 开通体验版内网穿透功能。体验版有端口限制,目前我添加了两个映射,http 映射为服务器 Webmin * 的端口,之后可以利用 nginx 来进行管理。另外一个 tcp 映射是用作 SSH 远程登录的,其中服务器端口为 22。
这里简单介绍下 ssh 远程登录命令的使用,内网下面使用 ssh [内网IP] -l [用户名]
,按照上图右侧添加端口后,可以使用 ssh [用户名]@[域名] -p [外网端口]
。
应用
Webmin 对服务器进行可视化管理
Docker 容器基本操作
Docker 现在如日中天,这不是单纯的炒概念,而是确确实实解决了开发与运维的痛点,因此在企业开发中得到了非常广泛的使用。
容器创建加启动:
后台型容器,以 nginx 为例
1
docker run --name nginx -d -p 8080:80 nginx
--name
表示创建容器的名字,-d
表示容器在后台运行,-p
表示将容器的 80 端口映射到宿主机的 8080 端口。交互型容器,例如创建一个 Ubuntu 容器
1
docker run --name ubuntu -it ubuntu /bin/bash
其中
-it
参数,i
表示开发容器的标准输入,t
则告诉 docker,为容器创建一个命令行终端,读者就可以在这个终端里愉快的操作 Ubuntu 了。
容器删除:
单个删除
1
docker rm -f [id]/[name]
以上命令可以通过
name
或者id
删除一个容器。加上-f
参数可以删除一个正在运行的容器。批量删除
1
docker rm $(docker ps -a -q)
docker ps -a -q
会列出所有容器的id
,供rm
命令删除。
其他命令:
docker ps
查看运行中的容器,docker ps -a
查看所有容器。- 使用
docker start
命令结合容器 id 或者容器 name 可以启动一个容器,通过docker stop
命令可以终止一个容器。
使用 Portainer 对 Docker 进行可视化管理
通过 docker 来部署 portainer:
1 | docker volume create portainer_data |
在浏览器输入ip地址:9000
就可以进入 portainer 页面了。首次登录需要设置一个账号,根据提示进行设置即可。
安装 Nextcloud 搭建私人网盘
Ubuntu 支持 snap 安装,仅需一行代码
1 | sudo snap install nextcloud |
同样也可以使用 docker 进行部署,最终登录进去后,效果图如下,也可以在手机应用商店搜索,安装 APP 后绑定服务器就可以进行使用了。
最后
全部过程下来一共花费 **708 RMB**,并且之后的花销主要就是电费,该迷你主机使用 12w 电源,功耗也是十分小的。但是在之后无论是想锻炼自己的技术,做出一些真正实用的系统,或者存储个人文件来说,都是非常便利的,再也不用担心下载文件不安全或者被限速啦。