一款灵活,轻量,易于扩展的代理工具。
https://github.com/fanyiguang/agile-proxy/releases
- 支持HTTP/HTTPS/SOCKS5/SSL/SSH代理协议
- 多种协议端口监听
- 多协议前置代理
- 模拟动态代理
- 自定义配置代理链路
- 高可用代理模式
- 自定义DNS
- 消息处理
每个模块下都有多种实现。它们像组件一般,您可以挑选合适的组件来拼装出属于自己的代理链路。
{
"ip": "127.0.0.1",
"port": "7890",
"username": "admin",
"password": "123",
"type": "socks5",
"name": "socks5-server",
"auth_mode": 1, //认证模式 0-只允许认证模式 1-允许匿名模式
"transport_name": "direct-transport" //传输器模块名称
}
{
"type": "direct",
"name": "direct-transport",
"client_name": "socks5-client",
"dns": {
"local_dns": false,
"server": "114.114.114.114"
}
}
{
"ip": "127.0.0.1",
"port": "7892",
"username": "admin",
"password": "123",
"type": "socks5",
"name": "socks5-client",
"auth_mode": 1,
"dialer_name": "direct-dialer", //连接器模块名称
"mode": 0 // 连接模式 0-降级模式 1-严格模式
}
在降级模式下如果连接器拨号失败了,客户端会切换到默认连接模式再次尝试连接目标服务器,严格模式的话则不会尝试默认连接。
{
"type": "direct",
"name": "direct-dialer",
"interface": "" //本地网卡ip
}
https://github.com/fanyiguang/agile-proxy/tree/main/_example/config_description
{
"type": "dynamic",
"name": "dynamic",
"client_names": "socks5-1,socks5-2,direct", //多个客户端用,隔开
"rand_rule": "timestamp", //时间戳(默认)
"dns": {
"local_dns": false,
"server": "114.114.114.114"
}
}
{
"type": "ha",
"name": "ha",
"client_names": "socks5-1,socks5-2",
"dns": {
"local_dns": false,
"server": "114.114.114.114"
}
}
https://github.com/fanyiguang/agile-proxy/tree/main/_example/config
agile-proxy设计之初的理念就是高扩展性,项目中几乎所有功能都是解耦的。可以很容易的接入开发创造出自己的代理。