tmux 使用
前面简单介绍过 screen 的使用,这里再简单介绍一下 tmux 的使用,由于我用不到窗口管理等比较花哨的功能,因此,只是非常简单的记录了一下
为 CentOS 8 配置 yum/dnf 源
为了验证 Ceph 在 CentOS 8 下的构建,体验了一下新的 CentOS 系统。 # curl -O http://mirrors.ustc.edu.cn/epel/RPM-GPG-KEY-EPEL-8 # mv RPM-GPG-KEY-EPEL-8 /etc/pki/rpm-gpg/ CentOS 新的 yum 源目录结构相比以往的版本有很大的差异,驼峰式命名
在动态库中使用 Jemalloc
某些特殊场景下,我们可能会需要在动态库中使用与主程序不同的内存分配器,如主程序使用 glibc 默认的分配器,动态库使用 Jemall
eclipse bracketeer
Bracketeer 是我 eclipse cdt 必装的插件,但是大概从 eclipse 2018-09 版本开始,由于 eclipse cdt api 的变化,ICPPASTQualifiedName::getNam
Podman
Podman 的运行依赖于容器运行时和 conmon。 runc 直接在 releases 页面下载即可: https://github.com/opencontainers/runc conmon 在 Alpine 中构建无依赖的 conmon: # apk add alpine-sdk # apk add git bash glib-dev
rpm 文件格式
rpm 签名 生成 rpm 包签名的代码流程如下(以 tag rpm-4.14.2.1-release 为例): // rpmsign.c doSign rpmPkgSign // sign/rpmgensig.c rpmPkgSign rpmPushMacro("_gpg_digest_algo") rpmPushMacro("_gpg_name") rpmSign replaceSignature makeGPGSignature runGPG rpmPushMacro("__plaintext_filename"); rpmPushMacro("__signature_filename"); rpmExpand("%{?__gpg_sign_cmd}") execve makeSigTag 展开 __gpg_sign_cmd 宏如下,显然 rpm 签名是通过调用 gpg
socat 支持 socks5 代理
前面提到 socat 不支持 socks5 代理,注意到 socat v2(开发已停滞多年)实际上已经部分支持 socks5 了,因此参考 v2 版本的部分代码打了一个支持 socks5 的补
chisel proxy
前面分别介绍了基于 chisel 的 正向 和 反向 代理,实际上 chisel 服务端支持同时指定 --socks5 和 --reverse 选项,而 chisel 客户端支持指定多个 remote,因此可以
chisel reverse proxy
chisel 也可以用于反向的内网穿透,此时它的功能与 Mr.2 类似,当然还有一些类似的软件,如:nps,frp 等都可以实现类似的功能。 注意
SSH over HTTP
chisel 是一个 TCP over HTTP 隧道工具,这里我们仅用它来转发 SSH 流量。 方案一 chisel 类似于一个端口映射工具,访问 chisel 客户端的监听地址的流量会通过 chisel