威联通 QTS 启动 Jellyfin,使用 Container Station 容器工作站

左侧栏新建“应用程序”,下面给出可用的 docker-compose.yml

version: '3.5'
services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    user: 0:0
    network_mode: 'host'
    volumes:
      - /share/Container/jellyfin/config:/config
      - /share/Container/jellyfin/cache:/cache
      - /share/Media:/mnt/media:ro
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
    restart: 'unless-stopped'
    environment:
      - http_proxy=http://<proxy-host>:<proxy-port>
      - https_proxy=http://<proxy-host>:<proxy-port>
      - HEALTHCHECK_URL=http://<qts/jellyfin-host>:8096/health
    extra_hosts:
      - "host.docker.internal:host-gateway"

基于 Jellyfin 官方给出的 yml 修改而来,挂载设备以支持硬件解码。由于 QTS 上该设备所有者为 0:0,且权限为 600,无法通过添加 –group-add 参数来让同组不同用户使用该设备,因此只能让这个容器按 root:root 启动了,可能有些许风险。

添加环境变量以加速元数据刷新,修改健康检查地址使之状态正常。

引用

Container | Jellyfin

Intel GPU | Jellyfin

domain 的自言自语 2309

安全

GitHub – felix-pb/kfd: kfd, short for kernel file descriptor, is a project to read and write kernel memory on Apple devices.

开发

推出 RustRover – JetBrains 出品的独立 Rust IDE (qq.com)
JetBrains 发布 Rust 的独立版本 IDE 预览版,目前免费。

Port forwarding local services with VS Code (visualstudio.com)

网络

获取Tg的用户IP地址 (qq.com)
STUN 打洞泄露出口 IP。

https://support.fortinet.com/Download/VMImages.aspx
虚拟机版本的飞塔。

WireGuard Endpoint Discovery and NAT Traversal using DNS-SD | Jordan Whited
WireGuard 的一种 NAT 穿越方案。

无聊的东西

cs.uwaterloo.ca/~csk/slide/
不知道为什么很火的滑动解锁式游戏。

domain 的自言自语 2308

开发

面向插件开发者的语言服务器协议(LSP)| 技术解析 (qq.com)
JetBrains 自 2023.2 大版本开始引入 LSP 支持。

云原生

应用容器化后为什么性能下降这么多? (qq.com)

k8s无法删除namespace-腾讯云开发者社区-腾讯云 (tencent.com)

混沌故障演练如何尽可能保障生产环境不被破坏 (qq.com)

网络

Fortinet ZTNA远程办公解决方案全国首发评测_哔哩哔哩_bilibili
飞塔的 ZTNA。

MikroTik CRS310-8G+2S+IN 2.5G交换机 – YuS (irouteros.com)
MikroTik 发了个新的 2.5G 交换机,个人感觉性价比一般。

华为HN8145XR拆机,FTTR主光猫 (qq.com)

嵌入式

Github上的高热度嵌入式项目之——开源核辐射检测仪 (qq.com)

其它

xkcd: Security

在梅奥诊所查房,站友真的羡慕了! (qq.com)

domain 的自言自语 2307

开发

C++ Insights (cppinsights.io)

云原生

从 Istio 在 CNCF 毕业,看服务网格的架构变迁 (qq.com)

CNCF宣布CRI-O项目毕业 (qq.com)

是时候和 Jenkins 说再见了 (qq.com)

Linux

Linux 中不适用功能键切换TTY | 《Linux就该这么学》 (linuxprobe.com)

网络

Home (dn42.dev)
一直没有时间学 BGP…

光猫改桥接后速度降低的问题与运营商和厂商的探讨 – V2EX
时间错误导致丢包。

总结142款运营商定制WiFi6 mesh路由的配置,供大家参考(有几款可刷OPENWRT)-无线路由器硬件改造以及故障维修-恩山无线论坛 – Powered by Discuz! (right.com.cn)
运营商定制机是真的便宜。

AI

人类数据,要被 OpenAI 用完了,然后呢? (qq.com)
中文互联网的很多优质内容都被掌握在各大厂手里了。

智能家居

美的设备怎么进米家联动?教你如何通过易来Pro网关进行跨平台联动_哔哩哔哩_bilibili
那么,在哪里可以买到呢?

其它

GitHub – microsoft/win32-app-isolation: Tools and documentation for Win32 app isolation

thinking-in-se/《人件 原书第3版》.pdf at master · clsaa/thinking-in-se · GitHub

无法摆脱的干眼症,放不下手机的一代人 (qq.com)

