Anduin Xue
Anduin Xue

Anduin's Tech Blog

Service engineering Skills and IT capabilities for operating and maintaining online services.


Common SMTP settings to Office 365 to send Emails

本文系统梳理了Office 365 SMTP服务在多个开发工具中的典型配置方案,揭示了现代云邮件服务与开源平台深度整合的技术路径。通过解析Gitea GitLab Mastodon Nextcloud等主流工具的SMTP配置细节,展示了如何在保持邮件安全性的前提下实现自动化通知功能。配置参数中反复出现的TLS验证模式调整与端口设置,暗示了云服务与本地系统在加密协议兼容性上的博弈。当开发者面对不同平台的配置差异时,是否思考过如何构建统一的邮件服务模板?文中提到的"Try false if failed"调试策略,是否启发我们重新审视自动化配置的容错边界?从587端口的STARTTLS到peer验证模式的选择,每个配置项都暗含着对邮件传输安全层级的权衡。当你的系统需要在不同邮件服务间切换时如何保持配置的一致性?如何通过最小的配置调整实现最大化的邮件服务稳定性?这些隐藏在代码块背后的问题,或许正是通往更高效运维方案的钥匙。--Qwen3

Microsoft 365 Mastodon GitLab Gitea SMTP Office365 Exchange

Install GitLab behind a reverse proxy on a Ubuntu 20.04\22.04 server

这篇博客详细介绍了在Ubuntu 20.04/22.04服务器上部署GitLab并配置反向代理的完整流程。文章从基础环境搭建到高级网络配置,逐步引导读者完成GitLab服务的部署与优化。核心内容包括:通过Caddy反向代理实现HTTP/HTTPS流量分发、处理GitLab与反向代理之间的网络信任关系、解决多服务器架构下SSH端口的转发难题,以及通过GitLab Runner实现CI/CD管道的完整集成。作者特别强调了在生产环境中配置反向代理时需要处理的细节问题,例如Nginx的监听端口设置、真实IP地址的传递、SSH服务的端口隔离等关键配置。文章最后展示了如何通过编写.gitlab-ci.yml文件实现.NET项目的自动化构建、代码分析和测试覆盖率统计。整个部署方案不仅涵盖了基础功能的实现,更深入探讨了服务间的网络通信安全性和可扩展性问题。当读者完成这些步骤后,不禁会思考:如何在保持反向代理架构优势的同时进一步优化服务响应速度?当服务器数量增加时,如何设计更灵活的端口管理策略?此外,当引入更多微服务时,如何确保整个CI/CD管道的稳定性和可维护性?这些未展开的问题为读者提供了进一步探索的方向。--Qwen3

bash git Linux Ubuntu Proxy SSH Caddy GitLab nginx

How to install CUDA and cuDNN on Ubuntu 22.04 and test if its installed successfully

本文系统梳理了在Ubuntu 22.04系统上搭建CUDA cuDNN深度学习环境的完整流程 从版本兼容性验证到最终测试的每个环节都暗含着开发者需要主动思考的关键点 比如当看到nvidia-smi显示的驱动版本时 你是否能准确对应CUDA支持表中对应的版本区间 这个对应关系背后反映了NVIDIA对硬件和软件生态的复杂兼容性设计 当安装cuDNN时 复杂的依赖链和文件路径映射提示我们 一个看似简单的库安装可能涉及多层系统权限管理 当PyTorch安装失败时 你是否意识到直接使用pip安装的包可能与特定CUDA版本存在隐式冲突 这些设计选择都值得深入思考 最后的测试环节中 从简单的hello-world并行执行到mnistCUDNN的矩阵运算验证 再到PyTorch的CUDA可用性检查 形成了完整的验证链条 但测试成功是否意味着环境就完美无缺 你的GPU利用率是否达到预期性能 这些都需要通过实际应用来验证 当看到Test passed!的提示时 你是否开始思考如何将这个环境迁移到生产环境 还是考虑如何优化代码利用GPU的计算能力 这些问题的答案或许就藏在你即将展开的实践中--Qwen3

Ubuntu NVIDIA vGPU CUDA cuDNN GPU

让你的数据中心使用 GPU 算力!

根据文章内容,配置NVIDIA vGPU和CUDA环境需完成驱动安装、授权配置、CUDA版本匹配及BIOS设置,其中vGPU拆分类型需统一且迁移时需保证主机兼容性;部署AI应用需安装cuDNN和基础库,通过ffmpeg可验证硬件编码能力,监控温度需使用nvidia-smi工具获取物理GPU数据;故障排查需重点检查驱动授权状态、内核兼容性、Host/Guest驱动版本一致性及BIOS中IO MMU/PCIe AER设置,同时确保VCenter中GPU模式为Shared Direct。--Qwen3

