logo
0
1
WeChat Login
cuijixiong<cuijixiong@gmail.com>
feat: 迁移到mihomo并支持配置参数化\n\n- 替换trojan-go为mihomo核心\n- 支持多架构二进制文件(amd64/arm64)\n- 新增TrojanUsername、TrojanPassword、WSPath配置参数\n- 自动生成UUID作为默认用户名和密码\n- 更新文档和示例代码

Mihomo 自动部署库

这是一个用于自动部署 mihomo 服务的 Go 库,支持 SSH 连接、文件传输、SSL 证书管理和服务启动。可以作为独立程序运行,也可以作为库被其他程序调用。

安装

go get cnb.cool/accbot/trojan-deploy

功能特性

  • 🚀 自动连接到远程服务器
  • 📤 上传 mihomo 二进制文件
  • 🔐 SSL 证书管理(自动生成或使用自定义证书)
  • 📝 自动创建配置文件
  • 🎯 启动和管理 mihomo 服务
  • 🌐 支持 Trojan 协议和 WebSocket 传输

证书配置

作为库使用

package main import ( "log" trojandeploy "cnb.cool/accbot/trojan-deploy" ) func main() { // 创建配置 config := &trojandeploy.Config{ Host: "your-server-ip", Port: "22", User: "root", Password: "your-password", TrojanPort: "44344", Domain: "your-domain-or-ip", // CertPEM 和 KeyPEM 留空,将自动生成证书 } // 创建部署器 deployer := trojandeploy.NewDeployer(config) // 执行部署 if err := deployer.Deploy(); err != nil { log.Fatalf("部署失败: %v", err) } }

自动生成证书(默认)

如果不提供证书内容,程序会自动生成 3 年有效期的自签名证书:

config := &trojandeploy.Config{ Host: "your-server-ip", Port: "22", User: "root", Password: "your-password", TrojanPort: "44344", Domain: "your-domain-or-ip", // CertPEM 和 KeyPEM 留空,将自动生成证书 }

使用自定义证书

可以通过字符串传递自定义的 SSL 证书和私钥:

config := &trojandeploy.Config{ Host: "your-server-ip", Port: "22", User: "root", Password: "your-password", TrojanPort: "44344", Domain: "your-domain", CertPEM: `-----BEGIN CERTIFICATE----- MIIDXTCCAkWgAwIBAgIJAKoK/heBjcOuMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV ... -----END CERTIFICATE-----`, KeyPEM: `-----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC7VJTUt9Us8cKB ... -----END PRIVATE KEY-----`, }

证书验证

程序会自动验证提供的证书:

  • ✅ PEM 格式验证
  • ✅ 证书有效期检查
  • ✅ 私钥与证书匹配验证
  • ⚠️ 域名匹配提醒

使用方法

作为独立程序运行

  1. 修改 main.go 中的配置参数
  2. 运行程序:
go run main.go

作为库使用

参考上面的代码示例,导入库并创建配置和部署器即可。

API 文档

主要结构体

Config

部署配置结构体,包含所有必要的连接和部署参数。

Deployer

mihomo 部署器,提供完整的部署功能。

主要方法

NewDeployer(config *Config) *Deployer

创建新的部署器实例。

(d *Deployer) Deploy() error

执行完整的部署流程,包括:

  • 连接服务器
  • 上传 mihomo 二进制文件
  • 生成或部署 SSL 证书
  • 创建配置文件
  • 启动服务

(d *Deployer) Connect() error

连接到远程服务器。

(d *Deployer) Close()

关闭连接。

配置参数说明

参数说明示例
Host服务器 IP 地址"192.168.1.100"
PortSSH 端口"22"
UserSSH 用户名"root"
PasswordSSH 密码"your-password"
TrojanPortTrojan 服务端口"44344"
Domain域名或 IP(用于证书)"example.com"
CertPEMSSL 证书内容(可选)PEM 格式字符串
KeyPEMSSL 私钥内容(可选)PEM 格式字符串

部署结果

部署成功后,所有文件将位于服务器的 ~/mihomo/ 目录:

  • mihomo - 可执行文件
  • config.yaml - 配置文件
  • cert.pem - SSL 证书
  • key.pem - SSL 私钥
  • mihomo.log - 运行日志

注意事项

  • 确保服务器防火墙已开放指定端口
  • 建议使用强密码和密钥认证
  • 定期更新证书以确保安全性
  • 生产环境建议使用有效的 CA 签发证书