nginx:TLS 1.3 多版本草案和 HPACK

距离我之前给 nginx 启用 TLS 1.3 已经过了 11 个月了。快一年过后,许多与 nginx 相关的程序、补丁都有了很大的变化: OpenSSL 已经在发布 1.1.1 的测试版,写本文时最新版本是 1.1.1-pre8(也就是 Beta 6)。 nginx 已经更新到 1.15.1。 nginx 的 HPACK 补丁(HTTP 头压缩补丁)的 bug 已经有另外的补丁的补丁修复,使用原先的 HPACK 补丁会导致网站访问不正常,体现为每个网站只能打开一个页面,第二个页面开始就出现协议错误。 有大佬 发布了 OpenSSL 的补丁 ,可以让最新版 OpenSSL 同时支持 TLS 1.3 的 draft 23,26,28 三个版本。 Lets Encrypt 证书已经自带 Certificate Transparency 信息了,不需要 nginx-ct 了。 2018 年 7 月 1 日起,TLS 1.0 不再被建议使用。 因此我重新调整了 nginx 的编译和运行配置,以适应 8102 年的需要。 Dockerfile 我依然使用 Docker 部署 nginx。与之前的 Dockerfile 相比,新的 Dockerfile 只是改了下版本号,...

Kimsufi 独服安装升级 ESXi 并设置软路由 的插图

Kimsufi 独服安装升级 ESXi 并设置软路由

Kimsufi 是法国 OVH 公司的一个廉价品牌,专门出租性价比极高的服务器。我自己租的是 KS-4C 型号,i5-2400 处理器,16GB 内存,2TB 硬盘,百兆带宽无限流量,只需要 13欧元 /月,性价比极高,非常适合开虚拟机做实验。 VMware ESXi(现在也叫 vSphere Hypervisor)和 Proxmox VE 是两个非常流行的专门用来开虚拟机的操作系统,且两者都是免费的。最重要的是,Kimsufi 的控制面板中都有两款系统的一键安装。但我在使用过程中发现 Proxmox VE 在网络条件不佳的情况下远程控制虚拟机经常连接不上(VNC 黑屏)或者丢键(输密码时尤其要命),因此还是换装了 ESXi。 这里又产生了一个问题:ESXi 不是完整的 Linux、FreeBSD 等系统,它不具有 Linux 等所有的 NAT 功能,也就是不能一个 IP 地址开好几台虚拟机然后做端口转发。不过,由于 Kimsufi 同时提供 IPv4 和 IPv6 地址,可以把 IPv4 给一台虚拟机用,让 ESXi 用 IPv6;再设置这台虚拟机做 NAT 就可以了。...

编写配置文件,让 Thunderbird 自动配置域名邮箱 的插图

编写配置文件,让 Thunderbird 自动配置域名邮箱

许多人在自己的网站域名上设置了邮箱系统,我也在主站 lantian.pub 的域名上使用了 Zoho 的域名邮箱。不过使用域名邮箱的一大缺点是,你很难记住邮件系统的 POP3、IMAP、SMTP 等服务器地址,一旦出现重装系统、重装邮件客户端等情况,需要重新配置时,就不得不再登上邮件系统去查看服务器地址,非常麻烦。 不过,如果你用的是 Thunderbird 邮件客户端,在设置账户时,你可能注意到,Thunderbird 在添加账户时,会有一个「从邮件服务商获取设置」的过程。这个过程实质上就是从这个域名的网站服务器上请求一份 XML 文档,其中记录了邮件服务器的设置。因此,只要手动编写这份配置文件,并将它放在网站服务器上,就可以实现 Thunderbird 下的自动配置了。 创建配置文件 配置文件中保存了 POP3、IMAP、SMTP 服务器的地址、端口号、用户名等信息。对于本站使用的 Zoho 邮件系统,配置文件如下: <?xml version= "1....

在 DN42 中设置 IPv6 反向解析 的插图

在 DN42 中设置 IPv6 反向解析

