软路由折腾(1)安装系统及配置

978 阅读5分钟

刷知乎时,碰到一个软路由的名词,后来经过了解其实就相当于一台 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 的虚拟机

  1. 到官网: www.proxmox.com/en/download… 下载 pve 的 iso 镜像,如果嫌速度慢,可先下载 bt 种子文件,然后用迅雷打开下载(实测有效,浏览器龟速下载)。

  2. 下载:sourceforge.net/projects/wi… win32 引导盘制作工具,并安装

image.png

  1. U 盘插入电脑,打开 Win32DiskImager工具

镜像文件选择自己刚刚下载 pve 镜像文件,Device 选择自己的U盘盘符,点击 Write 写入,选择Yes,等待写入成功。

注意:写完后,会提示是否格式化U盘,此时只用点击取消即可,然后拔出 u 盘。

  1. 安装过程参考:www.jianshu.com/p/a2ad1aed6… ,此处不再赘述,安装成功后在同一局域网主机的浏览器中输入 ip:8006 可访问 pve 的管理界面

注意:关于 pve 的网络配置,笔者是将软路由设备插入到主路由的一个 lan 口上的,所以随便选择还没有被占用的 ip 地址。一般情况下如果想知道自己局域网的网络配置,可以在自己的任意一台连接到同一个局域网的主机上(比如连接了本地局域网 wifi 的电脑)的 shell 中输入 ipconfig:

image.png

即可判断本局域网下的网络配置,或者你也可以登录到主路由器的管理界面查看。我们设置 pve 的配置时也可以用上述的网关、子网掩码,但是ip地址要设置和上述不一样的地址,比如我这里设置为 192.168.2.8

pve 安装 centos

在 aliyun 找一个 centos 的镜像下载下来:developer.aliyun.com/mirror/ ,然后上传到 pve:

image.png

点击 pve 顶部菜单

image.png

即可进入创建虚拟机的界面,此时 pve 的列表中会多出一台刚安装的 centos 。点击启动,进入 centos 的安装程序,安装流程可以参考:blog.51cto.com/hefenglu/45…

此外需要注意的是:设置 centos 的 ip 为局域网网段一个不被占用的 ip (如 192.168.2.100),centos 的网关、子网掩码和 pve 设置的一样,不然将上不了网。

image.png

并设置好 root 密码:

image.png

如果还上不了网,可以在命令行中配置 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

image.png

目前分配了 32G,运行了大概一周了,加上激励的,日收益大概 1-2 元。

注意及踩坑

centos 安装 nodejs 方法:

先安装 git

yum install git

然后参考 安装 nvm ,再安装 node

help.aliyun.com/document_de…

关于设置镜像源

为什么要设置,因为有时候要安装一些包,总会出现 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 安装

网络上很多方法,最简单的还是菜鸟里边的

docker 容器跑网心云时总一会儿就退出了

网上找了很多方法,没有解决,最后将 docker service 设置为开机自启动就好了:

systemctl enable docker

参考: blog.csdn.net/chj_1224365…

折腾打算

  • 研究一些可以私有化部署的服务,比如 Git-lab、jinkens 等搭建前端的 ci 体系
  • 跑通整个部署流程,目标就是可以自己实现一整套基于 nodejs 的 web 应用的自动化部署方案
  • 搭建一个私人内容管理站点,包括文本、照片等一些资源,使用上述部署流程
  • 尝试自动化发布 npm 包等
  • 内网穿透探究,可选方案:ipv6+ddns 或者 frp + 云服务器