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 表示把证书添加到「系统」。默…
iOS 13 新增的创建 Key Window 的方式
Jan 30, 2023
iOS 13 开始,SceneDelegate 取代了原来 AppDelegate 里的大部分代理方法,如果 App 最低系统要求是 iOS 13,那么就不会走原来 AppDelegate 里的代理方法了。 对应地,原…
[教程]使用证书助理创建自签名证书
Dec 21, 2022
在 macOS 上可以使用图形界面创建自签名证书,不需要记住 openssl 冗长的命令。 Apple 在 iOS 13 和 macOS 10.15 中对自签名证书有一定的要求:https://support.ap…