SHAIFX 👋

写代码、做游戏、搞AI、拥抱开源。

折腾是目的,开源是态度。

Wireshark 抓包入门:从安装到实战排障

为什么是 Wireshark 网络出问题的时候,“感觉很慢"“连不上"这类描述基本没法排查,真正有用的是抓包看数据到底发生了什么。Wireshark 是这个领域的事实标准——开源、免费、跨平台,协议库覆盖了几乎所有你能遇到的协议,从最基础的 TCP/IP 到 HTTP/2、TLS、DNS,甚至各种私有协议都能解析。 它不只是排障工具。想理解 TCP 三次握手到底长什么样、TLS 握手交换了什么、DNS 查询的完整过程,打开 Wireshark 抓一次包,比看十篇文章都直观。 安装 Windows、macOS、Linux 都有官方安装包,官网下载即可。 Linux 下有个细节:普通用户默认没有抓包权限,需要把自己加入 wireshark 用户组: sudo usermod -aG wireshark $USER 加完组之后要重新登录才生效,不然会发现列表里的网卡全是灰的,点不动。 界面速览:从打开到抓到第一个包 打开 Wireshark,首页是网络接口列表——有线网卡、WiFi、还有一些虚拟网卡(VPN、虚拟机网卡等)。每个接口旁边有个实时流量的小波形图,大致能看出哪个接口当前有流量。 双击想抓的接口,立刻开始实时捕获,界面会不断刷新滚动。这时候数据包已经在飞了,接下来的重点是怎么从里面找到你要的东西。 主界面分三块: 上方包列表:每一行是一个数据包,显示时间、源地址、目的地址、协议、长度和简要信息 中间包详情:点击某一行,下方展开这个包的分层结构——以太网帧 → IP 层 → TCP/UDP 层 → 应用层协议,逐层可以点开看具体字段 下方十六进制视图:包的原始字节内容,对应详情面板里选中的字段会高亮 刚开始不用管十六进制视图,重点在过滤器和包详情。 过滤器:真正的核心功能 不用过滤器直接看几万个包是没法工作的。顶部的过滤器输入框(display filter)是 Wireshark 最重要的功能,输入表达式后按回车即可筛选。 常用过滤器示例: ip.addr == 192.168.1.1 # 只看某个 IP 相关的包(双向) ip.src == 192.168.1.1 # 只看从这个 IP 发出的包 tcp.port == 443 # 只看某端口(不区分源/目的) http # 只看 HTTP 流量 dns # 只看 DNS 请求和响应 tcp.flags.syn == 1 # 只看 TCP 握手中的 SYN 包 http.response.code == 404 # 只看 404 响应 tls.handshake.type == 1 # 只看 TLS Client Hello 过滤器支持逻辑组合: ...

August 11, 2026 · 1 min

n8n 自托管:搭建你的工作流自动化中心

如果你用过 IFTTT、Zapier 这类自动化工具,但又对把数据交给第三方服务感到不安,n8n 是最值得考虑的开源替代。它支持可视化拖拽搭建工作流,400+ 服务集成,而且可以完全自托管,数据不出自己的服务器。 提示:n8n 采用 fair-code 协议,核心功能开源免费,自托管不收任何费用。官方也提供付费的 n8n Cloud 托管版,本文不涉及,只讲自部署。 准备工作 你需要: 一台能跑 Docker 的机器(VPS、NAS、或者本地 WSL 都行) Docker 和 Docker Compose 如果你还没有 Docker 环境,可以直接在 Linux/WSL 下安装 Docker Engine,或者用 Rancher Desktop 这类带 GUI 的方案。 部署 n8n 最简单的方式是用 Docker Compose,新建一个目录,写入 docker-compose.yml: version: '3' services: n8n: image: n8nio/n8n restart: unless-stopped ports: - "5678:5678" environment: - GENERIC_TIMEZONE=Asia/Shanghai - TZ=Asia/Shanghai - N8N_SECURE_COOKIE=false volumes: - ./n8n_data:/home/node/.n8n 注意:N8N_SECURE_COOKIE=false 是因为没有配置 HTTPS 时,n8n 默认的安全 Cookie 策略会导致登录失败。如果你后续用 Nginx/Caddy 反代加了 HTTPS,可以去掉这行。 ...

