从零开始的 NixOS 教程(安装篇)
前言
与 archlinux 不同, NixOS(以下简称 Nix)因其可复现构建的特性而更加适合服务器。简单来说,在 archlinux 上,你在不同的时间构建同一个版本的软件,构建出来很可能是不一样的,而在 Nix 上,不同时间构建出来的同一份软件应当是二进制级别的相同,而这种特性就非常适合服务器。同时 Nix 每个包的依赖都是独立的,都放在 /nix/store下面的子文件夹,文件夹名称通常是 对应构建的 id,不同版本的依赖直接自动链接到对应的文件。 但是 Nix 由于不支持 FHS 规范,个人认为不太适合当成个人电脑的系统,个人电脑上也不需要可复现的构建(至少我作为打包者也不关心,我只要最新的,不要可复现)。还有就是 Nix 应该会在 /nix/store 下面存放好多个不同版本的软件(作为依赖引入嘛),所以磁盘空间会消耗得比较快(服务器上当然无所谓啦)。
闲话就说到这。我之前申请了甲骨文的 ARM 免费服务器,配置为 4c24g,100G. 由于 arch 没有官方的 arm 支持,所以后来装了 Nix, 但是我还不太会 Nix, 当时是用 cloudinit 脚本一键安装 ...
使用 mitmproxy 抓包 https
这一次是要抓腾讯会议的包,前段时间有人在 AUR 给我维护的 wemeet-bin 标记了过期,并提供了新的版本号,但是,腾讯会议的下载链接不能由版本号完全确定。例如 https://updatecdn.meeting.qq.com/cos/60bbaecfb3bf32615331b07d46001353/TencentMeeting_0300000000_3.10.0.400_x86_64_default.publish.deb 这个链接中 60bbaecfb3bf32615331b07d46001353 的含义不明(其实是 deb 包 的 md5sum),我们没法由版本号推断出下载链接。因而只能跟随官网更新。
一开始我尝试按照 使用 wireshark 抓包 svstudio 的经验,采用了 SSLKEYLOGFILE 环境变量,但是发现完全没有用, QT 的应用不吃这个环境变量[^1],没有办法使用 Wireshark 来抓包。后来在群友的推荐下使用 mitmproxy 来抓包。
具体步骤
安装
首先安装 mitmproxy
1yay -S mitmproxy
然后执行 mitm ...
使用 wireshark 抓包 svstudio
背景
昨天我 AUR 上的包 svstudio-bin 又被人标记过期了,说提示应用内更新,新版本为 1.7.0。
但是我去官网查,发现官网没有放出更新,就只能自己抓包了。刚开始的时候是真的用不来 wireshark, 看着网上的教程说找 GET 请求,但是我发现我抓到的全是 TCP 或者 TLS,
根本就没有 HTTP 请求。后来在找对了关键词,搜索到了需要的方法才成功。
具体过程
我最初看到的那篇文章现在找不到了,但是和 Wireshark解密HTTPS流量的两种方法 的第二种方法是一样的。
首先在终端设置 SSLKEYLOGFILE 环境变量,
1export SSLKEYLOGFILE=/tmp/ssl.log
然后终端不要关,打开 wireshark, 找到 编辑>首选项>protocol>ssl, 在 (Pre)-Master-Secret log filename 下面填入 /tmp/ssl.log,
保存后返回到 wireshark 主界面,开始抓包。
然后在刚刚的终端里面输入 svstudio 打开 svstudio, 它会开始检查更新,我们直接同 ...
重新在 Oracle VPS 上安装 archlinux
故事背景
故事的背景其实有点惨,我之前的 oracle vps 在小太阳的帮助下装上了 archlinux, 而且平稳运行了大概两年的样子吧,后来我还把 matrix 部署在上面了。可是某一天更新了系统之后,它挂了!
ssh 也无法连上, vnc 也连不上(这其实是因为 openssh 更新了),于是我又只能把 matrix 服务器转回国内。但是,从昨天开始,我matrix 开始看不了图片了,就算服务器挂梯子也不行,始终看不了图片(享受 IRC 待遇)。这可不行啊,得想办法把 matrix 再搬到国外,因此又想起了那台停机几个月的 vps。
这里插一句,如果要装成 NixOS 的话,非常方便,似乎有对应的 Could-init 文件,在初始化 vps 的时候添加进去就好了。但是 archlinux 没有。
补充另一个方法: Kars Wang 的 gist,这个方法不需要操作 UEFI shell 也能够实现重新分区,看起来咱走了弯路。
踩坑经历
这里大家看看就好,我只说哪些做法是不推荐的。
首先,我自己的文章:在 Oracle 免费 VPS 上安装 Archlinux 肯定是 ...
使用 Bitwarden 管理密码
最近出了超星学习通的数据泄漏了一次,然后在6月27号的时候,腾讯QQ 发生了大面积的盗号事件,被盗的帐号在各种群里面发色图,造成一大群人社死。
出于惰性,我们设置密码时总是喜欢设置重复的密码,重复的用户名,重复的邮箱。这样一下就能想起来帐号密码,登录十分方便,但是一旦发生密码泄漏事件,就会导致多个帐号被盗,因为这些帐号用的都是同样的密码嘛。举个例子,要是我微博跟豆瓣用的同样的帐号密码,如果我微博被盗了或者微博的用户数据泄漏了,盗号者知道了我的微博密码,他可能也去豆瓣试试这个帐号跟密码,然后我豆瓣帐号也被盜了。
因此,偷懒用重复的密码是要不得的,况且,许多人密码甚至都懒得想,直接用烂大街的密码,比如手机号加一个字母啦,连续的数字啦,等等。这些密码就算不泄漏也很容易猜出来。那么,有没有一种办法,能够保护我们的密码,而我们又不用记太多密码呢?答案当然是有的,就是使用密码管理软件。
常用的密码管理软件
市面上常见的密码管理软件有 keepass, lastpass, 1password, bitwarden, google, apple 等等。
其中大多数人对于 google 跟 apple ...
在同一域名下部署 mastodon 与 matrix
背景
前段时间部署了 matrix 服务器,并水了一篇博客,现在又对 mastodon 心心念念,今天终于开始尝试 mastodon 了! mastodon 的部署还是挺简单的,先安装 aur 的 mastodon 包, 按照 postinstall 的指示进行。很快我就将 mastodon 部署在了境内的腾讯云服务器上。
但是,我希望我的 local domain 是 askk.cc,web domain 是 mastodon.askk.cc, 这个诉求很简单,改一下 mastodon 的配置文件就行了,参见 mastodon 文档. 不推荐参考 使用你的主网域作為 Mastodon 實例名。
可是,还有个问题是,我的主域名已经被 matrix 占用了,并且,服务端 dendrite 部署在境外的服务器上,而且主域名 askk.cc 也解析到了境外。
我该怎么办呢?
失败的尝试
首先呢,想到腾讯的 DNSPOD 可以将一个域名解析到多个 IP, 我将主域名解析到两个服务器不就行了嘛。我试了下,失败,一堆 matrix 的请求发到了 mastodon 所在服务器。
成功的尝试
想到 ...