首页 > 技术随笔

所有人都用 `git` 登录,GitLab 为什么还能认出你?

所有人都用 git 登录,GitLab 为什么还能认出你? 第一次认真看 GitLab 的 SSH 地址时,很多人都会产生同一个疑问: git@gitlab.example.com:team/project.git 奇怪,明明我的 GitLab 用户名是 alice,这里为什么写的是 git?如果所有人都以 git 登录,GitLab 又怎么知道这次推送究竟是谁发起的?更让人担心的是:GitLab 是不是接管了整台服务器的 SSH,连其他 Linux 用户也会受到影响? 答案比“GitLab 做了一套特殊 SSH”更有意思:它没有重新发明 SSH,而是把 OpenSSH 原本就提供的身份...

[AI Native][OpenWrt] 给犀牛 R66S 编译 OhMyWrt:从一句话到 TF 卡直接启动

[AI Native][OpenWrt] 给犀牛 R66S 编译 OhMyWrt:从一句话到 TF 卡直接启动 这是一次完整的 AI Native 固件构建:我只提出目标,AI 通过 SSH 调查设备支持、配置并编译 OhMyWrt、校验产物、设计无 HDMI 验收流程;我唯一做的事情,是用 balenaEtcher 把镜像写进 TF 卡,然后插卡、接网线、上电。 Tags: AI Native OpenWrt OhMyWrt FastRhino R66S ARM64 Homelab 目录 这次到底是谁做了什么 为什么 R66S 需要单独编译 确认目标:ARM64 不等于随便一个...

广播过不了 WireGuard:一次小米摄像头跨网发现 SMB 的抓包与修复

广播过不了 WireGuard:一次小米摄像头跨网发现 SMB 的抓包与修复 米家只显示“没有可用的网络存储”。真正的问题不是 SMB 不通,而是摄像头根本不知道该去连谁。 目录 问题:445 端口能通,米家却看不到 NAS 抓包:摄像头到底发了什么 第一个坑:remote announce 不是它要的协议 第二个坑:普通 UDP relay 能显示列表,却无法登录 最终方案:只代理发现,并透明伪装回包源地址 代码如何收紧安全边界 部署与使用 怎么判断每一段是否真的成功 开源与适用范围 问题:445 端口能通,米家却看不到 NAS 网络结构很常见: 摄像头局域网 ...

把一个 OS 子系统拆成独立进程:video app 的解耦实录

TL;DR 把一个浏览器桌面 OS 里最复杂的子系统从主进程里拆出来跑成独立进程,听起来像"挪个目录",实际要重新回答四个问题:谁负责接 HTTP,谁负责排任务,DB 怎么分家,前端怎么跨 bundle 借能力。这篇讲我们怎么回答这四个问题,以及拆离过程踩到的三个真问题。 目录 TL;DR 目录 Part 1 · video 从内置域模型迁移为独立 app §1.1 项目定位与职责边界变化 §1.2 video 的职责归属冲突 §1.3 video 是最关键的一次抽离 Part 2 · 设计约束 Part 3 · 四条核心架构边界 §3.1 Bus 通信架构 ...

一次 SMB 视频点击引发的 SIGSEGV:当 ffmpeg 和 libvips 各带一份 glib

一次 SMB 视频点击引发的 SIGSEGV:当 ffmpeg 和 libvips 各带一份 glib 用户:"我点了 SMB 上的电影,server 直接崩了。" 我:"…让我看看。" 目录 现象:一点视频,服务器整个退出 第一直觉:又是 LD_LIBRARY_PATH 顺序问题 真相:两个 bundle,两份 glib 为什么"一份 glib"是天大的事 短期回避 vs. 真正修复 tokimo-lib:把 ffmpeg 和 libvips 关进同一个 Docker CI 里如何强制"只有一份 glib&q...

浏览器里的 AI agent 工具调用:从前端按钮到 microVM PTY 的完整链路

浏览器里的 AI agent 工具调用:从前端按钮到 microVM PTY 的完整链路 目录 为什么一次「看目录」不只是一次命令执行 链路全景:从 React 到 guest-agent 前端:按钮、SSE、WS 与 typed client 的边界 后端:Axum 把聊天流和工具执行拆开 sandbox:为什么是 vsock,不是 TCP PTY:为什么不是直接 exec 错误与回流:stdout、exit、error 都是协议 业界正在做什么 一个可复用的工程框架 为什么一次「看目录」不只是一次命令执行 用户在浏览器 chat 输入「帮我看一下当前目录」,表面上只是 pwd ...

最新文章

最近回复