Herald Yu

Herald Yu

429 posts published

SSH

SSH 通过跳板机访问内网主机

SSH 通过 -J 指定跳板机,所谓跳板机就是我们可以通过外部访问的内网主机,通过跳板机作为通信代理,就可以访问跳板机所在的内网中其他的主机。 跳板机:root@pve.local 内网目标主机:almalinux@192.168.1.61 连接方法: $ ssh almalinux@192.168.1.61 -J root@pve.local 转发内网主机端口到本地 进一步的,比如要将内网目标主机上的 cockpit 界面映射到本地访问,可以这样设置: $ ssh -L 9090:192.168.1.61:9090 almalinux@192.168.1.61 -J root@pve.

几个事儿
Stories

几个事儿

一 有关孩子教育的问题,我总是心虚,因为我自己还没看明白这个世界,这些里里外外的事情我怎么才能跟儿子说清楚呢,显然是说不清的。小的时候还好忽悠,长大可能就会恍然意识到原来爸爸在忽悠他。 二 朋友有很多种,我想交往的是能参加我葬礼的。 当然,我可能没有葬礼。 三 人不能和心智作对。 高露洁之于牙膏,耐克之于运动鞋,雀巢之于咖啡,例子不胜枚举。 设想一下,如果高露洁要做洗发水,耐克要做电视,雀巢要做耳机,如果你是推销员,说服人们购买这些产品该是多大的挑战。谁愿意用牙膏洗头呢? 你我也是如此,你给人留下第一印象非常重要。 四 昨晚做梦哭醒了,我梦见自己找不到妈妈了。

rclone

rclone: 文件备份到腾讯云 COS 深度归档存储

rclone 是我目前用过操作对象存储功能最完整、使用最简易的工具。 家里现在使用 Nextcloud 网盘作为统一的文件管理界面供每个成员使用,使用外部存储插件去访问本地的 minio 对象存储。minio 通过策略定义实现每个用户独享的和共享的 bucket。 本地的 minio 是 4 盘位 EC:2 结构,可以保证任意 2 块硬盘上的某个文件对象同时损坏,数据不会丢失且可自愈。家庭环境来说,这个保护级别已经足够了,但是把握起见,还是决定做一个异地备份。 minio 上的数据通过 rclone 定期手动备份到腾讯云 COS 深度归档存储,目前总数据量不足 1TB,资源包只要 120 元左右一年,存储成本非常低。 深度归档存储的特点是存储单价非常低,不过一旦需要恢复数据时,需要付出高昂的费用代价。所以我把深度归档存储纯粹当做一份保险,数据灾难时的最后一丝希望,没有意外不会请求解冻。 rclone 的数据加密功能 虽然说家庭数据没有什么怕人看的,但直接上传到公有云总觉得别扭,

Manjaro

Manjaro KDE 安装微信

参照 ArchLinux Wiki 中提供的几种安装微信的方法,实际使用下来,感觉 com.qq.weixin.spark 是最理想的,这是 deepin 社区封装的一个版本,基本与微信版本保持同步。 安装 $ yay -S com.qq.weixin.spark 使用 直接在菜单中找微信运行,第一次运行需要在 Wine 中执行初始安装,全部保持默认选项。安装完毕就和在 Windows 系统中一样了,扫码认证登录。 输入框中文乱码 我的系统版本是 Manjaro KDE 21.0.7,运行微信之后,界面正常显示中文,但输入框里面中文会显示成黑色方块。参照 这篇文章 成功解决乱码问题。解决步骤大致如下: 下载 Windows 的 simsun.

Ubuntu

Ubuntu Server 20.04.2 HWE 安装 RTL 8125B 2.5GB 网卡驱动

Ubuntu 从 20.04.2 开始,在系统安装引导菜单中多了一项 HWE 内核支持,这个内核的作用是让 Ubuntu 提前支持更多的新款硬件。 手上的机器是 RTL8215B 的 2.5GB 的网卡,这款网卡的驱动被加入到了 Linux kernel 5.9,但 Ubuntu server 20.04 的 HWE 内核也只是 5.8 内核,所以还是要手动安装驱动程序。 官方下载:https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software 下载2.5G Ethernet LINUX driver

JuiceFS

JuiceFS 共享文件系统