June 30, 2026 · 2 min

ExifTool 完整使用指南

ExifTool 是由 Phil Harvey 开发的开源命令行工具,能读取和写入照片、视频几乎所有格式的元数据(EXIF、GPS、IPTC、XMP 等)。最新版本为 13.59(2026年5月)。 安装 Windows 从 exiftool.org 下载 Windows 可执行文件 .zip,解压后将 exiftool(-k).exe 改名为 exiftool.exe,放到 C:\tools\ 或任意加入了 PATH 的目录即可。 也可以用 Scoop 安装: scoop install exiftool 验证安装 exiftool -ver 一、查看元数据 查看单张照片的全部信息 exiftool photo.jpg 输出会列出几十个字段,包括相机型号、拍摄时间、快门速度、光圈、ISO、GPS 等。 只查看指定字段 exiftool -DateTimeOriginal photo.jpg exiftool -Make -Model -LensModel photo.jpg exiftool -GPSLatitude -GPSLongitude photo.jpg 批量查看一个文件夹 exiftool D:\Photos\ 只显示文件名和拍摄时间(表格式输出) exiftool -T -FileName -DateTimeOriginal D:\Photos\ -T 参数让输出按制表符分隔,方便复制到表格。 导出为 CSV exiftool -csv -FileName -DateTimeOriginal -Make -Model D:\Photos\ > output.csv 递归扫描子文件夹 exiftool -r D:\Photos\ 提示:查看 RAW 文件(.ARW、.RW2、.CR3 等)同样适用,ExifTool 支持几乎所有相机品牌的原始格式。 ...

June 28, 2026 · 2 min

小企鹅的二十年

当 Linux 还不会说中文 2000 年前后的 Linux 桌面,与今天不是同一个世界。 KDE 和 GNOME 正在激烈竞争,GTK 与 Qt 生态尚未成熟,发行版数量众多且碎片化。对中文用户而言,最大的麻烦甚至不是显卡驱动,而是一件更基础的事:系统装好了,却打不了中文。 当时能用的中文输入方案有 XCIN、Chinput、MiniChinput 等,但普遍配置复杂,不同桌面环境之间兼容性差,GTK 与 Qt 支持不一致,维护者有限。很多用户第一次安装 Linux 后,需要花几个小时研究文档,才能让输入法勉强工作。 在那个中文 Linux 用户本来就不多的年代,愿意长期维护中文输入法的人更是凤毛麟角。 一个手滑打出来的名字 2002 年,一个网名叫 Yuking(鱼王)的开发者是五笔输入法用户。他发现现有方案不能满足自己的需求,于是做了一个后来无数程序员都做过的决定:既然没有合适的工具,那就自己写一个。 这个项目最初叫做 gWubi——顾名思义,一个给 Linux 用的五笔输入法。但 gWubi 1.0 发布时,已经同时支持五笔、拼音和区位码输入,从一开始就超出了"五笔专用工具"的范畴。 随着功能不断扩展,项目开始向输入法框架演化,需要一个新名字。Yuking 的想法是取 FCIT,来自"Free Chinese Input Tool"。但在提交代码时,他多敲了一个字母 x,变成了 Fcitx。 那个年代没有 Git,代码版本控制用的是 Subversion,改名牵连太多,索性将错就错保留了下来。这个手滑打出来的名字,后来成了 Linux 中文输入法的代名词。 2004 年,项目正式更名 Fcitx。Linux 的吉祥物是企鹅 Tux,Fcitx 也采用了企鹅形象作为图标,中文名随之定为小企鹅输入法。后来很多人只知道"小企鹅",未必知道"Fcitx"这个英文名。 差点死掉 2007 年,转折出现了。 云帆论坛上有人公开批评 Fcitx 的代码写得很差。Yuking 受不了这个评价,在当年 7 月 10 日宣布终止项目。 项目就这样停了。没有交接,没有继承者,代码扔在那里。当时的社区里弥漫着一种真实的失落感——小企鹅可能真的要没了。 沉寂了一年多之后,2008 年 9 月,Yuking 自己回来了。他在帖子里写道,无法忘记 Fcitx。他加入了爱好者在 Google Code 上建立的新仓库,开始频繁更新,项目重新活了过来。 ...