DN42 全称 Decentralized Network 42(42 号去中心网络),是一个大型的 VPN 网络。但是与其它传统 VPN 不同的是,DN42 使用了大量在互联网骨干上应用的技术(例如 BGP),可以很好的模拟一个真实的网络环境。 我在 先前的一篇文章 中加入了 DN42 网络,并在 另一篇文章 中注册了自己的域名,设置了自己的 DNS 服务器。然后,我在 这一篇文章 设置了 IPv4 的反向解析。当时由于 DN42 Wiki 上的信息有点问题,导致我当时认为不能设置 IPv6 反向解析,但经过我尝试后发现是可以的。 因为设置的是大体相同的东西,所以本文会和之前 IPv4 的文章有比较多的内容重复(复制粘贴)。 设置 IP 段的解析服务器 第一步是将自己所有的 IP 段解析到自己的 DNS 服务器上,我的服务器是 ns[1-2].lantian.dn42,可以全填。 在 IPv4 文中我直接用了原先的设置,但是因为我 IPv6 的 DNS 设置有问题,不得不改,因此只能发一次 Pull Request 修改 IPv6 的 DNS 服务器,...

在 DN42 中设置 IP 反向解析 的插图

在 DN42 中设置 IP 反向解析

DN42 全称 Decentralized Network 42(42 号去中心网络),是一个大型的 VPN 网络。但是与其它传统 VPN 不同的是,DN42 使用了大量在互联网骨干上应用的技术(例如 BGP),可以很好的模拟一个真实的网络环境。 我在 先前的一篇文章 中加入了 DN42 网络,并在 另一篇文章 中注册了自己的域名,设置了自己的 DNS 服务器。有了 DNS 服务器,我们就可以给自己的 IP 也设置上反向解析记录。反向解析记录的主要用途是反垃圾邮件,以及在 ping、traceroute 等网络工具中或许能好看一点。 设置 IP 段的解析服务器 第一步是将自己所有的 IP 段解析到自己的 DNS 服务器上,我的服务器是 ns[1-3].lantian.dn42,理论上可以全填,但是由于 DN42 现在修改配置需要发 Pull Request,流程比较长,我就保留了最初注册这个 IP 时设置的 DNS 服务器,只有 ns1.lantian.dn42。 在 git clone 下 DN42 的数据文件后,在自己的 IP 段文件中添加这样一句话: nserver: ns1.lantian....

在 DN42 中注册自己的域名 的插图

在 DN42 中注册自己的域名

