Golang Go语言中的EasyProxy,简单易用的tcp代理
EasyProxy 之 golang 初步学习
最近工作中遇到了golang
的项目,稍稍对其产生了点兴趣,打算认真学习下,正巧在搭建mysql
主备环境的时候发现如果用一个代理程序的话自己测试会方便很多(主要还是为了造轮子),于是这个基于 golang 的tcp proxy
项目就产生了
需求
- 由于是为了学习 golang ,所以要在实现代理基础功能的前提下尽可能的用到 golang 的各种基础知识
- 不可能真单纯的为了玩,学一个东西除了为充实大脑,更为了能有实际用途,所以有必要工程化
- 程序不要太繁杂,毕竟这是我的第一个
golang
工程,来日方长
设计
结构图如下:
+----------+ +------------+
| client |<----+ | |
+----------+ +--->+-----+<-------->| server |
| | | |
+----------+ | | +------------+
| client |<-------->| |
+----------+ | |
| | +------------+
+----------+ | L | | |
| client |<-------->| B |<-------->| server |
+----------+ | S | | |
| | +------------+
+----------+ | |
| client |<-------->| |
+----------+ | | +------------+
| | | |
+----------+ +--->+-----+<-------->| server |
| client |<----+ | |
+----------+ +------------+
最常见的负载均衡模式,但有几个点需要支持:
- 支持不同的调度策略,如:轮训,随机等
- 要有心跳检查机制,及时将有问题的后端 server 剔除,但也要在 server 恢复的时候恢复过来
- 有简单的监控,便于查看后端 server 的代理情况及客户端的连接情况
- 有简单的配置文件,便于修改
- ...后续再加...
实现
github:EasyProxy
其他
如有问题,欢迎其他喜欢golang
的小伙伴联系:xsank#foxmmail.com
Golang Go语言中的EasyProxy,简单易用的tcp代理
更多关于Golang Go语言中的EasyProxy,简单易用的tcp代理的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
不懂技术,收藏了
更多关于Golang Go语言中的EasyProxy,简单易用的tcp代理的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
楼主这个跟 HAProxy 对比起来方向有哪些差异?
1.HAProxy 高可用性好,代理策略齐全,重量型,用于生产环境较好
2.EasyProxy 是花几天工作闲暇时间搞的,也具备代理功能,配置简单,可用于开发测试环境,加上 golang 协程支持,性能也还好
可我更需要 udp(跑
Orz…
关于Golang Go语言中的EasyProxy,这是一款轻量级、高性能且功能强大的内网穿透代理服务器,专为简化TCP代理服务器的部署与使用而设计。以下是对EasyProxy的简要介绍:
一、主要特性
- 支持协议:支持TCP和UDP流量转发,可用于多种场景,如访问内网网站、本地支付接口调试、SSH访问等。
- 代理类型:支持内网HTTP代理、内网SOCKS5代理,满足多样化需求。
- 附加功能:提供snappy压缩(节省带宽和流量)、站点保护、加密传输等附加功能,增强安全性和效率。
二、安装与配置
- 环境要求:确保系统已安装Go语言环境,建议版本Go 1.11及以上。
- 安装步骤:通过Git克隆项目到本地,进入项目目录并编译,生成可执行文件。
- 配置方法:编辑配置文件(如config.json),设置服务器地址、端口以及代理类型和目标地址等参数。
三、应用场景
EasyProxy适用于需要间接访问特定服务或寻求服务网关解决方案的场景,如MySQL数据库访问、SSH连接等。通过简单的配置,即可实现高效、安全的代理服务。
综上所述,EasyProxy凭借其简单易用、功能强大等特点,在Golang社区中获得了广泛的关注和好评。