目录
Openwrt路由服务配置与应用

前言

U盘使用flippy版Openwrt开启docker。flippy大神限制,N1在安装Openwrt后必须要刷入emmc才会自动启动docker,且如果直接用service开启docker会出现缓存不足的错误。该问题主要是大神将docker的挂载点设置到了emmc,所以才会出现这个问题。Docker-CE说明: N1在 U盘上不启用docker,写入emmc后自动启用,数据目录是 /mnt/mmcblk1p3/docker,因此,解决问题的办法是只要把docker的挂载点加载出来就可以解决。可以利用U盘本身的剩余空间/外置存储设备作为挂载点。

比较方便的做法为:首先在windows上利用分区工具将U盘剩余空间新建EXT4分区,之后将U盘插入N1启动进入Openwrt
在系统——挂载点—–处找到创建的分区(一般为/dev/sda3
点击:挂载点———–挂载点——–添加
选中:启用此挂载点————UUID处选择你创建的分区/外置存储设备————-挂载点自定义为/mnt/mmcblk1p3/——–保存&应用

或者可以修改daemon.json文件,直接在终端输入

1
vi /etc/docker/daemon.json

将”data-root“中/mnt/mmcblk1p3/docker/修改成你要的地址。如/mnt/sda3/docker

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"bip": "172.31.0.1/24",
"data-root": "/mnt/mmcblk1p3/docker/",
"log-level": "warn",
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "5"
},
"registry-mirrors": [
"https://dockerhub.azk8s.cn"
]
}

Aria2服务

Aria2 是一个多平台轻量级,支持 HTTP、FTP、BitTorrent 等多协议、多来源的命令行下载工具。Aria2 可以从多个来源、多个协议下载资源,最大的程度上利用了你的带宽。Aria2 有着非常小的资源占用,在关闭磁盘缓存的情况下,物理内存占用通常为 4M(正常 HTTP/FTP 下载的情况下),BitTorrent 下载每秒2.8M/S的情况下,CPU 占有率约为 6%。Aria2 支持 JSON-RPC 和 XML-RPC 接口远程调用。

Openwrt启动Aria2服务之前,需对Aria2配置。新建aria2文件夹,修改默认下载目录为新建的aria2文件夹。注意保存之前一定新建好下载的文件夹,不然启动不了。设置aria2文件夹权限,否则下载失败

1
chmod 777 aria2/

Emby媒体服务

使用docker安装Emby Server镜像。hub.docker.com网站Emby Server镜像包有几种,本次试验的CPU为arm架构,故选择emby/embyserver_arm64v8镜像。新建下面文件夹

1
2
mkdir -p /mnt/mmcblk1p3/emby/config
mkdir -p /mnt/mmcblk1p3/emby/videos

拉取镜像

1
docker pull emby/embyserver_arm64v8

Emby Server运行启动

1
docker run -d --name emby --restart=always -v /mnt/mmcblk1p3/emby/config:/config -v /mnt/mmcblk1p3/emby/videos:/videos -d -p 8096:8096 emby/embyserver_arm64v8:latest

设备启动后,容器也能自启动,OK。

Centos7与宝塔面板

基于F大的Openwrt 40+测试,其他固件或版本可能不适用此教程。

1. 安装Docker管理工具Portainer

由于F大的Openwrt 40+已安装docker,且已经给出简单安装Portainer的方法

1
/etc/docker-web

安装完成后,默认端口9999,建议先进入网页设置账户及密码,选本地 Local 连接进入网页一次。

2. 创建Centos7容器

拉取Centos镜像,从镜像创建容器,这里特别说明使用“/usr/sbin/init”参数,路由重启后,会造成可视化窗口portainer无法启动(后面给到解决方案),使用此参数,而不是“/bin/bash”的好处,在于Centos7可以开机自启动,例如容器内的“bt、ssh、crontab”等都能随着路由的开机自动启动。(未测试)

1
2
docker pull centos:7 #拉取下载centos7镜像
docker run -d --name bt --net=host -i -t --privileged=true --restart=always centos:7 /bin/bash #从docker镜像创建名为bt的容器

SSH进入容器Centos7

1
docker exec -it bt /bin/bash #进入容器

安装SSH及其它常用

