普通机顶盒改造成微服务器
前言
之前就尝试过捣鼓本地服务器,但是上次用台式主机改装的那台服务器由于噪音大、耗电、部分功能无法使用等缺点,搭建之后没多久就丢在角落吃灰了。前段时间看到几篇用机顶盒做服务器的帖子,顿时又有了继续捣鼓的想法。在某夕夕上买了一个刷好Ubuntu系统的老款机顶盒,开启了我的改造之路。
这款机顶盒配置不算高,但平时用来搭建一些静态网站或者用来本地调试项目还是足够的。
前期准备
准备好机顶盒、HDMI线、电源线、网线或无线网卡(要免驱的)、显示器、电脑、键盘
给机顶盒插上电源线、网线或无线网卡、键盘,并且通过HDMI线连接到显示器
登录账户
账号密码商家有给,直接登录(登陆后可以自行选择是否更改密码)
连接Wi-Fi
直接插网线的话跳过这部分
查看网络设备列表,找到类型为wifi的设备,记住前面的名称,一般默认是“wlan0”
1 | nmcli dev |
注意,如果列出的设备状态全部是 unmanaged 或者没有看到wifi 类型的设备,尝试重新拔插网卡或者清空 /etc/network/interfaces下的网络设置,然后重启
开启WiFi
1 | nmcli r wifi on |
扫描附近的 WiFi 热点
1 | nmcli dev wifi |
连接到指定的 WiFi 热点
1 | nmcli dev wifi connect "WiFi名称" password "WiFi密码" ifname 网卡名(一般为wlan0) |
进行系统更新
对系统进行一次全面更新,防止部分软件源链接失效
1 | apt-get update |
配置SSH
安装并配置好SSH后,我们可以在其他设备远程控制该服务器。使用以下命令安装,遇到需要确认的地方输入“y”然后回车即可
1 | apt install ssh |
生成密钥,下面三个地方都不需要输入东西,直接回车就可以了
1 | ssh-keygen |
查看运行状态,如果是“running”的话就没问题了
1 | service sshd status |
然后就可以通过SSH工具进行连接了(这里使用的是MobaXterm Professional)
连接成功后就可以将机顶盒外接的键盘和显示屏移除了
安装Docker
后续通过Docker安装软件可以避免很多因环境依赖而产生的问题,所以先把Docker安装上
1 | apt install docker.io |
安装1Panel
1Panel 是一个现代化、开源的 Linux 服务器运维管理面板,与宝塔类似,虽然功能没有那么丰富,但是在这个微服务器上已经足够了。
使用以下命令安装,有些需要填写的信息根据提示进行填写即可(大部分默认就可以了,输入密码的时候不会显示)
1 | curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh |
安装成功后会看到这些信息,复制出来保存好
在浏览器打开1Panel面板(地址是上面的内网地址)
通过刚刚设置的账号和密码登录进后台
在应用商店安装OpenResty(如果默认的80端口号被占用了改成其他端口号)
安装完之后就可以新建网站了
这里先简单创建一个默认的静态网页
可以直接访问
到这里基本上就已经配置得差不多了,在内网部署调试项目都可以了,但要想通过互联网访问自己的网站或服务,还得进行下面的内网穿透。
部署SAKURA FRP
打开SAKURA FRP官网注册登录并完成实名验证
打开隧道列表
创建隧道
选一个合适的节点(国内节点对域名备案有要求)
选TCP隧道,隧道名自定义,端口号要跟上面创建的网站的端口号一致,选上自动HTTPS
创建完隧道之后,在用户信息页面复制访问密钥
通过Docker安装SAKURA FRP,访问密钥就粘贴刚刚复制的,远程管理密码自定义
1 | sudo bash -c ". <(curl -sSL https://doc.natfrp.com/launcher.sh)" |
安装完成后需要在1Penal防火墙放行对应端口
访问后台管理页面,输入webUI密码连接启动器
进来后就可以看到刚刚创建的隧道,双击它就可以启动了
启动后可以在右上角的弹窗中看到分配的网址和ip,如果没看到的话也可以在日志中找到
此时就算不在同一个网络下只要访问这个网址也可以打开我们的网站了
如果想要绑定自己的域名,需要有域名和公网服务器。先将域名解析至公网服务器
在公网服务器添加站点
添加反向代理,目标URL填上面内网穿透分配到的网址+端口号或者IP+端口号
这样就可以通过自己的域名访问网站了
安装OpenP2P
一些隐私性不强的网站或服务可以通过上面的方法发布到互联网,但是一些隐私性比较强的服务(比如SSH)如果也用上面的方法就会存在很大的安全隐患,而OpenP2P就可以很好地解决这个问题。OpenP2P是一个开源、免费、轻量级的P2P共享网络,加入该网络的设备可以直接访问其它成员,或者通过其它成员转发数据间接访问。如果私有网络无法完成通信,将会到公有P2P网络寻找共享节点协助通信。
在OpenP2P官网注册登录
登录后需要先在微服务器上安装服务,使用Docker方式安装,复制安装指令
粘贴指令回车就自动安装好了
在1Penal面板的容器里可以看到刚刚部署的服务
根据指引在另一个设备上也安装OpenP2P服务(这里用的是Windows,下载客户端运行就可以了)
安装完成之后稍等一会就可以看到在线设备了,然后点击P2P应用
先创建一个SSH应用,应用名字自定义,本地端口也自定义,尽量不要与已有端口冲突,协议选TCP
电脑先切换到另一个WiFi(与微服务器不在同一个网络),等到左上角那个圆点显示为绿色就是连接成功了
在SSH工具创建连接,远程主机输入电脑本地IP(不是微服务器的IP),端口填写上面设置的端口(这里是222)
成功连接
结语
现在已经完成微服务器的改造,后面可以直接在上面进行项目开发、部署和测试,也可以在上面搭建网站。另外,为了保证每次重新连接WiFi后微服务器的IP不会改变,我直接在路由器里面将目前使用的IP与微服务器的MAC地址绑定了。目前看来,整个微服务器非常迷你,没有任何噪音,功耗也很低,后续计划把现有的项目都移到里面,这样就能省下不少租赁云服务器的费用了。
(部分素材来源于网络,如有侵权请联系作者删除)