Golang Go语言中的EasyProxy,简单易用的tcp代理

发布于 1周前 作者 yuanlaile 来自 Go语言

EasyProxy 之 golang 初步学习

最近工作中遇到了golang的项目,稍稍对其产生了点兴趣,打算认真学习下,正巧在搭建mysql主备环境的时候发现如果用一个代理程序的话自己测试会方便很多(主要还是为了造轮子),于是这个基于 golang 的tcp proxy项目就产生了

需求

  1. 由于是为了学习 golang ,所以要在实现代理基础功能的前提下尽可能的用到 golang 的各种基础知识
  2. 不可能真单纯的为了玩,学一个东西除了为充实大脑,更为了能有实际用途,所以有必要工程化
  3. 程序不要太繁杂,毕竟这是我的第一个golang工程,来日方长

设计

结构图如下:

+----------+                           +------------+
|  client  |<----+                     |            |
+----------+     +--->+-----+<-------->|   server   |
                      |     |          |            |
+----------+          |     |          +------------+
|  client  |<-------->|     |
+----------+          |     |
                      |     |          +------------+
+----------+          |  L  |          |            |
|  client  |<-------->|  B  |<-------->|   server   |
+----------+          |  S  |          |            |
                      |     |          +------------+
+----------+          |     |
|  client  |<-------->|     |
+----------+          |     |          +------------+
                      |     |          |            |
+----------+     +--->+-----+<-------->|   server   |
|  client  |<----+                     |            |
+----------+                           +------------+            

最常见的负载均衡模式,但有几个点需要支持:

  1. 支持不同的调度策略,如:轮训,随机等
  2. 要有心跳检查机制,及时将有问题的后端 server 剔除,但也要在 server 恢复的时候恢复过来
  3. 有简单的监控,便于查看后端 server 的代理情况及客户端的连接情况
  4. 有简单的配置文件,便于修改
  5. ...后续再加...

实现

github:EasyProxy

其他

如有问题,欢迎其他喜欢golang的小伙伴联系:xsank#foxmmail.com


Golang Go语言中的EasyProxy,简单易用的tcp代理

更多关于Golang Go语言中的EasyProxy,简单易用的tcp代理的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

6 回复

不懂技术,收藏了

更多关于Golang Go语言中的EasyProxy,简单易用的tcp代理的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


楼主这个跟 HAProxy 对比起来方向有哪些差异?


1.HAProxy 高可用性好,代理策略齐全,重量型,用于生产环境较好
2.EasyProxy 是花几天工作闲暇时间搞的,也具备代理功能,配置简单,可用于开发测试环境,加上 golang 协程支持,性能也还好

可我更需要 udp(跑

关于Golang Go语言中的EasyProxy,这是一款轻量级、高性能且功能强大的内网穿透代理服务器,专为简化TCP代理服务器的部署与使用而设计。以下是对EasyProxy的简要介绍:

一、主要特性

  • 支持协议:支持TCP和UDP流量转发,可用于多种场景,如访问内网网站、本地支付接口调试、SSH访问等。
  • 代理类型:支持内网HTTP代理、内网SOCKS5代理,满足多样化需求。
  • 附加功能:提供snappy压缩(节省带宽和流量)、站点保护、加密传输等附加功能,增强安全性和效率。

二、安装与配置

  • 环境要求:确保系统已安装Go语言环境,建议版本Go 1.11及以上。
  • 安装步骤:通过Git克隆项目到本地,进入项目目录并编译,生成可执行文件。
  • 配置方法:编辑配置文件(如config.json),设置服务器地址、端口以及代理类型和目标地址等参数。

三、应用场景

EasyProxy适用于需要间接访问特定服务或寻求服务网关解决方案的场景,如MySQL数据库访问、SSH连接等。通过简单的配置,即可实现高效、安全的代理服务。

综上所述,EasyProxy凭借其简单易用、功能强大等特点,在Golang社区中获得了广泛的关注和好评。

回到顶部