Ubuntu VMware Vsphere Server NVIDIA Ai vGPU Python Tesla CUDA

自己独立运营一个面向你的朋友的 AI 绘画系统(基于 Stable Diffusion)

文章介绍了Stable Diffusion模型的部署优化和安全配置方法,包括调整txt2img参数限制生成规模(宽高640x1024)、禁用批量生成功能(Batch count/batch size设为1)、配置采样参数(Euler a算法20步)、设置NSFW过滤词库、隐藏高级功能按钮(通过CSS代码隐藏风格应用/样式创建/种子复用等按钮),通过修改ui配置文件锁定关键参数范围,使用FRPC实现内网穿透并配合Caddy反向代理部署HTTPS加密访问,同时展示了如何通过配置文件定制界面元素和安全策略,最终实现安全可控的在线图像生成服务。--Qwen3

Web Server Tune Stable Diffusion Ai Self hosting

存储、计算、显示分离的游戏体验

游戏体验的流畅性往往被存储、计算与显示三者的紧密耦合所束缚但当多台设备与不同场景需求撕开这种传统结构的裂缝时游戏世界的边界便开始模糊化。当你的游戏电脑在客厅轰鸣而你窝在被窝里用平板操控角色时当你的手机在会议间隙承接一场战斗的余韵时传统意义上的"游戏设备"概念正在被解构。这种解构揭示了两个核心矛盾:物理设备的离散性与数字体验的连续性之间如何平衡?不同性能层级的终端如何共享同一份游戏资源?现代游戏安装包的膨胀速度远超硬盘容量的进化曲线当《赛博朋克2077》的100GB体量遇上2TB的存储上限时系统重装后键位配置的繁琐与存档迁移的焦虑便成为每个玩家的日常。这些痛点共同指向一个更根本的命题——我们是否正在用过时的硬件架构应对新时代的娱乐需求?当NFS协议在Debian系统上构建起存储网络的神经末梢当VHDX文件化作破解游戏安装限制的瑞士军刀当Moonlight将4K游戏画面压缩成无线信号在Wi-Fi6中穿梭时我们不仅在重构游戏生态更在重塑数字娱乐的时空观。这种架构能否彻底解决存储与计算分离的兼容性困局?当云游戏服务开始普及时这种本地化三重分离方案是否仍具进化价值?或许答案就藏在我们对"游戏即服务"与"设备即载体"关系的重新定义之中。--Qwen3

Game Storage Disk Gaming NVIDIA Steam

Interface selection when Linux has multiple network interface at the same time

本文探讨了Linux系统在同时连接多个网络接口时的路由优先级问题。当设备同时接入具备互联网访问权限的绿网和纯内网的蓝网时,系统默认路由策略可能导致互联网访问失败。通过`ip route list`命令发现蓝网默认路由因metric值较低而优先于绿网,这一机制使得原本应使用的绿网接口被错误屏蔽。文章展示了如何通过删除原有默认路由并重新添加带有更小metric值的路由条目,从而调整接口优先级的完整操作流程。在具体实践中需要特别注意删除默认路由可能导致的暂时断网风险,并提供了`ip route get`和ping测试等验证方法。这一案例揭示了现代网络环境中路由决策的复杂性——当系统面临多个有效网络路径时,如何通过metric参数实现智能路径选择?在更复杂的多网关场景中,是否需要更精细的路由策略来满足不同业务需求?这些值得深入思考的问题为读者打开了探索Linux网络架构的窗口。--Qwen3

IP Linux Network Routing Interface Linux Networking

Read from joystick output based on C#

C#代码如何将游戏外设转化为数据中心的控制中枢?一位开发者通过Thrustmaster TCA Airbus油门踏板与SharpDX.DirectInput库的组合,展示了硬件与软件的跨界融合。当航空主题的油门踏板遇见服务器机房,传统控制逻辑被彻底重构——通过解析Joystick对象的缓冲数据流,物理操作的微妙变化被转化为精确的数字信号,进而映射到服务器风扇转速的调节。这种突破性应用不仅挑战了游戏外设的传统定位,更揭示了日常设备在工业场景中的潜在价值。代码中128字节的缓冲区设置与无限循环的配合,暗示着实时控制系统的底层逻辑,而无需额外驱动的直接访问方式则展现了Windows API的开放性。当开发者将航空设备的精密运动转化为服务器散热的动态调节,是否意味着所有物理交互都能找到数字世界的对应物?在游戏手柄与工业设备的边界逐渐模糊的当下,我们是否正在见证人机交互范式的根本性转变?当每个摇杆动作都能触发数据中心的物理响应,这是否预示着物联网时代最基础的控制单元正在被重新定义?--Qwen3

