该代理可用于:
- 欺骗防火墙,实现自由访问墙外资源
- 加密通信,不怕数据被监听(可用于公司内部网络)
- 可以配置对某些域名或ip不进行代理(支持多种配置格式)
- 支持docker部署,一条命令便可完成部署
- 本地代理支持配置多个远程代理
- 远程代理可以开启多个端口实现负载均衡
- 支持中间代理,可用通过中间代理将多个节点串联,或网状串联,也可不部署中间代理,只使用本地和远程代理
本项目仅用作学习交流
,提升编程能力
,请不要将该项目用于非法用途!
git clone https://github.com/kainhuck/yao-proxy.git
make run-local
make run-middle
make run-remote
注意📢: 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
-
下载最新的对应平台的二进制文件:🔗
-
准备好配置文件
-
运行程序
-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
main
分支为最新稳定分支
develop
分支为最新分支
release
分支为历史稳定分支,应该从main
分支切过去
feature
分支为新特性分支,应该从develop
中切过去
fix
分支为bug修复分支
-
使用systemd来部署服务
-
实现cli来安装部署remote,以及生成local的配置文件
- 修复ipv4 * 写法的bug
- 增加中间节点代理,可以利用中间节点将多个服务器串成代理链或代理网
- 只使用local和remote不影响使用
- 过滤规则增加ipv4区间写法,参考local-config
- 本地代理新增过滤规则,可以不代理指定的域名或者IP地址,写法参考local-config
-
本地代理更新,可以支持代理多个端口
-
配置文件和之前版本不兼容