June 25, 2026 · 2 min

MarkItDown:微软开源的万能文档转 Markdown 工具

MarkItDown 是微软开源的 Python 工具,用于将 PDF、Word、PPT、Excel、图片、音频、HTML 等多种文件格式转换为 Markdown 文本,非常适合为 LLM / RAG 知识库预处理文档。 Windows 快速上手(三步完成) 以下流程在 D:\V 目录下操作,可替换为你自己的项目目录。 第一步:新建 venv cd D:\V python -m venv .venv 第二步:激活并安装 .\.venv\Scripts\Activate.ps1 python -m pip install -U pip python -m pip install "markitdown[all]" 激活成功后提示符前会出现 (.venv)。 第三步:验证安装 python -m markitdown --version 以后每次使用,记住这一套: cd D:\V .\.venv\Scripts\Activate.ps1 python -m markitdown "中文 文件名.xlsx" -o "中文 文件名.md" 💡 用 python -m markitdown 而不是直接 markitdown——不依赖 PATH,不依赖 venv 是否激活,Windows 上最稳妥的写法。路径含中文或空格时务必加引号。 安装说明 需要 Python 3.10 及以上版本。 ...

June 24, 2026 · 2 min

WinUtil:Windows 一键优化工具

WinUtil 是 Chris Titus Tech 开发的开源 Windows 优化工具,6 年迭代、200+ 贡献者、3000 万次运行记录。无需安装,一条 PowerShell 命令直接启动,覆盖软件批量安装、系统减肥、隐私加固、更新策略等常见需求。 启动 以管理员身份打开 PowerShell 或 Windows Terminal,运行: irm christitus.com/win | iex 提示:christitus.com/win 是官方短链,等价于从 GitHub 拉取最新脚本,每次运行都是最新版本。需开代理访问。 注意:必须以管理员身份运行,否则大部分功能无法生效。右键开始菜单 → Windows Terminal(管理员)。 PowerShell 7 有时会把脚本内容误判为 HTML 导致解析报错,换 powershell.exe(5.1)即可: powershell.exe -Command "irm christitus.com/win | iex" Install(软件安装) 底层调用 winget 批量安装,省去逐个下载和点击安装的麻烦。 界面上按分类折叠展示(浏览器、开发工具、媒体、系统工具等),勾选需要的软件后点 Install。 Get Installed:扫描系统已装软件,自动勾选对应条目,方便迁移新机 取消勾选后点 Uninstall 即可卸载 Tweaks(系统调整) 这是 WinUtil 的核心,分四个区块。 快速预设 页面顶部有四个快速按钮: 预设 说明 Standard 推荐大多数用户,安全可逆的基础优化 Minimal 低影响的最小化调整,保守首选 Advanced 针对有经验用户的进阶组合,跳过还原点和清理任务以加快执行速度 Clear 清除所有已选项 点 Get Installed Tweaks 可检测系统当前已应用的 tweak 状态。 ...

June 24, 2026 · 4 min

把网站提交给搜索引擎