节省数亿IT成本,B站FinOps实践 (qq.com)

如何理解 FinOps? (qq.com)

openSUSE Wicked 重新获取 DHCP 分配的地址

最近发现,如果在 DHCP 服务器上向 openSUSE 下发了 IPv4 地址,在该地址的老化时间内,即使是重新开启网卡接口、重启系统、重新插拔网线等行为,Wicked 也不会重新获取 IP 地址,查看 wickedd-dhcp4.service 的日志可以发现其检查了 IP 的有效时间,有效期内没有再重新获取一次。

解决方案

先删除 /var/lib/wicked 下的所有文件:

sudo rm -rf /var/lib/wicked/*

或者是只删除 /var/lib/wicked/lease-eth0-dhcp-ipv4.xml 也可以。

然后,重启该网卡接口:

sudo wicked ifdown eth0
sudo wicked ifup eth0

此时应该可以观察到 IP 地址已经刷新。

引用

Wicked keeps DUID on SLES15 even when NIC is replaced | Support | SUSE

Docker Compose 创建的容器无法访问 host.docker.internal

在 docker-compose.yml 中的 extra_hosts 字段中加上 host.docker.internal:host-gateway 即可。是的,一个魔法字符串。

这个并非由 Docker Compose 处理,而是传给 Docker Engine 这层来处理,具体见引用链接中的源码。

引用

https://github.com/docker/compose/issues/9768#issuecomment-1570319324

https://github.com/moby/moby/blob/9dbdbd4b6d7681bd18c897a6ba0376073c2a72ff/daemon/container_operations.go#L112-L129

创建 Docker Buildx 多架构构建节点

前置条件

1 台 linux/amd64 的机器 A,1 台 linux/arm64 的机器 B。A 可以通过密钥对直接 SSH 连接 B。

实施

在 A 执行命令以创建名为 multiarch 的构建实例,并将本机加入该实例:

docker buildx create --name multiarch --driver docker-container --config /etc/buildkitd.toml --node amd64 --platform=linux/amd64

在 A 执行命令以将 B 加入该构建实例:

docker buildx create --append --name multiarch --driver docker-container --config /etc/buildkitd.toml --node aarch64 --platform=linux/arm64 ssh://<user>@<ip>:<port>

启动该构建实例:

docker buildx inspect --bootstrap --builder multiarch

上述命令会在两个机器上都启动一个容器,并且输出构建节点的信息。

可以随时通过下面的命令来查看本机上的构建实例:

docker buildx ls

如果上面创建的 multiarch 构建实例不是默认被使用的,可以通过该命令进行修改:

docker buildx use --default --builder multiarch

buildkitd 配置文件

上述命令中提及的 /etc/buildkitd.toml 可用于指定 Registry Mirrors,例如:

debug = true
[registry."docker.io"]
  mirrors = ["mirror.gcr.io"]

其它具体配置项请参阅官方文档,见引用。

测试

可以任意编写一个 Dockerfile,然后执行命令进行构建测试:

docker buildx build -t <image-tag> --platform=linux/arm64 --load .

引用

How to Rapidly Build Multi-Architecture Images with Buildx | Docker

Configure BuildKit

docker buildx

使用代理工具 Burp Suite 或 whistle 移除 HSTS 响应头

在某些时候,例如出于某些环境调试目的,可能需要阻止服务端响应 HSTS 头(Strict-Transport-Security),此时可以使用代理工具将该响应头移除。请注意,不正确的配置可能会影响正常访问网站的安全性,请务必在必要时启用如下功能或特性,或使用独立的开发者版本浏览器。

如果使用 Burp Suite,则可以直接使用内置规则:

如果使用 whistle,则可以增加一条规则,这里以要匹配的站点为 xie.sh.cn 进行举例:

xie.sh.cn delete://res.headers.strict-transport-security

移除已经被浏览器记住的安全策略

如果浏览器已经记住了服务端下发的 HSTS 响应头,则需要先将其删除。以 Chrome 浏览器为例,可以访问 chrome://net-internals/#hsts,然后进行查询或删除。部分 HSTS 响应头会使用 includeSubDomains 来包含子域,删除无效时可以留意一下。

如果浏览器试图升级 HTTPS 连接

某些情况下,即使后端没有发送 HSTS 响应头,浏览器也可能试图同时发送 HTTP 和 HTTPS 请求来升级连接,此时可以考虑访问 chrome://flags/#https-upgrades,然后将其禁用。

引用

delete · GitBook (wproxy.org)