DN42 全称 Decentralized Network 42(42 号去中心网络),是一个大型的 VPN 网络。但是与其它传统 VPN 不同的是,DN42 使用了大量在互联网骨干上应用的技术(例如 BGP),可以很好的模拟一个真实的网络环境。 我在 先前的一篇文章 中加入了 DN42 网络,并连接了大部分自己拥有的 VPS。(剩下几台是没有 Tun/Tap 的 OpenVZ VPS,无法加入)之前我就知道 DN42 拥有自己的域名体系,例如 DN42 的 Wiki 站( https://wiki.dn42.us/Home )就可以在 DN42 中以 https://internal.dn42 的域名访问,但是之前没有时间去完成域名注册,并且当时对 DN42 的了解还不够。这个月我完成了域名注册,就来分享一下过程。 搭建权威 DNS 服务器 权威 DNS 服务器,就是指管理某个域名记录的服务器。例如本站主域名 lantian.pub 的权威服务器是 lv3ns[1-4].ffdns.net ,就是 CloudXNS。在互联网上注册域名时,我们可以用现成的 CloudXNS、Cloudflare 等免费 DNS 服务,...

抢到了 50KVM 家一台 0.1 折的 VPS 的插图

抢到了 50KVM 家一台 0.1 折的 VPS

TG 最大主机商 50KVM 倒闭啦!原价 100 多,200 多的 VPS,现在通通 2 块钱!通通 2 块钱!(并不 起始 4 月 1 号星期天凌晨,正躺在床上看最新一集的国家队 Telegram 弹出消息,50KVM 发了一个愚人节优惠: 反正国家队看完了,那就试试看输这排 emoji 吧 第一轮尝试 尝试用 macOS 的输入法输入 emoji,然而发现并不好用,因为根本不知道这些 emoji 是什么东西 Google 「emoji 列表」 找到了一个 emoji 的列表网站 表情符号列表 等等,macOS 的 emoji 和图上的根本不是一个风格 先猜猜看吧 (尝试 5 次之后) 还是得知道是什么 emoji 字体啊,虽然凌晨 2 点人不多,但是再慢一点说不定会被别的大佬抢走 第二轮尝试 思考屌鸡(50KVM 老板)用的什么系统 macOS(以及 iOS)已经被排除了 拿起边上的 Android 手机,打开输入法,emoji 长得不一样,排除 另外主机商应该不会拿手机截图发优惠吧 在 TG 群里翻了一下,翻到了 50VZ 的优惠码照片(这两家老板是一个人)...

RoboMaster 开发踩坑日记(2018-05-28 更新)

学校组建了一支 RoboMaster 队伍,准备参加今年的比赛。因为是新校区新学生,因此我们完全没有之前的参考资料,只能自己一个个踩坑。 以下是我们在软件开发中遇到的一些坑。 硬件版本:RoboMaster 官方开发板(信仰板) 芯片型号:STM32F427IIHx 软件系统:ChibiOS 18.2.0 信仰板 HSE 时钟频率为 12MHz 而非常见的 8MHz 最坑的是信仰板的说明书和硬件原理图上完全没有提到这事。 这个问题导致我们用 STM32CubeMX 等软件算出的时钟频率远高于额定频率,并导致了如下后果: 莫名其妙的频率设置失败(设置了在合理范围内的频率,但是板子不响应了,只能短接某个电阻 Reset) USART 时序错误(明明两端波特率一样,但是收发的数据就是乱码,遥控器无法使用) CAN 数据无法应答(明明板子和电机电调都在发数据,示波器能解码出来,但是双方就是不 ACK) 以上问题在重新调整时钟频率后全部解决。 while(true); 发送 CAN 报文必须加延时 这是一个小问题。...

NAT64 服务器搭建

NAT64 是 IPv4 向 IPv6 过渡时出现的一项技术。它通过将 IPv4 的地址映射到一个 IPv6 地址段上,来让仅支持 IPv6 的设备同样能够访问 IPv4 网络。但由于仅支持 IPv6 的设备并不多,目前它在国内的应用主要是两个方面: 对于 IPv4 收费/限速/限流量而 IPv6 免费/不限速/不限流量的教育网用户,可以使用公共 NAT64 服务来省钱。 对于 iOS 应用开发者,用于搭建测试环境以通过 App Store 的审核。 我们也可以在自己的同时拥有 IPv4 和 IPv6 连接的路由器上安装相应的软件,来搭建 NAT64 服务器。常用的软件是 Tayga 和 Jool。其中 Tayga 年久失修,上次更新已经是 2011 年的事了,而 Jool 一直在活跃地更新,因此本文采用 Jool 来搭建。 安装 Jool 第一步是安装 Jool。Arch Linux 的 AUR 上有 Jool,而 Jool 在 Debian 和 Ubuntu 的官方源中都找不到,因此在这两个系统下需要手动编译安装。 对于 Arch Linux,直接 yaourt -S jool-dkms-git 即可。对于树莓派,...

树莓派 3B 折腾笔记:硬件看门狗

在计算机中,「看门狗」指的是一种硬件计时器,用于在计算机失去响应(死机)的时候重启计算机。计算机的系统上要运行一个程序不断和看门狗硬件通信。当通信中断经过一段预设的时间后,看门狗就会通过发送 RESET 信号或者切断再接通电源等方式强制重启,保证计算机上运行的服务不长时间中断。 在折腾树莓派的过程中,我也曾好几次让树莓派失去响应,结果不得不人工开关电源来重启。通过开启树莓派上的硬件看门狗功能,就可以减少这种情况的出现。 加载驱动 由于 Linux 「万物皆文件」的特点,可以通过 ls 命令直接查看看门狗驱动的状态: ls /dev/watchdog 如果有这个文件,可以直接跳到下一部分。如果没有,就要根据树莓派版本加载驱动: 树莓派 1代的驱动名为:bcm2708_wdog 树莓派 2代的驱动名为:bcm2709_wdog 树莓派 3代的驱动名为:bcm2835_wdt 使用 modprobe -v [驱动名] 加载驱动,然后再 ls /dev/watchdog 查看情况。如果驱动加载成功,...