建好网站之后,搜索引擎不会自动发现你——需要主动告诉它你在哪里。这篇记录三个主要搜索引擎的提交流程,以及背后的基本原理。 原理:爬虫、sitemap、收录 搜索引擎靠爬虫(crawler)抓取网页内容,再建立索引,用户搜索时才能找到你。 爬虫发现页面的方式有两种: 从其他网站的外链顺藤摸瓜爬过来 你主动提交 sitemap,告诉它有哪些页面 Sitemap 是一个 XML 文件,列出网站所有页面的 URL,让爬虫不用猜。Astro 自动生成 sitemap-index.xml,里面指向 sitemap-0.xml,后者才是真正的页面列表,这是标准的两级结构。 你的 sitemap 地址通常是: https://你的域名/sitemap-index.xml 提交 sitemap 之后不代表立刻收录,Google 一般几天到两周,Bing 稍快,百度最慢也最难预测。 Google Search Console 地址:search.google.com/search-console 验证所有权 进入后选网址前缀,输入你的完整网址(含 https://),点继续。 推荐用 HTML 文件验证: 下载验证文件(形如 google6cf6f7204d0d5185.html) 放进项目的 public/ 目录(或网站根目录) 部署后访问 https://你的域名/google6cf6f7204d0d5185.html 确认能打开 回到 Search Console 点验证 验证完成后不要删除这个文件,Google 会定期回来检查,删掉会导致验证失效。 提交 sitemap 验证通过后,左侧菜单找到站点地图,在输入框填入: sitemap-index.xml 点提交。状态初始显示"无法抓取"是正常的,Google 还没来得及读取,等几小时后刷新会变成"成功"。 日常使用 覆盖率 — 查看哪些页面已收录,哪些被排除或有错误 搜索结果 — 用户用什么关键词找到你,点击率如何 网址检查 — 新文章发布后可以手动输入 URL 请求立即抓取,比等爬虫自己来快 Bing Webmaster Tools 地址:bing.com/webmasters 从 Google 导入(推荐) 已经配置好 Google Search Console 的话,Bing 支持一键导入,省去重新验证的步骤: ...

June 24, 2026 · 1 min

ShareX 完全指南:截图、录屏与自动上传 Cloudflare R2

ShareX 是 Windows 上最强大的开源截图工具,没有之一。它免费、GPLv3 开源、持续活跃开发,功能密度远超任何付费竞品。但也正因为功能太多,很多人装上之后只用了截图,其他 90% 的能力从未触碰。 本文的目标是把 ShareX 20.2 的所有核心功能完整跑一遍。 ShareX 仅支持 Windows,没有 macOS 或 Linux 版本。 安装 从 getsharex.com 下载安装版或便携版。两者功能完全一致,便携版不写注册表,适合放在 U 盘或不想污染系统的场景。 截图模式 ShareX 提供 7 种截图模式,覆盖所有使用场景。 Region(区域截图) 最常用的模式。按下快捷键后进入十字准星选区界面,支持像素级精确拖拽。进入选区界面后还可以切换为其他模式(窗口、全屏等),无需退出重来。 选区时按住空格键可以移动已经画好的选区,W 键切换放大镜,滚轮缩放放大镜倍率。 Region (Freehand)(自由形状) 手绘任意形状截取。适合需要圈出不规则区域的场景,比如标记图片中某个具体位置。 Fullscreen(全屏) 截取所有显示器的完整画面。多显示器用户会得到一张拼合图。 Active Window / Active Monitor 仅截取当前焦点窗口或当前鼠标所在的显示器,不包含其他内容。 Scrolling Capture(滚动截图) 长截图功能。ShareX 会自动滚动页面并拼合成一张完整图片。对现代复杂网页(尤其是含有 sticky header 或懒加载内容的页面)效果存在一定限制,简单页面和文档类内容表现良好。 Auto Capture(自动截图) 按设定时间间隔自动截图。适合制作教程序列图、监控某个界面变化等场景。可以自定义截图区域和时间间隔。 录屏与 GIF ShareX 使用 FFmpeg 处理视频录制,首次使用时会提示自动下载 FFmpeg。 屏幕录制 支持录制指定区域、活动窗口或全屏,输出为 MP4。可以同时录制系统音频和麦克风输入。进入 Task Settings → Screen Recorder → Screen recording options 可以调整编码器(默认 x264)、帧率、码率等参数。 ...

