go-plugin 插件系统详解 go-plugin 插件系统详解基于 HashiCorp go-plugin 库的插件系统,通过 RPC 实现主程序(Host)与独立进程(Plugin)之间的通信。 一、架构概览123456┌─────────────────┐ RPC ┌─────────────────┐│ Host (main) │ ◄─────────────────► │ P 2026-03-11 Go
基于Wireguard的家庭内网安全远程访问方案 实现目标以云服务器作为中转节点,使用 WireGuard 建立点对点的加密隧道,实现外网安全访问家庭内网。 环境准备云服务器这里使用 Ubuntu 22.04,有独立公网 ip,能放行指定 TCP/UDP 端口。 家庭客户端 家庭电脑(Linux / Wiindows) 支持 WireGuard 的路由器 云服务器配置安装 WireGuard通过 ssh 连接到云服务器,执行 2026-01-05 Linux #Ubuntu #Wireguard
在Git中修改最近一次提交中的注释信息 注意,本文章里的修改指的是纯本地、未推送、仅修改最近一次提交的注释信息;如果是修改非最近提交、已经推送到远程仓库的 commit 内容,请慎重操作! 使用以下命令即可修改 commit 信息: 1git commit --amend -m "新的正确注释" 2025-12-09 程序开发 #Git
值得学习品位的库 Echo0清爽的轻量级内容分享平台。这是一款开源、自托管的轻量级内容发布平台,专注于思想流动和快速分享。 该项目有对依赖注入框架 wire 的最佳实践,在构建 Go 版本的 MVC 架构代码有很大参考价值。 2025-12-09 程序开发 #Go
Shell的参数替换 参数替换12345678910111213141516171819202122232425#!/bin/bashTARGET_IP=${1:-"8.8.8.8"} # 目标IP,默认8.8.8.8MAX_RETRIES=${2:-0} # 最大重试次数,0表示无限RETRY_INTERVAL=${ 2025-11-27 Linux #运维/Shell
字节数转换为 KB、MB、GB 等更易读的格式 123456789101112func formatBytes(b uint64) string { const unit = 1024 if b < unit { return fmt.Sprintf("%d B", b) } div, exp := unit, 0 for n := b / unit; n >= unit; n / 2025-11-07 程序开发 #Go