刷知乎时,碰到一个软路由的名词,后来经过了解其实就相当于一台 mini 主机,但是可以搞很多事情,比如 all in one,one boom all boom(手动狗头)。想着自己平时有时候需要云服务器做一些自动化任务,而且这些云服务器也就 2G+50GB 配置,这在软路由上完全可以实现。此外,如果以后想玩云存储也可以基于软路由集成 nas 做一些照片、影视资源的存储服务。
硬件准备
2022.9.17 是拿到软路由的第一天,前天晚上刚装上内存条、固态硬盘。总体配置为:
- n5105 软路由
- 三星 ddr4L 3200MHz 内存条
- 三星 pm981a 128G 固态硬盘
建议有:
- usb 键盘
- usb 鼠标
- 外接显示器
- 4g 以上 u 盘
系统安装及测试
总体需要安装:
- pve
- 基于 pve 安装 centos
- centos 中跑网心云容器魔方
装 pve 的虚拟机
-
到官网: www.proxmox.com/en/download… 下载 pve 的 iso 镜像,如果嫌速度慢,可先下载 bt 种子文件,然后用迅雷打开下载(实测有效,浏览器龟速下载)。
-
下载:sourceforge.net/projects/wi… win32 引导盘制作工具,并安装
- U 盘插入电脑,打开 Win32DiskImager工具
镜像文件选择自己刚刚下载 pve 镜像文件,Device 选择自己的U盘盘符,点击 Write 写入,选择Yes,等待写入成功。
注意:写完后,会提示是否格式化U盘,此时只用点击取消即可,然后拔出 u 盘。
- 安装过程参考:www.jianshu.com/p/a2ad1aed6… ,此处不再赘述,安装成功后在同一局域网主机的浏览器中输入
ip:8006可访问 pve 的管理界面
注意:关于 pve 的网络配置,笔者是将软路由设备插入到主路由的一个 lan 口上的,所以随便选择还没有被占用的 ip 地址。一般情况下如果想知道自己局域网的网络配置,可以在自己的任意一台连接到同一个局域网的主机上(比如连接了本地局域网 wifi 的电脑)的 shell 中输入 ipconfig:
即可判断本局域网下的网络配置,或者你也可以登录到主路由器的管理界面查看。我们设置 pve 的配置时也可以用上述的网关、子网掩码,但是ip地址要设置和上述不一样的地址,比如我这里设置为 192.168.2.8
pve 安装 centos
在 aliyun 找一个 centos 的镜像下载下来:developer.aliyun.com/mirror/ ,然后上传到 pve:
点击 pve 顶部菜单
即可进入创建虚拟机的界面,此时 pve 的列表中会多出一台刚安装的 centos 。点击启动,进入 centos 的安装程序,安装流程可以参考:blog.51cto.com/hefenglu/45…
此外需要注意的是:设置 centos 的 ip 为局域网网段一个不被占用的 ip (如 192.168.2.100),centos 的网关、子网掩码和 pve 设置的一样,不然将上不了网。
并设置好 root 密码:
如果还上不了网,可以在命令行中配置 centos 的网络,首先执行 ip addr show,查看网卡名称(例如为 eth0),然后 cd /etc/sysconfig/network-scripts ,最后执行 vi ifcfg-eth0,在编辑模式添加如下内容(IPADDR、NETMASK、GATEWAY等以自己局域网为准):
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.2.100
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
重启 centos 服务器即可。
centos 中安装 docker
这里建议直接基于局域网一台主机远程 ssh 连接 centos 进行操作,因为 pve 的那个命令行用着太难受了。
打开 shell 执行 ssh root@192.168.8.100,并输入刚设置的 centos root 密码,即可远程访问到 centos 虚拟机,此时再按照 www.runoob.com/docker/cent… 执行安装脚本,即可安装好 docker,执行 docker --version 查看是否安装好。
安装网心云魔方容器,回个血
docker 镜像地址: hub.docker.com/r/onething1…
局域网下运行需要注意:zhuanlan.zhihu.com/p/380208961
目前分配了 32G,运行了大概一周了,加上激励的,日收益大概 1-2 元。
注意及踩坑
centos 安装 nodejs 方法:
先安装 git
yum install git
然后参考 安装 nvm ,再安装 node
关于设置镜像源
为什么要设置,因为有时候要安装一些包,总会出现 unable locate 的报错,此时寻找一个合适的源会很必要。
debian 系统:developer.aliyun.com/mirror/debi…
centos 系统:developer.aliyun.com/mirror/cent…
时间设置错误会导致很多linux 包安装错误
例如docker 拉镜像,会出现:www.365seal.com/y/gbvG242Qn… 中提到的报错:
# Error response from daemon: Get https://index.docker.io/v1/search?q=mysql&n=25: x509: certificate has expired or is not yet valid
执行 apt update yum update 也会出现错误。
此时便需要设置正确的时间,如何设置或者同步时间,
参考 blog.csdn.net/lisineng/ar… :
sudo date 060714092017.30
# 格式为:月日时分年.秒
或者安装依赖 ntpdate
sudo apt-get install ntpdate
# 然后同步系统时间
sudo ntpdate cn.pool.ntp.org
linux 的网络设置
如果 ping www.baidu.com 报 unable resovle location 时,意思就是不能解析这个域名,此时再 ping 一下局域网的随便一台机子 ip,如果能 ping 通说明系统的网络 ip 配置没有问题,问题出现在 dns 的设置上,然后可以直接设置 dns 为路由器 ip 为网关。如果不能 ping 通本地机器,说明当前 linux 系统的 ip 地址都有问题,需要设置 ip。
查看 ip,centos 和 debian 可以用 ip addr show,其他系统可以试下 ipconfig 或者 ifconfig 等等。
编辑 ip 地址及 dns 方法参考: blog.csdn.net/Mr_XiMu/art…
docker 安装
网络上很多方法,最简单的还是菜鸟里边的
- centos: www.runoob.com/docker/cent…
- docker compose: www.runoob.com/docker/dock…
docker 容器跑网心云时总一会儿就退出了
网上找了很多方法,没有解决,最后将 docker service 设置为开机自启动就好了:
systemctl enable docker
参考: blog.csdn.net/chj_1224365…
折腾打算
- 研究一些可以私有化部署的服务,比如 Git-lab、jinkens 等搭建前端的 ci 体系
- 跑通整个部署流程,目标就是可以自己实现一整套基于 nodejs 的 web 应用的自动化部署方案
- 搭建一个私人内容管理站点,包括文本、照片等一些资源,使用上述部署流程
- 尝试自动化发布 npm 包等
- 内网穿透探究,可选方案:ipv6+ddns 或者 frp + 云服务器