Skip to content

Latest commit

 

History

History
108 lines (74 loc) · 2.63 KB

README.md

File metadata and controls

108 lines (74 loc) · 2.63 KB

Go IPs Forward

项目描述

Go IPs Forward 是一个用 Go 语言编写的高性能 TCP 转发和负载均衡工具。它能够从 CSV 文件中读取目标 IP 地址和数据中心信息,并根据实时测量的网络延迟,将入站连接转发到延迟最低的目标服务器。

主要功能

  1. 从 CSV 文件读取目标 IP 地址和数据中心信息
  2. 按数据中心分组管理多个转发目标
  3. 动态测量目标服务器的网络延迟
  4. 基于最低延迟的负载均衡
  5. 实时更新最佳转发目标(每分钟)
  6. 支持多个数据中心的并行转发

技术特性

  • 使用 Go 的并发特性实现高效的多连接处理
  • 利用 goroutines 和 channels 进行异步操作
  • 使用互斥锁(mutex)确保线程安全
  • TCP 连接用于延迟测量和数据转发

使用说明

  1. 准备 CSV 文件

    创建一个名为 ip.csv 的文件,格式如下:

    IP地址,数据中心,地区,城市,网络延迟
    172.65.90.46,RUH,Middle East,Riyadh,6 ms
    172.65.90.58,SJC,North America,San Jose,6 ms
    

    注意:虽然 CSV 文件包含网络延迟信息,但程序会实时测量实际延迟。

  2. 编译程序

    go build -o go-ips-forward main.go
    
  3. 运行程序

    ./go-ips-forward
    

    程序将开始监听并转发连接。

配置

目前,配置是硬编码在程序中的。主要的配置项包括:

  • CSV 文件名:ip.csv
  • 起始监听端口:10000(每个数据中心递增)
  • 延迟测量间隔:1分钟
  • 连接超时:5秒

Roadmap

  1. 配置文件支持

    • 实现通过 YAML 或 JSON 配置文件读取设置
    • 允许用户自定义 CSV 文件路径、起始端口、更新间隔等
  2. 命令行参数

    • 添加命令行参数支持,允许覆盖默认配置
  3. 监控和日志

    • 实现详细的日志记录系统
    • 添加 Prometheus 指标导出
    • 创建基本的 Web UI 用于查看当前状态和统计信息
  4. 高级负载均衡策略

    • 实现加权轮询算法
    • 添加基于地理位置的路由选项
  5. 安全性增强

    • 添加 TLS 支持
    • 实现简单的认证机制
  6. 容错和恢复

    • 实现优雅关闭
    • 添加自动重试机制
    • 实现目标服务器健康检查
  7. 性能优化

    • 实现连接池
    • 优化内存使用
  8. 插件系统

    • 设计插件接口,允许自定义负载均衡策略和监控
  9. 容器化

    • 创建 Dockerfile
    • 提供 Docker Compose 配置用于快速部署
  10. 文档和测试

    • 编写全面的文档
    • 增加单元测试和集成测试覆盖率

贡献

欢迎提交 issues 和 pull requests。

许可证

MIT License