手把手教你把已经没什么用的矿机N1天天链,从百元升级成500元的家庭多用途网络中心设备。
准备:N1、CoreELEC-PhiComm_N1.arm-9.0.3.img包、CoreELEC-Phicomm-N1.arm-9.2.1.tar升级文件、N1-ADBU盘启动(傻瓜包).zip和N1刷机脚本.7z两个刷机脚本、USB Image Tool软件,还有其它一些小插件,网上可以搜到。(当然,大多数工具我会放在我的云盘里,自己在我的主页左下角找)。
1、路由wan口断网,lan口接电脑、接N1,开机,点击版本号3下,开启N1的adb
2、N1刷机脚本进行降级,自动重启n1(版本号文字没变,实际已经降级)
3、下载coreelec镜像9.0.3,USB Image Tool 1.7.5.1写入U盘做成U盘系统
4、U盘插n1靠近hdmi接口的一个usb口,用N1-ADBU盘启动(傻瓜包)的脚本重启n1,进入U盘coreelec系统。
或者还是用N1刷小钢炮里的脚本修改版,进去选3线刷模式,到了显示p230:/#这个地方,输入reboot update,重启时迅速插入U盘,进入u盘系统。
5、打开ssh、密码不要改。putty软件登录U盘上的coreelec系统后台(ip地址自己看路由或者coreelec系统信息),默认账号root,密码coreelec。
6、/flash/installtoemmc执行写入EMMC的命令。(需要注意的是9.0.2以上版本使用/flash/installtoemmc,旧版使用/flash/installtointernal,有时也可能是installtointernal)三次按yes或y,重启时迅速拔掉U盘,从emmc启动,登陆后关闭自动更新、设置中文。Kodi插件——服务程序,可以搜索到Docker,直接下载安装。不翻墙的话时间比较长。
——装好后也可以装一下https://www.right.com.cn/forum/thread-2562129-1-1.html帖子的ysp翻译的docker管理神器potainer完全汉化版for-Openwrt/群晖/斐讯N1,链接: https://pan.baidu.com/s/1tYBq12Yrs6JpaVlOp8ra9g 提取码: ey6g。 3月4日更新地址https://drive.google.com/open?id … rXiKI90t88xjBGm9y7e(不装就命令行操作,我没装)。
7、再次ssh登录后台,docker pull unifreq/openwrt-aarch64:latest下载和安装oppenwrt(文件名不同,/后的名称也不同我用的是恩山flippy 转发的https://www.right.com.cn/forum/thread-958173-1-1.html里的新版unifreq/openwrt-aarch64:r20.03.11,后来觉得功能太多用不上就换了https://www.right.com.cn/forum/thread-1905062-1-1.html帖子里740805424 发的LEDE FULL固件)
8、开启网卡混杂模式
ip link set eth0 promisc on
或ifconfig eth0 promisc 关闭网卡混杂是ifconfig eth0 -promisc
但是promisc 模式重启会失效,解决方法 :
winscp登录op的ip,账号root,密码password,编辑 /etc/rc.local 加入
sed -i ‘/exit 0/i\ifconfig eth0 promisc’ /etc/rc.local
9、创建Macvlan复用网卡,用于虚拟主机接入局域网,这里的192.168.10.0/24和192.168.10.1根据自己的网段设置
docker network create -d macvlan –subnet=192.168.10.0/24 –gateway=192.168.10.1 -o parent=eth0 macnet
查看 macvlan 是否创建成功
查看命令docker network ls
查看 docker 名为macnet的网桥详细docker network inspect macnet
10、创建并运行名为op的OpenWRT容器
docker run –name op –restart always -d –network macnet –privileged unifreq/openwrt-aarch64:latest /sbin/init
——我创建的是以下名称(容器名称注意大小写)
docker run –name op –restart always -d –network macnet –privileged unifreq/openwrt-aarch64:r20.03.11 /sbin/init
文件太大,后改用恩山740805424的op精简版安装,帖子https://www.right.com.cn/forum/thread-1905062-1-1.html:
docker run –name op –restart always -d –network macnet –privileged openwrt:acc /sbin/init
参数说明:
–restart always参数表示该容器总是跟随宿主机开机而启动
-d 后台运行
–name设定容器名称
–network 指定哪个网络,这里是macnet
–privileged 容器提权
11、查看 OpenWrt 网络配置:
docker exec op ifconfig看到br-lan 地址是错误的 192.168.1.1,下面需要修改
查看 OpenWrt route:
docker exec op route -n
进入OpenWrt容器的bash字符界面进行设置:
docker exec -it op /bin/bash
修改网关IP等信息:
vi /etc/config/network
1 | 显示config interface 'lan' |
按i键进入修改模式,光标移到对应位置修改。改好后esc键退出:wq退出保存
重启 OpenWrt 网络
/etc/init.d/network restart
退出容器到CoreELEC环境
exit
重启 OpenWrt
docker restart op
检查容器网络状态
docker exec op ping 192.168.10.1 # 路由器
docker exec op ping 223.6.6.6 # 外网
12、网页访问 Docker op
后台:192.168.10.20(自己设置的固定ip)
用户:root
密码:password 或 admin
OP 打开网络 => 接口 => 修改 => 网关 / DNS:主路由 IP。
网络 => 接口 => 修改 => DHCP 服务器(勾选忽略此接口)
OP 打开网络 => 防火墙 => 自定义规则,添加后重启防火墙。
1 | iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE |
主路由 Padavan 设置,解决网站反应慢
外部网络 WAN -> 外网设置选项卡 -> IPv4 硬件加速,由 OFFLOAD TCP/UDP for LAN/WLAN,修改为 OFFLOAD TCP/UDP for LAN
BBR(为ssr翻墙做准备)
ssh登录coreelec的ip:
1 | docker exec -it op bash |
主路由设置 => 默认网关:192.168.10.20 / DNS 服务器:192.168.10.20(也就是全部设置为旁路由op的固定ip)
13、安装pvr.iptvsimple电视插件
14、安装媒体服务器镜像n1-media-server,链接https://hub.docker.com/r/taoskycn/n1-media-server
说明:这是一个N1盒子上的媒体服务器镜像,包含 Caddy,FileBrowser,Transmission,提供“BT/PT下载”,“HTTP文件浏览”,“WebDAV”,“文件管理” 服务。
注意:Docker的安装镜像是存在国外,有时连不上,需要使用国内镜像网站。申请国内镜像网站的方法在这里可以看到:
https://blog.csdn.net/yp090416/article/details/75107938
coreelec的设置方法不太一样,修改的地方在/storage/.config/system.d/service.system.docker.service这个文件
具体不会,百度到的添加源方法会导致docker不启动。目前只能在文件名前临时加上自己的阿里云源地址进行下载。
(一)使用方法:
海外地址:docker pull taoskycn/n1-media-server:0.1
加速地址(我最后选的,速度最快):
1 | docker pull docker.mirrors.ustc.edu.cn/taoskycn/n1-media-server:0.1 |
阿里云加速地址:docker pull lt73q0mk.mirror.aliyuncs.com/taoskycn/n1-media-server:0.1
1 | docker run -it -d --restart always --name N1 -p 1001-1006:1001-1006 -p 51413:51413 --mount type=bind,source=/var/media/N,target=/root/exmedia taoskycn/n1-media-server:0.1 /bin/ash |
(以上命令是#生成并后台运行name为N1的容器,“N”为外接存储路径,第二条就改成了我的存储路径,挂载到Docker内,根据情况自行修改)
进入容器字符界面 docker exec -it N1 /bin/ash
启动各个服务/root/start.sh 回车
(启动后修改该文件第一行建立目录为/media/download,这是tr下载目录)
如需停止服务,需要再次进入容器字符界面并执行 /root/stop.sh
退出容器 exit
(#已经做好备份,下次直接上传到tmp路径用下面命令恢复容器:
1 | docker import /tmp/n1-media-server.tar n1-media-server |
然后进入N1容器,启动服务,再退出)
(二)访问和设置:
Transmission Web:http://<N1的IP>:1001,账号密码transmission:transmission,已更换WebUI,配置文件位于/root/.config/transmission-daemon/settings.json。
Caddy 文件浏览:http://<N1的IP>:1002,账号密码caddy:caddy,显示外接存储下的download目录,配置文件位于/etc/Caddyfile。
Caddy WebDAV:http://<N1的IP>:1002/webdav,账号密码caddy:caddy,显示外接存储下的download目录,可配合Potplayer, Nplayer, Kodi等软件用于播放视频。
FileBrowser文件管理:http://<N1的IP>:1003,账号密码caddy:caddy,可在Web界面修改各项设置。
如需外网访问,使用路由器设置端口映射即可,考虑到安全因素,建议修改密码后操作
注意事项:
docker run会映射端口,运行前确认端口未被使用。
“51413”为transmission交换数据的端口,需要映射到公网(没有好像会影响上传)
如需手动修改Transmission配置文件,先退出进程。(通过caddy直接修改settings.json文件配置参数,改账户和密码)
15、安装aria2和webUI容器(目前还没安装成功,进不了设置界面)
docker build -t=”leafney/alpine-aria2-webui”
docker run –name aria2ui –restart always -p 6800:6800 -p 6801:6801 -p 51413:51413 -p 51415:51415 -d -v /var/media/sda5-usb-JMicron_Tech_DB1/download:/aria2down wahyd4/aria2-ui
下面附上一些常见需要用到的命令:
新建data文件夹mkdir data
重启容器docker restart <容器名>
查看pull下来的镜像docker image
查看全部容器docker ps -a
删除某个容器docker rm <容器id> (或docker rm <容器名称>)
停止所有的容器docker stop $(docker ps -aq)
删除所有停止的容器docker rm $(docker ps -aq)
删除所有镜像docker rmi $(docker images -q)
删除某个镜像docker rmi <镜像名称>
删除所有未打aaaa标签的镜像docker rmi $(docker images -q -f aaaa=true)
杀死所有正在运行的容器docker kill $(docker ps -a -q)
目录挂载:
docker run -it -v <宿主机目录>:<容器目录> <镜像名> <命令>
(或者)
docker run -it –mount type=bind,source=<宿主目录>,target=<容器目录> <镜像名> <命令>
区别: -v 参数可以,挂载多个主机目录
例如:docker run -it -P –name N1 -v /home/amor/Documents/:/opt/web_doc -v /home/amor/Downloads/:/opt/web_down image-server /bin/bash
容器中输入命令df -h可以查看硬盘的使用情况,看出docker的路径与主机上的路径的位置关系。
用docker export/import备份运行中的容器为压缩文件,和从备份文件恢复镜像:
docker export 导出容器为压缩文件(压缩文件位置是/storage,用ls命令可以看到)
命令格式如下:docker export -o “path for generated tar file” “container name”
例如:docker export -o nginx.tar nginx-test把一个运行的容器(nginx-test)导出为nginx.tar文件
docker import 把导出的文件系统导入为镜像并重命名
例如:docker import alpine.tar myalpine把刚导出的容器文件alpine.tar系统创建为镜像,并命名为myalpine
修改容器的挂载目录
方法1:提交现有容器为新镜像,然后重新运行($PWD表示当前目录)
docker commit <容器ID> <新镜像名>
docker run -ti -v “$PWD/dir1”:/dir1 -v “$PWD/dir2”:/dir2 <新镜像名> /bin/bash
然后停止旧容器,并使用新容器,如果由于某种原因需要新容器使用旧名称,请在删除旧容器后使用docker rename
方法2:export容器为镜像,然后import为新镜像
docker container export -o <tar文件名> 容器ID
docker import <tar文件名> <新镜像名>
docker run -ti -v “$PWD/dir1”:/dir1 -v “$PWD/dir2”:/dir2 newimagename /bin/bash
然后停止旧容器,并使用新容器,如果由于某种原因需要新容器使用旧名称,请在删除旧容器后使用docker rename
上传软件到容器中
docker cp xxx.tar mycentos:/root/
####在容器中安装软件(还没尝试)
将交互式的容器提交为一个新的镜像
docker commit <容器ID> <新镜像名称>
然后可以停止容器删除容器,把新镜像生成容器并运行。
-------------本文结束感谢您的阅读-------------