前言

之前就尝试过捣鼓本地服务器,但是上次用台式主机改装的那台服务器由于噪音大、耗电、部分功能无法使用等缺点,搭建之后没多久就丢在角落吃灰了。前段时间看到几篇用机顶盒做服务器的帖子,顿时又有了继续捣鼓的想法。在某夕夕上买了一个刷好Ubuntu系统的老款机顶盒,开启了我的改造之路。

img

这款机顶盒配置不算高,但平时用来搭建一些静态网站或者用来本地调试项目还是足够的。

img

前期准备

准备好机顶盒、HDMI线、电源线、网线或无线网卡(要免驱的)、显示器、电脑、键盘

给机顶盒插上电源线、网线或无线网卡、键盘,并且通过HDMI线连接到显示器

登录账户

账号密码商家有给,直接登录(登陆后可以自行选择是否更改密码)

img

连接Wi-Fi

直接插网线的话跳过这部分

查看网络设备列表,找到类型为wifi的设备,记住前面的名称,一般默认是“wlan0”

1
nmcli dev

img

注意,如果列出的设备状态全部是 unmanaged 或者没有看到wifi 类型的设备,尝试重新拔插网卡或者清空 /etc/network/interfaces下的网络设置,然后重启

开启WiFi

1
nmcli r wifi on

img

扫描附近的 WiFi 热点

1
nmcli dev wifi

img

连接到指定的 WiFi 热点

1
2
nmcli dev wifi connect "WiFi名称" password "WiFi密码" ifname 网卡名(一般为wlan0)
如:sudo nmcli dev wifi connect "JKL" password "jkl66666" ifname wlan0

img

进行系统更新

对系统进行一次全面更新,防止部分软件源链接失效

1
apt-get update

img

配置SSH

安装并配置好SSH后,我们可以在其他设备远程控制该服务器。使用以下命令安装,遇到需要确认的地方输入“y”然后回车即可

1
apt install ssh

img

生成密钥,下面三个地方都不需要输入东西,直接回车就可以了

1
ssh-keygen

img

查看运行状态,如果是“running”的话就没问题了

1
service sshd status

img

然后就可以通过SSH工具进行连接了(这里使用的是MobaXterm Professional)

img

连接成功后就可以将机顶盒外接的键盘和显示屏移除了

安装Docker

后续通过Docker安装软件可以避免很多因环境依赖而产生的问题,所以先把Docker安装上

1
apt install docker.io

img

安装1Panel

1Panel 是一个现代化、开源的 Linux 服务器运维管理面板,与宝塔类似,虽然功能没有那么丰富,但是在这个微服务器上已经足够了。

使用以下命令安装,有些需要填写的信息根据提示进行填写即可(大部分默认就可以了,输入密码的时候不会显示)

1
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh

img

安装成功后会看到这些信息,复制出来保存好

img

在浏览器打开1Panel面板(地址是上面的内网地址)

img

通过刚刚设置的账号和密码登录进后台

img

在应用商店安装OpenResty(如果默认的80端口号被占用了改成其他端口号)

img

安装完之后就可以新建网站了

img

这里先简单创建一个默认的静态网页

img

可以直接访问

img

到这里基本上就已经配置得差不多了,在内网部署调试项目都可以了,但要想通过互联网访问自己的网站或服务,还得进行下面的内网穿透。

部署SAKURA FRP

打开SAKURA FRP官网注册登录并完成实名验证

img

打开隧道列表

img

创建隧道

img

选一个合适的节点(国内节点对域名备案有要求)

img

选TCP隧道,隧道名自定义,端口号要跟上面创建的网站的端口号一致,选上自动HTTPS

img

创建完隧道之后,在用户信息页面复制访问密钥

img

通过Docker安装SAKURA FRP,访问密钥就粘贴刚刚复制的,远程管理密码自定义

1
sudo bash -c ". <(curl -sSL https://doc.natfrp.com/launcher.sh)"

img

安装完成后需要在1Penal防火墙放行对应端口

img

访问后台管理页面,输入webUI密码连接启动器

img

进来后就可以看到刚刚创建的隧道,双击它就可以启动了

img

启动后可以在右上角的弹窗中看到分配的网址和ip,如果没看到的话也可以在日志中找到

img

此时就算不在同一个网络下只要访问这个网址也可以打开我们的网站了

img

如果想要绑定自己的域名,需要有域名和公网服务器。先将域名解析至公网服务器

img

在公网服务器添加站点

img

添加反向代理,目标URL填上面内网穿透分配到的网址+端口号或者IP+端口号

img

这样就可以通过自己的域名访问网站了

img

安装OpenP2P

一些隐私性不强的网站或服务可以通过上面的方法发布到互联网,但是一些隐私性比较强的服务(比如SSH)如果也用上面的方法就会存在很大的安全隐患,而OpenP2P就可以很好地解决这个问题。OpenP2P是一个开源、免费、轻量级的P2P共享网络,加入该网络的设备可以直接访问其它成员,或者通过其它成员转发数据间接访问。如果私有网络无法完成通信,将会到公有P2P网络寻找共享节点协助通信。

OpenP2P官网注册登录

img

登录后需要先在微服务器上安装服务,使用Docker方式安装,复制安装指令

img

粘贴指令回车就自动安装好了

img

在1Penal面板的容器里可以看到刚刚部署的服务

img

根据指引在另一个设备上也安装OpenP2P服务(这里用的是Windows,下载客户端运行就可以了)

img

安装完成之后稍等一会就可以看到在线设备了,然后点击P2P应用

img

先创建一个SSH应用,应用名字自定义,本地端口也自定义,尽量不要与已有端口冲突,协议选TCP

img

电脑先切换到另一个WiFi(与微服务器不在同一个网络),等到左上角那个圆点显示为绿色就是连接成功了

img

在SSH工具创建连接,远程主机输入电脑本地IP(不是微服务器的IP),端口填写上面设置的端口(这里是222)

img

成功连接

img

结语

现在已经完成微服务器的改造,后面可以直接在上面进行项目开发、部署和测试,也可以在上面搭建网站。另外,为了保证每次重新连接WiFi后微服务器的IP不会改变,我直接在路由器里面将目前使用的IP与微服务器的MAC地址绑定了。目前看来,整个微服务器非常迷你,没有任何噪音,功耗也很低,后续计划把现有的项目都移到里面,这样就能省下不少租赁云服务器的费用了。

img

(部分素材来源于网络,如有侵权请联系作者删除)