普通机顶盒改造成微服务器

20240918031055971
20240918031056514
 点击上方蓝字
发现更多精彩
 

 

 

前言

Preface

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

20240918031056333

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

20240918031058711
20240918031059416

Part.01

前期准备

1

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

2

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

Part.02

登录账户

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

20240918031100668

Part.03

连接Wi-Fi

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

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

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

开启WiFi

nmcli r wifi on
20240918031103517

扫描附近的 WiFi 热点

nmcli dev wifi
20240918031104306

连接到指定的 WiFi 热点

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

Part.04

进行系统更新

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

apt-get update
20240918031107206

Part.05

配置SSH

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

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

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

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

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

Part.06

安装Docker

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

apt install docker.io
20240918031116253

Part.07

安装1Panel

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

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

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

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

20240918031120568

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

20240918031121699

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

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

20240918031124304

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

20240918031126299

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

20240918031127699

可以直接访问

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

Part.08

部署SAKURA FRP

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

https://www.natfrp.com
20240918031130563

打开隧道列表

20240918031131514

创建隧道

20240918031133520

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

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

20240918031136719

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

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

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

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

20240918031140763

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

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

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

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

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

20240918031147678

在公网服务器添加站点

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

20240918031150504

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

20240918031151448

Part.09

安装OpenP2P

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

在OpenP2P官网注册登录
https://console.openp2p.cn
20240918031153328
登录后需要先在微服务器上安装服务,使用Docker方式安装,复制安装指令

20240918031154345

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

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

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

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

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

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

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

20240918031204156

成功连接

20240918031206505

Part.10

结语

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

20240918031207431
20240918031059416

 

阅读剩余
THE END