今天无意中在Github上发现了JuiceFS,它是Juicedata公司在2021年1月开源的项目。 项目本身应该是从2017年开始做的,只不过最近才正式开源。 JuiceFS 的工作原理是结合 Redis 高速缓存和对象存储,实现一个高速度的FUSE虚拟文件系统。我个人感觉是因为引入了Redis高速缓存,所以它能以更接近原生文件系统的性能实现对云存储的读写。当然,要实现原生文件系统的操作体验,还需要很多底层的技术细节。 项目主页中的测试信息显示,相比于亚马逊的EFS和开源的s3fs,JuiceFS 有显著的性能优势。 其实JuiceFS和s3fs的应用逻辑是类似的,都是通过FUSE把云存储挂载在本地当成文件系统来使用,但s3fs使用起来的确效果不理想,实测发现s3fs的表现远不如rclone mount。 目前测试JuiceFS来看,效果还不错,接下来还要做进一步的测试。因为JuiceFS是商业公司驱动的开源项目,有盈利需要,所以目前看下来官网和开源仓库是两条文档线路。 官网的指南是针对商业用户的,并且把JuiceFS的使用分成了免费、专业和商业三个等级,官网有图形化的用户界面创建文件系统,另外还提供了一个Python开发的脚本来处理挂载相关的事宜,给人的感觉就是更一气呵成,更简单直观。 Github 仓库那边则是纯手工操作,文档也相对比较分散,配置起来要多费些功夫。 不过话说回来,JuiceFS开发团队是很厚道的,把自己开发的优秀产品开放出来的也是值得尊敬的,而且文档虽然有些分散,但相关资料在仓库里都能够找到,所以就给这个项目点赞吧。 如果有机会,很愿意和JuiceFS开展一些合作。 相关资源 How

Docker

docker 映射 fuse 类型的存储目录

尝试使用rclone的mount挂载s3对象存储到本地,想把挂载以后的目录映射给docker容器使用,但在创建容器的时候会报错: docker: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /path/to/you. 解决办法是启用fuse的allow_other选项,编辑配置文件/etc/fuse.conf,删掉 allow_other前面的#号,启用这个功能。 然后重新挂载s3存储,添加 -o allow_other 参数: $ rclone mount minio:memory /mnt/s3 --allow-other 重启容器即可

hash

Linux 计算文件哈希值

哈希值可以用来证明文件的完整性,同一个文件,在相同哈希算法下得到的哈希值是相同的。 比如,计算图片 IMG_9414.JPG 的哈希值,并将结果写在 IMG_9414.sha256sum 文件中: $ sha256sum IMG_9414.JPG > IMG_9414.sha256sum $ cat IMG_9414.sha256sum 51a4e8abfa19ba7e911606f359ced828c51b8dfa5f72b6ea34ef0bb58290b15e IMG_9414.JPG 注意:GNU 系统上二进制模式和文本模式没有区别。

minio

minio 创建一个类似“家目录”的组策略

