配置开机启动项
编写脚本/var/services/homes/shaojiemike/wgReboot.sh
1 |
|
- 执行权限
chmod +x - 群晖WebUI -> 控制面板 -> 任务计划 -> 新增 -> 触发的任务
- 选择Root、开机事件
bash /var/services/homes/shaojiemike/wgReboot.sh
需要进一步的研究学习
暂无
遇到的问题
暂无
编写脚本/var/services/homes/shaojiemike/wgReboot.sh
1 |
|
chmod +xbash /var/services/homes/shaojiemike/wgReboot.sh暂无
暂无
默认是不开启的,文件/etc/rc.local默认也不存在
/etc/systemd/system目录下启动即可ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service1 | touch /etc/rc.local |
1 | crontab -e |
/etc/init.d目录下建立文件testsudo chmod +x /etc/init.d/test方法一:使用update-rc.d 命令将脚本放到启动脚本中去(debian中可以使用更新的insserv):
1 | $ cd /etc/init.d |
注:其中数字95是脚本启动的顺序号,按照自己的需要相应修改即可。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了。更多说明建议看man update-rc.d。
方法二:手动在rc*.d中建立软连接
1 | $ ls -s test ../rc5.d/S95test |
rc*.d,*代表启动级别,在不同启动级别启动,
K开头的脚本文件代表运行级别加载时需要关闭的,
S开头的代表相应级别启动时需要执行,
数字代表顺序
1 | $ cd /etc/init.d |
1 | /etc/init.d/test start |
使用sudo systemctl enable xxx
1 | systemctl is-enabled servicename.service #查询服务是否开机启动 |
/etc/systemd/system/读取配置文件。/usr/lib/systemd/system/,真正的配置文件存放在那个目录。systemctl enable命令用于在上面两个目录之间,建立符号链接关系。
1 | > $ sudo systemctl enable clamd@scan.service |
systemctl enable命令相当于激活开机启动。systemctl disable命令用于在两个目录之间,撤销符号链接关系,相当于撤销开机启动。1 | > $ sudo systemctl disable clamd@scan.service |
sshd.socket。.service,所以sshd会被理解成sshd.service。进入目录/usr/lib/systemd/system,修改webhook.service
1 | [Unit] |
这里有几个模块:
1 | systemctl start nexus.service #启动服务 |
Loaded: loaded (/etc/systemd/system/webhook.service; enabled;这个enabled就是开机启动的意思
暂无
暂无
原理在路由器的两个flash(firmware和firmware1)的两个系统里,写入一个支持图形化OpenWRT的新系统
查看系统型号[^1]:路由器默认是魔改的openwrt的系统:
1 | root@XiaoQiang:~# cat /etc/os-release |
刷入OpenWRT后:
1 | root@ax6s:~# cat /etc/os-release |
dropbear 是一种轻量级sshd服务

1 | nvram set ssh_en=1 # 不是1也退出1 |
修改/etc/dropbear/authorized_keys 来添加ssh公钥
修改/etc/opkg/distfeeds.conf的配置,参考
下面为x86软路由的源(由于是snapshot的安装不了,内核不匹配),如果是arm的需要看对应架构代号。
1 | src/gz openwrt_core https://mirrors.ustc.edu.cn/openwrt/releases/22.03.3/targets/x86/64/packages |
比如ax6s
1 | [root@ax6s ~]$ cat /etc/opkg/distfeeds.conf |
可以通过cat /etc/os-release查看, 上面的如下
1 | root@OpenWrt:~# cat /etc/os-release |
OpenWrt安装WireGuard命令(eSir精品小包已集成WireGuard,无需安装)
1 | opkg update |
客户端模板文件test.conf
1 | [Interface] |
"[Interface] Address" is the address that gets assigned to the (virtual) network interface (e.g. wg0).
简单来说客户端和服务器端约定的相同的虚拟地址来通信。
注意防火墙放行端口
官方客户端软件下载
注意:如果连接不上
安装依赖
1 | #iptables |
重启后出现
注意不会代理ping,所以ping不通的话,可以用curl来测试代理是否生效。https失败可以尝试http
1 | Collected errors: |
解决办法如下
1 | opkg update |
Dynamic DNS: 根據網際網路的域名訂立規則,域名必須跟從固定的IP位址。但動態DNS系統為動態網域提供一個固定的名稱伺服器(Name server),透過即時更新,使外界使用者能夠連上動態使用者的網址。
cloudflare动态域名 或者阿里云动态域名的DDNS都是很好的选择。
1 | [root@ax6s ~]$ cat ddns.sh |
修改crontab -e
1 | PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin |
脚本围绕,打印邻居路由表命令
1 | [root@ax6s ~]$ ip -6 neigh | grep 2c:f0:5d |
新建 /usr/lib/ddns/dynamic_dns_iphelper.sh
1 |
|
新建 /usr/lib/ddns/getip_demo.sh
1 |
|
脚本chmod +x就行
https://www.youtube.com/watch?v=F8z74oE71Gg&t=19s
https://xiumu.org/technology/openwrt-set-for-local-area-network-lan-equipment-ipv6-ddns.shtml
WebDAV由互联网工程任务组的工作组在RFC 4918中定义。是基于Web的分布式编写和版本控制(WebDAV)是超文本传输协议(HTTP)的扩展,
WebDAV协议为用户在服务器上创建,更改和移动文档提供了一个框架。有利于用户间协同编辑和管理存储在万维网服务器文档。
WebDAV协议最重要的功能包括:
维护作者或修改日期的属性、名字空间管理、集合和覆盖保护。
维护属性包括创建、删除和查询文件信息等。
名字空间管理处理在服务器名称空间内复制和移动网页的能力。
集合(Collections)处理各种资源的创建、删除和列举。
覆盖保护处理与锁定文件相关的方面。
可以使用https来保证安全
局域网传输,没有加密
参考教程, 开启 https 5555 端口, http 5556端口
设置特殊用户keeweb来访问下载文件夹keeweb下内容。如https://10.0.233.3:5555/keeweb/1.txt
安装RaiDrive
在1.63GB大文件的时候,SMB能稳定的跑满千兆全速
首先通过split来拆分文件来测试
1 | split -b 2M 1.mkv split.mkv |
在2M的时候,WebDav有些许优势
在4K的时候,WebDav较大优势
暂无
暂无
展示了A、B、C类IP地址的二进制表示和它们的特征:
| 类别 | 地址范围 | 网络数 | 主机数 | 说明 |
|---|---|---|---|---|
| A | 0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx | 1-126 | 2^24-2 | 第一位为0 |
| B | 10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx | 128-191 | 2^16-2 | 前两位为10 |
| C | 110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx | 192-223 | 2^8-2 | 前三位为110 |
| D | 1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx | 224-239 | 不适用 | 用于多播 |
| E | 11110xxx.xxxxxxxx.xxxxxxxx.xxxxxxxx | 240-255 | 不适用 | 保留用于实验和未来使用 |
在这个表格中:
0.0.0.0 到 127.255.255.255,第一位必须是0。128.0.0.0 到 191.255.255.255,前两位必须是10。192.0.0.0 到 223.255.255.255,前三位必须是110。D类和E类地址用于特殊用途,不用于普通的网络和主机地址分配。
ipv6 原本是为了解决ipv4不足而提出的:
0.0.0.0~255.255.255.255,其地址总量约43亿个(2的32次方),这其中还要刨去私有网段、网络ID、广播ID、保留网段、本地环回、组播地址等特殊地址段,最终的实际可用地址约为25.68亿个,全球互联网设备数是远超这个的。所以一方面设计了私有地址来上网同样是1080P 25帧,码率不同,大小差异很大。
或者(有时候会失效,eg 720P)

CRF(英文:constant ratefactor 意思:压缩质量)是动态码率,要看你拍摄的视频画面抖动切换的程度,如果比较安静就20,动的厉害就25。
crf18就接近无损,字幕组惯用20-22,crf23是默认值。 CRF的值越小,视频将会越清晰 当然视频质量就会更大。

2-pass通过两次编码,第一次编码是先对整个文件进行扫描,记录一些统计信息,第二次编码时根据前面记录的统计信息再进行编码。这么做虽然转换时间会漫长,但压出的片子会有更好的画质,画面细节更好,而且体积会更小。
常用于非实时转码的情景。
疫情线上参会邮件投递Presentation视频,邮件大小限制100MB。PPT生成的过大
直接自定义导入导出,默认设置就行(确定分辨率不变的情况下,大小无法限制)。视频部分就只有原来五分之一(中间),而且完全看不出损失。
如果要最小大小,选择“转mp4”,然后“输出设置”选择“低质量和大小”,最后在分辨率选回原来的分辨率。
如果不熟悉H.265的参数设置,压缩后不一定比H.264小。
PS: H.264中熵编码有两种方法:
CABAC动态的根据内容的码率能在效能与压缩效率上取得相当大的改善空间,但是顺序处理造成资料依存性(Data Dependency)偏高。
已知大小需求来计算需要压缩的码率。直接设置压缩后的平均码率就行,常见软件有:小丸工具箱,HandBrake, 剪映
首先需要知道如何计算码率


ffmpeg是一个自由软件,可以运行音频、视频多种格式的录影、转换、流功能,包含
1 | # 视频流码率 500k, 音频流码率 50k |
结果如下
1 | $ ls |
同样分辨率下,视频文件的码率越大,压缩比就越小,画面质量就越高。码率越高,精度就越高,处理出来的文件就越接近原始文件,图像质量越好,画质越清晰,要求播放设备的解码能力也越高。体积越大,说明压缩比小,越接近原文件。
帧率与码率的关系:帧率多,则每秒图片数目多;码率越高,每张图片质量越清晰。
VMAF - Video Multi-Method Assessment Fusion 视频多方法评估

3Mbps是1080p的甜品点。
其他标准

视频压缩原理看差评君的就懂了,讲的真好。
为什么有这么多标准:
H26x的视频的编解码“贵”:
我们知道,其实视频就是一帧一帧的图片。计算一下,一部25帧每秒,90分钟,分辨率为1024*768,24位真彩色的视频,没有经过压缩,大小为
1 | 1Byte(字节) = 8bit(位) |
从上面的计算可以看出,我们储存一部90分钟没压缩的电影需要296GB的,2部电影便可占满我们电脑整个硬盘。所以我们需要对视频进行压缩,这种视频压缩技术就是我们所说的编码。
视频编码方式:H.26X(H.261、H.262、…、H.264(目前最常用)、H.265)
音频编码方式:MP3、AAC等
通过视频压缩算法,减少了视频文件的大小。压缩比越大,解压缩还原后播放的视频越失真,这是因为压缩的同时不可避免的丢失了视频中原来图像的数据信息。
一般ITU(国际电信联盟)和ISO(国际标准化组织)来制定


B站新支持的AOM联盟的AV1标准,免费而且没有潜在的版权问题。
画质不变时,编码标准越先进,码率越低.

相对于优酷等最高大约4000的码率,虽然B站码率低,但是以普通的动画素材为主的视频而言,因为动画以简单的单色大色块居多,一般来说1500左右的码率就足够了。
目前 AVC 依然是使用最广泛的编码标准,无论新老设备都可以播放 AVC 视频,因此保留 AVC 编码可以保证广泛的兼容性。
但是 AVC 在编码超高清视频时,输出码率较高,无法保证良好的观看体验;同时很多 AVC 解码器也不支持 HDR 和 8K 视频的解码。而 HEVC 和 AV1 对于超高清视频的压缩能力明显提升,对于 HDR 和 8K 视频的支持显著改善,因此 B 站使用更先进的编码标准为用户提供服务。
低频率部分是最重要的信息。
先将视频分块,

帧间预测 & 帧内预测

关键帧I帧 与 预测帧P帧
在 H.261 的基础上加入




暂无
暂无
作者:哔哩哔哩技术 https://www.bilibili.com/read/cv16198183 出处:bilibili
Streaming Protocol & Streaming Coding
常用的流媒体协议主要有两类:
在流式传输的实现方案中,一般采用

rtmp://ip:[port]/appName/streamName官网写着
Moonlight (formerly Limelight) is an open source implementation of NVIDIA’s GameStream protocol.
那么 NVIDIA’s GameStream protocol是什么呢?
NVIDIA uses high speed, low latency video encoders built into GeForce GTX or RTX GPUs along with an efficient streaming software protocol integrated into GeForce Experience.
我只能说看上去像自研的~但是马上也要没了
Nvidia isn’t just ending support for GameStream, it’s planning to fully remove the feature from existing Shield hardware in February 2023.
Nvidia is recommending that Shield users switch to Steam Link, which is a similar way of streaming PC games to a Shield device.
有github老哥分析了。但我只能说肯定不是上面常见的类型。
1 | sequenceDiagram |
主流还是 H.264 或者 HEVC。 流式传输时为了保证帧率可能会牺牲画面。
Steam Link 的相关设置

暂无
暂无
山东布谷科技 https://www.bilibili.com/read/cv9502267?from=search&spm_id_from=333.337.0.0 出处:bilibili
Wake-on-LAN 也叫 WoL,指通过网络消息打开或唤醒计算机。
WoL 需要由另一台「同局域网」设备发送网络信号,任意有能力发送 WoL 信号 的设备都可以充当此角色;在远程办公场景中,则最好由「带有线网卡的低功耗设备」来执行,这类设备包括但不限于以下选项:
获取局域网下设备MAC地址, 或者OpenWRT直接显示
| 平台 | 工具 |
|---|---|
| Windows | Softperfect Network Scanner |
| Linux | arp-scan |
| Android / iOS | Fing / PingTools |
可以使用的幻数据包唤醒工具有:
| 平台 | 工具 | 特点 |
|---|---|---|
| Windows | wolcmd.exe | 命令行,跨网段 |
| Linux/MacOS | etherwake, wakeonlan | 命令行,同网段 |
| Android / iOS | Fing / PingTools | 可扫描 |
请注意,WoL 属于无状态协议,仅发送、不确认。
1 | WolCmd.exe 90:09:D0:15:70:B8 192.168.233.242 255.255.255.255 9 (目的地址 192.168.233.242) |
路由遇到目的MAC是广播地址怎么办?
IP的广播有三种:
路由器是三层设备,可以隔离广播,但并不是所有广播都隔离。事实上只有本地广播路由器才不转发,对于子网广播和全子网广播,路由器是转发的。
为什么呢?我们来看255.255.255.255的广播,在MAC的封装中,对应的目的MAC是广播,而子网广播和全子网广播,对应的目的MAC是单播,所以路由器会转发。所以路由器隔离的广播是目的MAC为全1的广播,对于目的MAC是单播的上层广播,路由器是不能隔离的。
1 | > netstat -r -anv |
路由器
1 | [root@ax6s ~]$ ip route get to 192.168.233.242 from 192.168.233.142 iif lan2 |
1 | Automatic Power On |
暂无
暂无
Nas 太吵,需要自动关机