使用 pkgbuild 制作 RarLab RAR 安装文件
Oct 10, 2023
WinRar 的 macOS 版本只有命令行程序,而且把 x64 和 arm 版本分开提供,对于用户下载和安装都很不方便。 下载 arm64 下载 x64 然后把 rar 和 unrar 合并成 universal 的单文件: lipo -create rar-arm/rar rar-x64/rar -output rar lipo -create…
使用 CSS Flex 实现指定间距的九宫格
Jul 29, 2023
有这样的需求:在指定的宽度中,实现一个 9x9 的九宫格布局,item 之间的间距是固定的,比如 4px。item 的宽度等于容器宽度减去间距后平分,需要…
OpenWRT 22 配置 NAT66
Jul 22, 2023
以下操作仅适用于 OpenWRT 22 以及更高版本,低于 22 版本不支持。 nat66 是用于内网 IPv6 共享公网 IPv6 上网的方案。例如你的运营商只分配给你一个后缀是 126 的 IPv6 地址,或者公…
Swift 的元组(Tuple)
May 06, 2023
元组(tuple) 是 Swift 的一种数据结构,可以理解为匿名的 struct。 元组可以是参数,返回值,也可以是属性类型,合理使用元组可以使代码更简洁:…
修改 TTL 的值
May 05, 2023
TTL 是 64 或者 128 会被认为是 PC 设备或者是通过热点上网,修改路由设备的 TTL 值可以让运营商认为流量来自于移动设备。 Linux sudo sysctl -w net.ipv4.ip_default_ttl=65 sudo sysctl -w net.ipv6.conf.default.hop_limit=65 OpenWRT 修改所有 WAN 流量的 T…
轻量级的时间同步客户端 systemd-timesyncd
May 03, 2023
以前一直使用 ntp, ntpdate 和 ntpsec-ntpdate 来同步系统时间,虽然功能很强大但是我只想同步时间而已,并不需要其他的附加功能。 systemd-timesyncd 就是这样简单的时间同步服务。 安装:…
Linux 中使用 Clang 的 Block 扩展
Apr 29, 2023
Block 是 Objtive-C 语言的一个特性,Clang 把这个特性作为扩展带到了 C/C++ 中: https://clang.llvm.org/docs/BlockLanguageSpec.html 先从 LLVM 的源安装最新版本的 Clang: sudo apt install lsb-release wget software-properties-common gnupg2 安装 LLVM 源: sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" 同…
使用 OpenSSH 连接到 OpenWRT 的 SSH 服务
Apr 25, 2023
OpenWRT 默认使用的是 Dropbear SSH 服务器,macOS 上的 SSH 默认是 OpenSSH,它们使用的密钥格式不同。 Dropbear 可以使用 OpenSSH 格式的公钥(id_rsa.pub),但是…
理解字节顺序的大端和小端
Apr 12, 2023
大端和小端是用来描述字节在内存中存储的顺序: 大端 (big endian):内存中的高位地址。 小端 (little endian):内存中的低位地址。 字节序的最小数据…
使用命令行把 p12 证书导入系统钥匙链
Feb 19, 2023
使用 OpenSSL 把 p12 格式转换为 cer 格式: openssl pkcs12 -in MitM_CA.p12 -clcerts -nokeys -out MitM_CA.cer 把 cer 格式的文件导入到系统根证书中,并设置为信任: sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain MitM_CA.cer -d 表示把证书添加到「系统」。默…