以下配置使用了配置变量,实现多用户家目录的功能,用户只能在与自己用户名相同的bucket里面进行完整的读写访问。PS:假设这里的对象存储服务器别名是 minio 创建配置文件 home.json { "Version": "2012-10-17", "Statement": [ { "Action": ["s3:ListBucket"], "Effect": "Allow", "Resource": ["arn:aws:s3:::*"], "Condition": {"StringLike": {"s3:prefix": ["

OMV

如何通过硬盘LED灯,识别NAS上的特定硬盘?

这里说的NAS机箱主要指的是有活动硬盘插槽的机箱,其实1U、2U等机架式的服务器也适用。 当在系统中检测到某个硬盘有坏道的时候,可以通过让故障盘的硬盘灯亮起来,从而快速定位硬盘。 方法非常简单: $ sudo dd if=/dev/sdb1 of=/dev/null 使用 dd 命令,从指定的盘上写数据到 null 设备。命令一旦执行,硬盘就会开始工作,硬盘LED灯就会亮起来,就可以瞬间找到它了。

Manjaro

Manjaro KDE OBS 录屏闪烁问题

小米笔记本 Air,双显卡。安装的 Manjaro KDE 桌面,用OBS录屏会闪屏,感觉应该是桌面管理器在重新渲染界面。 参考网上的建议,修改系统设置-显卡与显示器-显示特效混合器,修改如下: 取消勾选“开机时启用显示特效混合器” 缩放模式:锐利 渲染模式:xrender 延迟:首选低延迟 防止撕裂:自动 保持窗口缩略图:只对显示的窗口 启用“允许应用程序阻止特效混合”

OMV

omv 5 修改默认挂载点名称

大概是从 omv 5.5.20 开始,文件系统的默认挂载点名称被统一设置成了 dev-disk-by-uuid-95a27f78-b514-4aec-abf2-77e75be86e0e 这种格式,对用户非常不友好,不论新老用户,当在命令行下操作的时候,是很难区分各个文件系统的。 修改挂载点名称可以编辑 /etc/openmediavault/config.xml 配置文件,找到里面的 <fstab></fstab>这对标签中的文件挂载点信息<mntent></mntent>: <fstab> <mntent> <uuid>ed23096c-3982-4a61-8b3e-28517653adb0</uuid> <fsname>/dev/

minio

minio 纠删码

Minio 使用纠删码 erasure code 和校验和 checksum 来保护数据免受硬件故障和无声数据损坏。Minio 采用 Reed-Solomon code 将对象拆分成 N/2 数据和 N/2 奇偶校验块(N为磁盘总数)。 与 RAID 磁盘阵列的块级冗余不同,minio 的纠删码技术是文件级的,可以以文件为单位进行数据恢复,而RAID磁盘阵列只能以磁盘为单位进行数据恢复。 参照上一篇笔记minio 存储级别,在启用纠删码功能时,minio标准级别存储,至少需要2个磁盘保存校验信息,因此,在正常情况下,应该至少准备四个硬盘来使用这种数据保护技术。 但minio的纠删码技术是文件级别的,通过实践发现,可以将多个数据目录同时设置在一块物理硬盘上,比如有两块硬盘,在一块硬盘上设置 data1 和 data2 数据目录,在另一块硬盘上设置 data3 和 data4 数据目录。 $ sudo docker

minio

minio 存储级别

minio官网 minio github 仓库 MinIO Storage Class Quickstart Guide minio支持两种存储级别:Reduced Redundancy class 冗余缩减级别和 Standard class 标准级别。这两个级别可以在启动minio实例之前,通过系统的环境变量提前定义。此后,可以通过请求元数据字段x-amz-storage-class设定对象的存储级别。 存储级别的设置会直接影响存储空间或冗余级别。 比如在16块硬盘组成的minio实例中存储100MiB数据,如果设置了8个数据盘和8个校验盘,那么文件存储就会占用双倍的空间,比如100MiB文件就会占用200MiB的存储空间。而如果是10个数据盘和6个校验盘,100MiB则会占用大概160MiB的空间。如果是14个数据盘和2个校验盘,100MiB文件则只会占用114MiB的存储空间。 下表是16块硬盘的minio实例,校验盘和数据盘各种组合搭配时的存储利用率。 存储率 = 磁盘总数 / 数据盘总数 存储空间用量 = 文件尺寸 * 存储率 磁盘总数 (N) 数据盘 (D) 校验盘 (P) 存储率 16 8 8 2.00

Stories

小朋友的假期后遗症

幼儿园寒假开始以后,小朋友被送去了爷爷奶奶家,从此开启了小皇帝般的生活。吃饭要喂,小便要用瓶子接,需要什么就只管大喊“爷爷给我拿...”,“奶奶给我拿...”。 寒假结束开学了,为了让小朋友不觉得太大的反差,爷爷奶奶也跟着一起过来陪着。生活自理能力虽有退化,但回到自己家还是会有所收敛的开始恢复正常。但每天都会说“不想去幼儿园”。 昨天周一,早上反抗了一阵子意识到没有效果,还是乖乖的去了。 今天早上反抗比较激烈,孩子妈又不知道为什么突然站在小孩一边开始和我对抗,强烈谴责我对小孩的态度不对,这下好了,小朋友开始变本加厉,连哭带闹更不要去了。 可能是看到我和孩子妈吵架了,小朋友有些害怕了,灰溜溜跟着爷爷去幼儿园。可没过多久,爷爷打电话过来说小孩死活不进幼儿园。我只好匆匆忙忙又赶到幼儿园,见到小朋友抱起来连哄带骗,完全不起作用,承诺奖励冰淇淋,奖励小汽车,都不起作用。 后来所有小孩都进幼儿园了,门口的老师看到实在没办法,就帮忙去找了小朋友的班主任,老师连哄带骗的给小孩带到幼儿园门口。可他反应过来了,就死活不进去,最后是好几个老师生生给拉进去的。小孩进去以后,我特意跟老实说让帮忙留一下是不是和小朋友闹不愉快了,老实说这就是开学综合证,跟爷爷奶奶呆久了的小孩都这情况,哎。 这种情况下,爷爷奶奶只能暂时先回家了,小朋友想要调整过来还需要一段时间。

Caddy

Caddy 启用本地 https

生成本地根证书 $ caddy trust 对需要使用本地证书的配置项进行设置,添加 tls internal: pan.abc.com { reverse_proxy [::1]:8010 tls internal header { Strict-Transport-Security "max-age=15552000" Referrer-Policy "no-referrer" } redir /.well-known/caldav /remote.php/dav 301 redir /.well-known/carddav /remote.php/dav 301 } 因为在 systemd 中管理 caddy 服务,配置容器反向代理使用本地证书没问题,但本地目录的 file_server 使用本地根证书会出现权限不足无法重启

Docker

Docker 使用 IPv6

最近发现运营商 IPv6 覆盖的已经很全面了,手机和家庭宽带实测都可以互访。刚好手头闲置一个小服务器,配置一下,专门用作IPv6线路的服务给自己使用。 Docker 默认只支持 IPv4,所以需要修改一下配置文件(/etc/docker/daemon.json)才能实现 IPv6 的支持: { "ipv6": true, "fixed-cidr-v6": "fd00::/80", "registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com", "https://ghcr.io"] } 虽然 IPv6 公网IP非常丰富,给每个容器都分配公网IP也没问题,但出于安全考虑,容器还是应该用内网IP,

Discovery

计然之策(转载)

作者:青岩真人(春秋时期) 批注:范蠡 一、明路 计然曰:“人生於世,非财无以资身。产治有恒,不商何以弘利。” [译文] 人生在世,没有财产就无法得到生存和发展。财产的运作遵循固有的规律,它本身不会自动增值,不经商就不会获得利润。 范蠡按语:“财为养命之源,人岂可无有,而不会营运,则蚕食易尽,必须生放经商,庶可获利,为资身策也。” [译文] 财产是滋养生命的源泉,是生存之本,人们岂能没有财产。但是如果不掌握经营之道,那么这些财产就会像蚕吃桑叶一样,一点一点地被消耗殆尽。因此,必须运用财产来从事商业活动才能获得利润,使财产像生命一样得以生长,这是每个人安身立业的策略。 二、擅谋 计然曰:“财溺于人共爱,义取者希。利起于众所争,贪嗜者伙。” [译文] 钱财沉浸在世人的共同喜爱之中,能在道义的立场上获取钱财的人,世上少见。利润正是在众人的你争我夺中获得,那些贪心、

Stories

多久?

一 等红灯的时候,横向车道一辆接着一辆的汽车驶过,他们有的是公务员,有的是医生,有的是企业老板,有的是职员。 他们可能日复一日的重复着枯燥的事情,有些枯燥是有意义的,而有些枯燥是没有意义的。 他们可能每天的事务都很精彩,有些精彩是有意义的,而有些精彩是没有意义的。 二 梦里没有出现任何让人印象深刻的人或片段,可能睡梦当时还算清晰,可一旦发现是梦,记忆忽然就模糊了。 有时候仿佛在梦里遇见了某个人,但我想不清楚是谁,只能隐约回想起非常潦草的脸的轮廓。 有时候仿佛在梦里去过了某个地方,但我想不清楚是哪里,即便某一次印象清晰,场景似乎也都是叠加的。度假酒店宽阔的停车场,稀稀落落停着几辆车,但从不断驶入的汽车数量上大概能够看出,在天黑之前这里会停很多车。旁边的居民楼看起来像大学的教学楼,但我已经记不清自己是不是也住在那里。 三 我对宗教、占卜和玄学兴趣浓厚,骨子里应该是对“发现新大陆”有迷之向往。 可是我生来胆小,再加上小时候堂兄经常会讲鬼故事吓唬我,让我对鬼呀神呀的实在望而生畏。 大学的诡异经历后我开始接触佛教,朋友给我引荐了佛教协会的一位和尚,且不表他神神叨叨的状态,重点在于他送了一本《地藏菩萨本愿经》给我。回去花了几天时间,边读边查字典,把经书读完了。内容不外各种鬼神名字,