1
2
3
4
5
yum update #更新
yum install -y wget #安装wget
yum install -y net-tools #安装ifconfig查看器
yum install -y openssl openssh-server #安装ssh服务
yum install -y initscripts #安装Service服务

添加SSH参数并启动SSH

1
2
3
ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''

编辑SSH配置文件,更改并启用端口。修改22端口避免和Openwrt冲突,这里改为822,并去除“#”注释开启PermitRootLogin yes允许root登录。

1
vi /etc/ssh/sshd_config   #编辑文件

启动SSH服务,当没有报错,并出现PID号,说明启动成功。你可以路由ip+822端口SSH访问容器Centos7。

1
/usr/sbin/sshd -D &

如果安装了宝塔面板ssh登录端口,一定要进入登录宝塔网页后台,找到安全——防火墙,添加822 放行端口,不然可能无法连接容器ssh的。

1
passwd  #修改容器账户名为root的ssh登录密码

3. 宝塔面板

安装宝塔面板5.9,安装完成就可以登录了,宝塔面板7.0以上版本可能安装失败。

1
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

宝塔安装过程中,如有错误代码如:You are using pip version 9.0.1, however version 20.1.1 is available ,可以使用下面命令升级

1
2
3
yum -y install epel-release python-pip
yum -y install python-pip
python -m pip install --upgrade pip

LNMP总是出现各种错误,安装失败,执行日志报错如下

1
2
3
4
./configure: error: the HTTP image filter module requires the GD library.
You can either do not enable the module or install the libraries.

make: *** No rule to make target `build', needed by `default'.  Stop.

载安装完gd图形库安装更新成功,命令如下

1
yum -y install gd-devel

另一报错

1
2
3
4
configure: error: Invalid C++ compiler or C++ compiler flags
make[1]: *** [pcre-8.43/Makefile] Error 1
make[1]: Leaving directory `/www/server/nginx/src'
make: *** [install] Error 2

执行命令,得以解决

1
yum -y install gcc-c++

还有错误

1
2
3
4
5
6
make[2]: Leaving directory `/www/server/nginx/src/openssl'
Operating system: aarch64-whatever-linux2
You need Perl 5.
make[1]: *** [/www/server/nginx/src/openssl/.openssl/include/openssl/ssl.h] Error 1
make[1]: Leaving directory `/www/server/nginx/src'
make: *** [install] Error 2

Nginx安装加载ssl错误openssl问题。执行yum install openssl openssl-devel命令,也未能解决。本想用下面命令升级宝塔面板版本,结果升级失败了

1
curl http://download.bt.cn/install/update_to_6.sh|bash

虽然升级宝塔面板失败了,但是安装LNMP(Ngnix1.14,MySQL5.5,PHP7.2,phpMyAdmin4.4)成功了 ,一脸懵逼,以后有时间再研究。重启路由后,宝塔面板不能自启动,可以参考恩山论坛的解决方法,这里不给方法。

1
2
3
4
5
/etc/init.d/bt stop    #停止
/etc/init.d/bt start    #启动
/etc/init.d/bt restart    #重启
/etc/init.d/bt default    #忘记帐号密码
/etc/init.d/bt stop && chkconfig --del bt && rm -f /etc/init.d/bt && rm -rf /www/server/panel    #卸载

Rclone工具

Rclone 是一款的命令行工具,支持在不同对象存储、网盘间同步、上传、下载数据。运行 Rclone 开始配置:

1
./rclone config

挂载rclone磁盘目录与卸载rclone磁盘目录

1
2
3
rclone mount 起的名字: /挂载的目录 --allow-other --allow-non-empty --vfs-cache-mode writes &
df -h #查看是否挂载成功
fusermount -qzu /挂载的目录

其他详细步骤可以搜索相关教程,例如磁盘的自启动挂载。

FileBrowser

文件浏览器是一种创建你自己的云的软件,你可以在服务器上安装它,将它指向一个路径,然后通过一个漂亮的web界面访问你的文件。默认用户名/密码: admin/admin

第一次运行务必填好项目存放目录,然后保存应用。再手动下载,否则无法使用!

文章作者: Kylen Chan
文章链接: https://booku.ltd/posts/router-openwrt/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kylen's Blog

评论