说明:现在几乎所有家庭级别的路由器都是基于OpenWrt进行衍生搭建的。
https://openwrt.io/(极路由HiWifi创建的开源站点,极路由系统有这个衍生而来)
Posted Kannnro
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenWRT 软路由部署青龙面板教程相关的知识,希望对你有一定的参考价值。
在服务器上部署青龙面板有非常多弊端:
而把青龙面板部署在软路由上,能够避免以上的所有缺点。动态家宽 IP,与常用登录地一致;青龙面板可以直接通过软路由上的插件(比如小猫咪)科学,不需要额外设置;大内网,不用担心被扫端口。
而要说最入门的软路由,当然非 R2S 莫数(N1 单网口还是差点意思),咸鱼上价格 200 出头,买全新的也贵不到哪里去。
有人担心 R2S 的性能会不会过于羸弱,但青龙面板占用资源不多,1G 内存运行 小猫咪 + ADGuardHome + 青龙面板 + Spy 只占用到 500M 左右,绰绰有余。实测已经稳定运行两个月,作为主路由几乎感受不到性能损失。
只要你的电源(5V2A,建议 5V3A)和 TF 卡(A1 以上,推荐三星)合格,作为主路由顺便跑个青龙面板是完全没问题的。
如果还是不放心,又恰好财力雄厚,完全可以加钱买性能更好的。本教程适用包括但不限于 N1、R2S、X86 等所有能够运行 OpenWRT 系统的软路由。
准备:运行 OpenWRT 的软路由(本文以 R2S 为例)、SD 卡、读卡器、网线、一颗折腾的心
Let’s start!
注:如果你用的是其他型号的软路由,请自行搜索相应固件和刷写教程
推荐骷髅头大佬的 Docker 版本固件,其他固件自测
https://github.com/DHDAXCW/NanoPi-R2S-rk3328/releases
选择 Docker容器版_全插件
版本,下载 xxxx.squashfs-sysupgrade.img.gz
的文件
附:未集成 Docker 的固件可以手动安装 DockerMan 插件:
在 OpenWRT 后台 系统-软件包 手动安装 luci-lib-jsonc、luci-lib-docker、luci-app-dockerman,重启软路由
然后插入读卡器,下载 balenaEtcher https://www.balena.io/etcher/ 刷写固件
安装后打开,点击 Flash form file
,选择刚刚下载的固件,Select taget
选择读卡器,然后点击 Flash
刷写完成后把 SD 卡插入 R2S,擦腚揩鸡!
电脑网线连接 R2S LAN 口(靠近电源口的那个网口)
由于 OpenWRT 默认设置不和主路由在同一网段无法直接访问后台,因此要先修改电脑网络配置:
网络和 Internet - 网络属性 - IP 分配
改成手动,IP 地址填写 192.168.11.x(x>1)
、网关和 DNS 都填写 192.168.11.1
,子网掩码 255.255.255.0
,保存
然后浏览器访问 192.168.11.1
,用户名:root 密码:password,顺利进入后台
系统 - 管理权 先修改后台密码,下方 SSH 访问按图勾选,保存并应用
因为后面有需要用到 SSH 的地方,懒得特意去下软件的朋友可以用 OpenWRT 后台里的系统 -TTYD终端,功能一样。
建议先配置好网络,能用到软路由的朋友应该不用我教吧~
作为主路由 PPPoE 拨号还是旁路由自由选择,只要能够确保连接到网络就行
OpenWRT 后台左侧栏,Docker - 容器,点击添加:
选择命令行:
复制以下命令(直接在 SSH 终端执行也可以):
docker run -d --name qinglong \\
-p 5700:5700 \\
-v /root/ql:/ql/data \\
--restart=always \\
whyour/qinglong:2.11.3
注:之所以指定拉取 2.11.3 版本是因为 Spy 与这个版本的青龙兼容性最好,再高会有奇怪的 bug 甚至无法连接
点击提交,等待执行完成,过程非常慢,Be patient
如果报错 /overlay 分区空间不足,你可能需要扩容分区,参考:https://mlapp.cn/1011.html
具体教程:
系统 - 磁盘管理
(即 DiskMan 的 luci 界面)可以看到磁盘标签下空余了大量空间未利用,点击修改,在分区信息标签下找到空闲空间最大且标注了 Free Space 的那一栏:ext4
文件系统,等待格式化完成。lsblk
查看分区信息:mount /dev/mmcblk0p3 /mnt
lsblk
查看分区信息,可以看到 mmcblk0p3
的挂载点变成了 /mnt
/overlay
分区下的所有文件拷贝至刚刚建立好的分区内:cp -f -a /overlay/. /mnt
ls -a /overlay
ls -a /mnt
比对文件是否拷贝成功(少一个 lost+found
应该问题不大),sync
同步文件umount /mnt
卸载分区系统 - 挂载点
点击生成配置,勾选 自动挂载未配置的磁盘 / Swap / 磁盘 三项(除了第一项都已经默认勾选了)/dev/mmcblk0p3
,点击修改,勾选启用此挂载点,挂载点选择 作为外部 overlay 使用
,保存应用/overlay
,保存应用并重启 OpenWrt容器成功启动之后,访问 R2S IP 地址:5700,就可以看到熟悉的界面辣~
如果一开始网页界面报错是因为青龙面板还没有完全启动,耐心等待
之后的设置不再赘述,请参考其他教程
这里补充一下依赖安装的方法,适用于脚本报错 can't find module xxx
的情况
手动安装
在青龙的依赖管理标签页,根据缺失依赖的类型 NodeJS(.js
脚本) / Python3(.py
脚本) / Linux 来添加
举例:
比如说一个脚本的日志有如下报错:
Traceback (most recent call last):
File "/ql/data/scripts/shufflewzc_faker2_main/jd_check_dependent.py", line 20, in `<module>` import requests, os, platform
ModuleNotFoundError: No module named 'requests'
可以看到这是一个 .py
脚本,缺失了一个叫 requests
的依赖
我们在依赖管理中切换到 Python,新建依赖,名称填入 requests
,点击确定就会自动安装依赖
或者可以 docker exec -it qinglong bash
,在容器内使用命令行安装,比如 pip install requests
注意:脚本里报错缺失 execjs
的依赖,直接安装会报错找不到对应的包,需要安装 PyExecJS
使用依赖修复脚本
Faker 库中提供了依赖修复脚本,直接在定时任务中搜索 依赖
,手动执行即可
需要特殊设置的脚本:
单容器 二叉树修复脚本依赖文件:
需要在配置文件 config.sh
中添加一行 export ec_fix_dep="true"
再运行才会自动修复依赖
青龙日志分析 && 自动补全依赖:
同样是在 config.sh
中添加 export QL_LOG_AUTO_INSTALL_DEPEND="true"
然后手动运行一次,看看自动修复是否会报错,如果有报错则使用青龙的依赖管理手动安装,查看安装日志,看看安装命令是不是 pnpm
如果是的话,需要额外为脚本指定 npm 包管理器,在 config.sh
中添加 export QL_LOG_NPM="pnpm"
想使用 Spy,请确保软路由已经全局科学,方法自行研究
参考:
SSH 连接到 R2S,依次执行以下命令(务必等待上一条命令执行完毕再执行下一条)
wget -O autospy https://raw.githubusercontent.com/xieshang/AutoSpy/master/docker.sh && chmod +x autospy && ./autospy
docker exec -it auto_spy bash
bash <(curl -s -L https://raw.githubusercontent.com/xieshang/AutoSpy/master/spy_update.sh)
mv auto_spy_bot.py auto_spy_bot2.py
exit
docker restart auto_spy
docker exec -it auto_spy bash
pip uninstall telethon -y
pip install telethon==1.24.0
安装完成,然后是 Spy 的具体配置,请参考上面的教程吧~
Enjoy!
说明:现在几乎所有家庭级别的路由器都是基于OpenWrt进行衍生搭建的。
https://openwrt.io/(极路由HiWifi创建的开源站点,极路由系统有这个衍生而来)
以上是关于OpenWRT 软路由部署青龙面板教程的主要内容,如果未能解决你的问题,请参考以下文章
云原生之Dokcer实战使用Docker部署openwrt软路由