C# Game SharpDX DirectInput Joystick Thrustmaster TCA

MySQL allow remote connection (For root and other users)

本文围绕MySQL数据库实现远程访问的核心配置展开剖析从防火墙策略调整到用户权限管理的完整流程为读者揭示了如何在保障安全前提下打通数据库的远程连接通道。文章首先指出检查mysql.user与mysql.db数据表是理解当前访问权限的关键起点随后通过开放3306端口与修改bind-address配置的组合操作为远程访问扫清网络障碍。针对root账户的远程授权设计了双步骤方案——通过GRANT语句与直接修改host字段的互补机制既保证了权限的即时生效又确保了配置的可靠性。对于普通用户的远程访问需求则提供了创建新用户与修改现有用户的差异化解决方案其中包含数据库与用户权限的精确绑定策略。值得注意的是文中多次强调的host字段设置为'%'的深层含义——这既是权限开放的开关也是潜在安全风险的源头。当远程访问的便利性与本地访问的封闭性产生碰撞时我们该如何在安全策略中寻找平衡点?当配置完成后如何验证远程连接的有效性?面对多用户场景时权限隔离的最佳实践又是什么?这些看似简单的配置背后实际上蕴含着对数据库安全架构的深层思考。当您完成这些配置操作时是否已经准备好在开放访问的同时守护数据库的安全?--Qwen3

bash Database Linux Ubuntu Remote Management MySQL

ESXI converts Thick Provisioning Disk back to Thin Provision and reclaims space

在虚拟化环境中误操作导致存储膨胀是常见的技术挑战。当Thin Provisioning磁盘因配置失误膨胀至2TB时如何实现存储空间回收?本文通过实际案例展示了从灾难性存储占用到空间优化的完整解决方案。关键操作链包括快照清理、SSH启用、磁盘文件转换与替换等步骤。通过`vmkfstools`将厚盘转换为精简格式的创新用法揭示了虚拟磁盘的底层结构特性,而`mv`命令对文件的巧妙置换则体现了系统级操作的灵活性。这种非破坏性重构方法在保留虚拟机完整性的前提下实现了存储空间的回收。当VCenter显示数据未更新时创建快照的技巧,展示了虚拟化管理平台与底层存储的同步机制。这种技术方案是否适用于其他存储协议?在自动化运维场景中如何避免人为操作风险?当存储空间回收完成后,如何建立有效的监控预警机制防止再次发生?这些问题的思考将引导我们探索更完善的虚拟化存储管理策略。--Qwen3

VMware ESXI VMFS Reclaim thin provisioning thick provisioning

Ubuntu resize an ext4 partition without LVM

在Ubuntu系统中扩展已挂载的ext4文件系统需通过调整分区大小并更新文件系统。首先确认磁盘分区表类型(MBR或GPT),使用fdisk(MBR)或gdisk/parted(GPT)调整目标分区大小,删除原有分区后重新创建并覆盖完整空间,保留原有文件系统签名。执行resize2fs命令自动扩展文件系统至新分区大小,无需卸载可在线操作。验证df -Th输出确认容量变化,注意操作前需备份数据,且仅适用于未加密的文件系统。--Qwen3

Linux Ubuntu Disk ext4 fdisk Partition

Aiursoft Nextcloud 事故调查、分析与总结

在2022年10月4日的两小时服务中断事件中,Aiursoft Nextcloud遭遇了从内核到业务层的连锁崩溃。当服务器因系统盘被填满而彻底死机时,技术团队不得不通过VNC强制重启虚拟机,却在恢复过程中发现了更深层的逻辑陷阱——原本应写入NFS备份盘的数据,因存储分离迁移期间的短暂断连,意外将系统盘推至临界点。这场灾难的根源并非硬件故障或软件缺陷,而是备份流程在挂载状态失效时的沉默执行:当/mnt/backup从网络磁盘退化为本地目录时,300GB的rsync复制瞬间吞噬了64GB的系统盘。这个案例揭示了三个值得深思的悖论:看似安全的备份机制为何成为系统脆弱性的放大器?当基础架构变更时,我们是否真正理解了所有依赖路径的失效模式?更重要的是,如何让监控系统在灾难发生前就嗅到风险的气味?事件最终催生出两个关键改进:通过df -Th验证挂载状态的备份脚本,以及在磁盘使用率低于10%时触发警报的监控机制。但更值得警惕的是,这场事故暴露了现代云服务架构中普遍存在的"沉默失效"——那些在监控盲区里悄然腐化的连接、挂载和配置,它们究竟还隐藏着多少未被发现的定时炸弹?--Qwen3

bash Linux Backup Nextcloud Disk Incident