Skip to content

kainhuck/yao-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yao-proxy

GitHub GitHub go.mod Go version GitHub tag (latest by date) Docker Pulls

介绍

该代理可用于:

  1. 欺骗防火墙,实现自由访问墙外资源
  2. 加密通信,不怕数据被监听(可用于公司内部网络)
  3. 可以配置对某些域名或ip不进行代理(支持多种配置格式)
  4. 支持docker部署,一条命令便可完成部署
  5. 本地代理支持配置多个远程代理
  6. 远程代理可以开启多个端口实现负载均衡
  7. 支持中间代理,可用通过中间代理将多个节点串联,或网状串联,也可不部署中间代理,只使用本地和远程代理

声明

本项目仅用作学习交流提升编程能力,请不要将该项目用于非法用途!

使用

快速测试

git clone https://github.com/kainhuck/yao-proxy.git
make run-local
make run-middle
make run-remote

docker 部署(推荐)

注意📢: docker镜像不再发布到github packages(已停止更新),现在只发布到dockerhub:🔗

现在将两个镜像发布到同一个仓库,通过tag来区分,

  • local镜像tag

    latest-local

  • middle镜像tag

    latest-middle

  • remote镜像tag

    latest-remote

部署方式如下:

注意:

1. 运行时请指定配置文件的路径,配置文件示例

2. mac系统不支持host模式,请手动通过 -p 来映射端口

3. 由于mac不支持host模式,所以mac下就不能对本地地址(0.0.0.0等)取消代理,若要不代理这些地址,应当在操作系统或浏览器里设置

本地代理:

docker run --name yao-proxy \
           --net=host 
           --restart=always 
           -v <your config path>:/etc/yao-proxy/config.json \
           -d kainhuck/yao-proxy:latest-local

远程代理:

docker run --name yao-proxy \
           --net=host \
           --restart=always \
           -v <your config path>:/etc/yao-proxy/config.json \
           -d kainhuck/yao-proxy:latest-remote

中间代理:

docker run --name yao-proxy \
           --net=host \
           --restart=always \
           -v <your config path>:/etc/yao-proxy/config.json \
           -d kainhuck/yao-proxy:latest-middle

二进制部署

  1. 下载最新的对应平台的二进制文件:🔗

  2. 准备好配置文件

  3. 运行程序 -c 指定配置文件,例:

    ./local_darwin_amd64 -c /etc/yao-proxy/config.json
    ./middle_darwin_amd64 -c /etc/yao-proxy/config.json
    ./remote_darwin_amd64 -c /etc/yao-proxy/config.json
    

配置文件示例

local-config

middle-config

remote-config

贡献代码

main分支为最新稳定分支

develop分支为最新分支

release分支为历史稳定分支,应该从main分支切过去

feature分支为新特性分支,应该从develop中切过去

fix分支为bug修复分支

todo

  1. 使用systemd来部署服务

  2. 实现cli来安装部署remote,以及生成local的配置文件

更新说明

v3.0.1

  • 修复ipv4 * 写法的bug

v3.0.0

  • 增加中间节点代理,可以利用中间节点将多个服务器串成代理链或代理网
  • 只使用local和remote不影响使用

v2.2.3

v2.2.2

  • 本地代理新增过滤规则,可以不代理指定的域名或者IP地址,写法参考local-config

v2.2.1

  • 本地代理更新,可以支持代理多个端口

  • 配置文件和之前版本不兼容