2022年2月

下载哪吒 nezha-agent_linux_arm.tar.gz
哪吒
上传ROOT目录给于权限

chmod 755 nezha-agent

设置开机自起

cd /etc/init.d

touch S96nezha
chmod 755 S96nezha
echo "sleep 10" >> S96nezha
echo "cd" >> S96nezha
echo "/root/nezha-agent -s 面板网址:接收端口 -p 唯一秘钥 -d" >> S96nezha

玩客云重启

mkdir filebrowser
cd filebrowser
touch filebrowser.db settings.json

宿主机文件夹

容器文件夹

说明

/path/to/root

/srv

根目录,文件存放位置

/path/to/filebrowser.db

/database/filebrowser.db

数据库

/path/to/settings.json

/config/settings.json

配置文件

docker run -d \
    --name filebrowser \
    -v /:/srv \
    -v /root/filebrowser/filebrowser.db:/database/filebrowser.db \
    -v /root/filebrowser/settings.json:/config/settings.json \
    -e PUID=$(id -u) \
    -e PGID=$(id -g) \
    -p 8078:80 \
    filebrowser/filebrowser

将宿主机根目录挂载至/srv可以用该项目管理宿主机文件,单纯做网盘可以新建一个空文件夹挂载至/srv。

此时访问ip:8078应该就可以进入了,8078端口可随便修改。

初始账号密码为:admin;admin,请及时更改。

1.编译openwrt

Target System 选择 QEMU ARM VIrtual Machine
Subtarget 选择 ARMv8 multiplatform
其它的随意
  1. 编译好的openwrt,会生成 rootfs 打包文件:
    openwrt-armvirt-64-default-rootfs.tar.gz
  2. 在装好armbian和docker的N1上,把openwrt-armvirt-64-default-rootfs.tar.gz和Dockerfile放到同一个目录下
  3. 制造镜像
    (示例用的是openwrt by lean r9.7.6源码,因此镜像名称为:openwrt-arm64 版本为 r9.7.6
    docker build -t openwrt-arm64:r9.7.6 .
    即可生成镜像
    用docker images,可以查看到已生成的镜像
    用docker save openwrt-arm64:r9.7.6 | gzip > docker-image-openwrt-arm64-r9.7.6.tar.gz 可以把镜像导出成打包文件
    用 gzip -dc docker-image-openwrt-arm64-r9.7.6.tar.gz | docker load ,可以把打包文件还原成docker镜像
  4. 运行镜像:
    可以参见 https://www.jianshu.com/p/e62190cfff1a?tdsourcetag=s_pcqq_aiomsg
    重点:
    a. 物理网卡要开启混杂模式(promisc),有临时生效型(命令)和永久生效型(要改网络配置文件)
    b. docker创建macvlan网络
    c. 用macvlan网络绑定docker容器
    d. 物理机和openwrt容器在同一网段,但不同ip
    e. macvlan模式下,物理机和openwrt容器之间是ping不通的,这是正常现象,但第三方电脑都能ping通两者

示例:

docker创建macvlan网络,名为macnet

docker network create -d macvlan --subnet=192.168.3.0/24 --gateway=192.168.3.1 -o parent=eth0 macnet

用macnet运行openwrt实例,实例名为phicomm-n1

引用armbian的通用函数包

source /usr/lib/armbian/armbian-common

得到一个随机MAC地址,存入MACADDR变量

get_random_mac

docker run --name phicomm-n1 --restart always --network macnet --mac-address $MACADDR -d --privileged=true --ulimit nofile=16384:65536 openwrt-arm64:r9.8.17

进入op容器,修改/etc/config/network

docker exec -it phicomm-n1 sh
vi /etc/config/network

修改下面这段:
config interface 'lan'

    option ifname 'eth0'
    option proto 'static'
    option netmask '255.255.255.0'
    option gateway '192.168.3.1'
    option ipaddr '192.168.3.20'
    option broadcast '192.168.3.255'
    option ip6assign '64'
    option dns '192.168.3.1'

注:192.168.3.1是主路由的地址

   192.168.3.20是openwrt自己的地址,也就是旁路由的地址
    broadcast和dns也做相应更改

改好后,存盘,运行:
/etc/init.d/network restart
过一会就可以ping通旁路由了,然后用浏览器连上192.168.3.20就可以按一般的操作了

pyNvr脚本

安装python3

如果使用百度网盘:

pip3 install bypy
bypy info

复制链接粘贴到浏览器打开,登录,填写授权码。
如果出错
试试删掉配置文件重新授权

rm -Rf ~/.bypy
rm -f ~/.bypy.*

如果使用阿里云盘:

pip3 install aligo

安装opencv:

apt install python3-opencv


创建保存视频的文件夹,例如:

mkdir /home/videos
mkdir /home/videos/cam01

一定要创建好路径,并且跟配置的路径一致,最后一层文件夹的名称为摄像头名称(camname),参数pwd写到倒数第二层文件夹,以//结尾即可。 编辑pyNvr.py,修改配置(选择netdisk(netdisk = 1为百度,2为阿里),摄像头名称camname、串流地址url、本地存储路径pwd,单个视频时长blocktime,开启储存到百度网盘upyoby,上传完成后删除本地文件re_af_up)

运行:

cd pyNvr

运行:

python3 pyNvr.py

如果使用阿里网盘,第一次使用需要登录(百度已经登陆过)
如果二维码显示错乱,需要新建一个终端,手动找到/tmp中的图片复制到手机可以直接访问的文件夹中,扫描,如:
cp /tmp/tmp56sdcc.png /sdcard/DCIM/QRcode.png
打开文件管理,找到DCIM文件夹下的这张图,扫描即可。
测试没有问题后,ctrl + C终止程序。
后台运行程序:

nohup python3 pyNvr.py &

增加重启开机自动运行

nano /etc/rc.local


nohup python3 /root/pyNvr/pyNvr.py &
增加exit 0前面
程序极其简陋,稳定和安全毫无保障,仅仅用于不含任何隐私信息、图省钱省事还想多一层云备份的情况
仅建议用于linux不完整的安卓手机,云服务器、实体机、树莓派建议使用知名开源或商业软件,如bluebeery等。
附,国内常见IP摄像头串流地址:

海康威视
主码流:
rtsp://user:password@ip:554/h264/ch1/main/av_stream
子码流:
rtsp://user:password@ip:554/mpeg4/ch1/sub/av_stream

大华
rtsp://username:password@ip:port/cam/realmonitor?channel=1&subtype=0

TP-Link/水星安防
rtsp://user:password@ip:554/stream1
rtsp://user:password@ip:554/stream2
三星
高码流rtsp地址:
rtsp://user:password@ip:554/onvif/profile2/media.smp(720P)
低码率rtsp地址
rtsp://user:password@ip:554/onvif/profile3/media.smp

LG
高码流(主码流)RTSP地址:
rtsp://user:password@ip:554/Master-0
低码流(子码流)RTSP地址:
rtsp://user:password@ip:554/Slave-0