Ubuntu WireGuard 虚拟局域网配置:从零搭建安全隧道

开场:一个让我抓狂的周五下午 上周五下午五点半,我准备下班,突然想起家里的 NAS 上有一份重要的项目文档,周末要用。 打开手机一看——家里的公网 IP 又变了。上个月刚配好的端口转发,白搞了。 我试过这些方案: frp 内网穿透:配置文件写了 50 行,还要维护服务端,每次改配置都要重启 ZeroTier:有时候连接稳定,有时候突然断线,像开盲盒 Tailscale:好用,但免费版只能 3 个用户,团队协作不够用 直到同事推荐了 WireGuard。 第一次用的时候我惊了——配置文件只有 8 行,连接速度快到我怀疑它是不是真的加密了。更离谱的是,它的代码量只有 OpenVPN 的 1/100,安全性反而更高。 这篇文章就解决一件事:怎么在 Ubuntu 上从零开始配置 WireGuard,搭建一个稳定、安全的虚拟局域网。 先搞清楚:WireGuard 到底是什么? 在动手之前,先花 2 分钟搞清楚 WireGuard 的核心思想,不然你会一直踩坑。 密钥对就是你的身份 WireGuard 的身份验证简单到让人怀疑人生:每个设备一对密钥(公钥+私钥)。 打个比方:你去银行办业务,柜员要验证你的身份。WireGuard 的验证方式就像这样: 公钥 = 你的身份证号(可以告诉任何人) 私钥 = 你的密码(打死不能泄露) 预共享密钥(可选)= 银行给你发的动态验证码(额外安全层) 关键区别:WireGuard 没有"服务器"和"客户端"的概念——所有节点都是平等的 peer。 这就像微信群:每个人都可以给其他人发消息,没有"群主"的概念(虽然技术上你可以指定一个节点作为中继)。 为什么这很重要? 点对点连接:设备之间直接通信,不经过中心节点,延迟更低 拓扑灵活:星型、网状、混合都可以,按需选择 单点故障风险低:一个节点挂了,其他节点不受影响 性能对比:WireGuard vs 传统 VPN 协议 代码量 握手延迟 吞吐量 配置复杂度 安全性 WireGuard ~4,000 行 <100ms 接近线速 ⭐ 极简 ✅ 现代加密 OpenVPN ~100,000 行 1-3s 中等 ⭐⭐⭐ 复杂 ✅ 成熟稳定 IPSec ~500,000 行 2-5s 中等 ⭐⭐⭐⭐ 很复杂 ✅ 企业级 结论:WireGuard 在性能和易用性上碾压传统方案,唯一缺点是生态还在发展中(但已经够用了)。 ...

July 26, 2026 · FXIO

PostgreSQL 16 → 18 官方升级实践(Ubuntu 24.04)

一次真实的升级记录。 从 Ubuntu 默认 Cluster 管理模式,迁移到 PostgreSQL 官方推荐目录结构。 全程使用 pg_upgrade,保留所有数据库,最终实现: PostgreSQL 18 官方数据目录 systemd 管理 MacBook 远程访问 完整踩坑记录 一、为什么升级? 原环境: 项目 版本 Ubuntu 24.04 PostgreSQL 16.14 数据目录 /srv/data/db/postgres/16/main 希望升级到: PostgreSQL 18.4 PostgreSQL 18 vs 16 关键改进 特性 PostgreSQL 16 PostgreSQL 18 增量备份 ❌ 仅全量 ✅ pg_basebackup 支持增量,备份时间减少 50%+ 逻辑复制 基础支持 ✅ 支持序列和大对象复制 并行查询 有限并行 ✅ 更多场景支持并行(VACUUM、CREATE INDEX) JSON 处理 JSONB 基础 ✅ JSON_TABLE 增强,复杂查询更高效 SSD 优化 无特殊处理 ✅ 强制 I/O 调度优化(见下文) 连接池 需外部工具 ✅ 内置连接池改进 SSD 专项优化(重要) PostgreSQL 18 对 NVMe/SSD 做了底层优化,这是升级的核心理由: ...

July 25, 2026 · FXIO

旧主板 + 新 NVMe 的 I/O 问题排查

m2硬盘安装ubuntu出现I/O错误: DMAR fault的排查记录(含解决方案) 在旧台式机安装Ubuntu24.04 的过程中,我遇到一个非常棘手的问题: 第一次安装失败; 安装过程中, 提示io错误 关机后, 再次安装, 安装成功 进入系统后, 硬盘灯持续规律闪烁, 频繁出现 I/O 错误、系统卡顿、硬盘灯间隔性闪烁、并伴随 DMAR/IOMMU 报错 最开始遇到这个问题, 我以为是硬盘问题, 更换为 sata硬盘后, 问题消失。似乎从某种程序上证明是此硬盘问题; 随后此”坏硬盘“, 就安静的放在角落; 今天整理物品, 发现这块硬盘, 突然想到, 让ai帮忙分析分析硬盘是什么原因导致的故障, 以后如何避免买到类似的硬盘; 这篇文章记录整个排查过程,希望给未来遇到类似问题的人提供一个可参考的解决思路。 1. 硬件与环境背景 主板:Gigabyte Z97X-UD3H(2014年) CPU:Intel i7-4790K(Haswell) NVMe:YMTC PC300 512GB(支持 HMB,NVMe1.4) 系统:Ubuntu 24.04 NVMe 安装在主析的m2硬盘槽位 这是典型的“老主板 + 新 NVMe 控制器”的组合,在 Linux 下非常容易触发兼容性问题。 2. 问题现象 (1)安装 Ubuntu 时随机 I/O 错误 系统安装过程中文件复制中断 安装流程偶尔直接失败 重试偶尔能安装成功 (2)安装成功后,进入系统, 硬盘灯持续规律闪烁 开机后系统明显不顺畅。 复制文件时,会出现卡顿, 此时硬盘灯一直有规律的闪烁; (3)复制大文件(如 ubuntu.iso 6GB)出现卡顿 传输速度会突然降到零,直到系统无响应。 (4)dmesg 出现 DMAR/IOMMU 报错 DMAR: DRHD: handling fault status reg 2 DMAR: [DMA Write] Request device [01:00.0] fault addr ... DMAR: write no_pasid (5) 硬盘smart 检测无异常 使用 smartctl 读取 NVMe 健康状态: smartctl -x /dev/nvme0 ...

December 7, 2025 · FXIO