June 23, 2026 · 3 min

自建私有云笔记:Syncthing + Tailscale + Joplin 全平台同步

一套完全免费、无云商、端到端可控的笔记同步方案: Joplin(笔记) + Syncthing(P2P 同步) + Tailscale(异地组网) 一、为什么要这样搭? 最初的需求很简单: 不想把笔记丢到商业网盘 要跨平台:Windows + Android 手机断网也要能看、有网就能同步 不想折腾公网 IP、DDNS、端口映射 最终方案选型: 组件 作用 Joplin Markdown 笔记 + 附件管理 Syncthing 开源 P2P 文件同步(替代 Dropbox) Tailscale 零配置虚拟内网,解决 NAT 和异地直连 二、整体架构 Joplin (Windows) ↓↑ 文件系统同步 Syncthing (Windows) ↕ Tailscale 虚拟内网直连 Syncthing (Android) ↓↑ 文件系统同步 Joplin (Android) Syncthing:负责把 Joplin 的同步目录在设备间同步 Tailscale:让两台设备永远"在一个内网" Joplin:只管读写笔记,不关心网络细节 三、安装与基础配置 Windows:为什么推荐 SyncTrayzor? Syncthing 本体(syncthing.exe)是纯后台命令行程序,没有系统托盘、没有开机自启、没有图形外壳。Windows 上直接跑会有这些麻烦: 每次要手动启动或注册 Windows 服务 同步状态不可见(需自己开浏览器) 锁屏/注销可能中断进程 SyncTrayzor 是 Windows 社区维护的官方推荐前端封装: 功能 SyncTrayzor ✅ 裸 syncthing.exe 内嵌 Syncthing 内核 ✅ 自动捆绑 ✅ 需自己下 系统托盘图标 + 同步状态 ✅ ❌ 开机自启(用户级) ✅ 勾选即开 ⚠️ 需手动配服务 一键升级 Syncthing ✅ ⚠️ 手动替换 SyncTrayzor 不是 fork,只是把 Syncthing 包了一层 Windows GUI/托盘壳,协议和同步逻辑完全一样,设备间 100% 互通。 ...

June 22, 2026 · 3 min

WSL2 跑 Docker,顺手装了 Immich

最近折腾了一下在 Windows 上用 WSL2 跑 Docker,全程不依赖 Docker Desktop 或任何桌面端工具,纯命令行完成。顺带把 Immich 私有相册也部署起来了。这篇文章记录完整过程,适合第一次上手的朋友参考。 为什么不用 Docker Desktop Docker Desktop 本身没什么问题,但它是 GUI 应用,占资源,而且商业使用需要付费授权。WSL2 里直接跑 Docker Engine 更轻量,和 Linux 原生体验几乎一致,也更适合服务器思维的使用方式。 一、安装 WSL2 并把 Ubuntu 装到 D 盘 默认情况下,WSL 会把发行版装在 C 盘。如果你的 C 盘空间有限,可以在安装时直接指定路径。 以管理员身份打开 PowerShell,执行: wsl --install Ubuntu --web-download --location "D:\WSL\Ubuntu" 如果网络不好导致下载失败,可以手动下载安装包再安装: Invoke-WebRequest -Uri https://aka.ms/wslubuntu -OutFile Ubuntu.appx Add-AppxPackage .\Ubuntu.appx wsl --install Ubuntu --location "D:\WSL\Ubuntu" 安装完成后会自动进入 Ubuntu 初始化界面,按提示创建用户名和密码。输密码时屏幕不会有任何显示,这是正常的,直接输入按 Enter 就好。 二、基础系统配置 进入 Ubuntu 后先更新软件包,再装几个常用工具: sudo apt update && sudo apt upgrade -y sudo apt install -y curl wget git vim build-essential net-tools 顺手把默认目录设到家目录,避免每次打开都在根目录: ...

June 22, 2026 · 3 min
本站累计访问 次 · 访客