Appearance
https://framewiki.com/wiki-proxy
介绍
Wiki-Proxy 是基于 Netty 构建的高性能代理服务器,专为开发者设计,提供 HTTP/HTTPS、SOCKS5 等多种代理协议支持。该项目致力于为开发者提供轻量级、高性能的代理解决方案,支持请求转发、负载均衡、流量控制等企业级功能。
项目理念
Wiki-Proxy 秉承开源共享的理念:
- 开箱即用:简单配置即可启动高性能代理服务
- 轻量高效:基于 Netty 异步架构,支持高并发访问
- 功能完善:支持多种代理协议、认证方式和流量管控
- 易于扩展:模块化设计,支持自定义插件和中间件
核心特性
代理协议支持
- HTTP/HTTPS 代理:支持标准 HTTP CONNECT 方法
- SOCKS5 代理:完整的 SOCKS5 协议实现
- 透明代理:支持透明代理模式
- 协议转换:支持不同协议间的转换代理
性能与稳定性
- 异步架构:基于 Netty 事件驱动模型
- 连接池管理:智能连接复用与管理
- 内存优化:零拷贝技术与内存池管理
- 故障恢复:自动重连与故障转移
安全与认证
- 用户认证:支持用户名密码认证
- IP 白名单:基于 IP 的访问控制
- HTTPS 支持:SSL/TLS 加密传输
- 请求过滤:可配置的请求过滤规则
性能调优
JVM 参数优化
bash
java -Xms2g -Xmx4g \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+UseZGC \
-jar wiki-proxy.jar
Netty 调优
yaml
wiki:
proxy:
netty:
# I/O 线程数
boss-threads: 1
worker-threads: 16
# 缓冲区大小
receive-buffer-size: 65536
send-buffer-size: 65536
# 连接选项
so-backlog: 1024
so-keepalive: true
tcp-nodelay: true
部署指南
使用Jar包部署
1、环境准备
- 首先确保已安装Java JDK(JRE) 17 + 运行环境;
- 下载最新的release包:wiki-proxy-server.zip、wiki-proxy-client.zip,最新版本为 v1.0.0,打发行版页面;
- 或者自行下载源码,然后编译成jar包,编译命令:mvn clean install -Dmaven.test.skip=true,也可如下图所示IDEA 打开项目,编译项目,编译成后,在target目录下找到jar包;

2、部署服务端
- 需要在服务器上新建目录:/usr/web/wiki-proxy/server/;
- 需注意程序日志默认输出目录为 /opt/log/wiki-proxy-server/目录下,若不 root 账号需要对账号受权:chown -R wiki:wiki /opt/log/;
bash
chown -R wiki:wiki /opt/log/
- 将 wiki-proxy-server.zip 解压或自行打包的Jar包上传至服务器部署目录;
- 配置文件重点修改如下配置:
yaml
spring:
application:
name: wiki-proxy-server
proxy:
server:
# 服务端(TCP)端口
service-port: 10010
# 暴露端口 可以为多个
port:
- 443
# 证书存放路径
ssl-key-store-path: "D:\\Project\\wiki-proxy\\server\\proxy-server-web\\src\\main\\resources\\wiki-proxy.jks"
# 证书密码
ssl-key-store-password: "wiki-proxy@SaFePwd2025!"
# 证书类型
ssl-key-store-type: PKCS12
# 协议 默认为 TLSv1.2 版本
protocol: TLSv1.2
# 算法 默认为 sunx509
algorithm: sunx509
# 交互密钥 AES 需要与客户端一致
aes-key: 8AUWlb+IWD+Fhbs0xnXCCg==
# 交互签名 key 需要与客户端一致
token-key: tokenKey
- 执行如下命令启动服务端完成部署,若需要将配置文件 application.yml 拷贝至 /usr/web/wiki-proxy/server/ 目录下并修改相关配置,默认配置环境只有 test 环境若增加其它环境,则需要在启动命令中修改 -Dspring.profiles.active=xxx 参数,并增加相应的环境配置文件;
bash
nohup java -jar -Dspring.profiles.active=test -Dconfig.file=/usr/web/wiki-proxy/server/application.yml wiki-proxy-server.jar >> /dev/null &
3、部署客户端
- 需要在服务器上新建目录:/usr/web/wiki-proxy/client/;
- 需注意程序日志默认输出目录为 /opt/log/wiki-proxy-client/目录下,若不 root 账号需要对账号受权:chown -R wiki:wiki /opt/log/;
bash
chown -R wiki:wiki /opt/log/
- 将 wiki-proxy-client.zip 解压或自行打包的Jar包上传至服务器部署目录;
- 配置文件重点修改如下配置:
yaml
spring:
application:
name: wiki-proxy-client
proxy:
client:
# 服务端ip
service-ip: 127.0.0.1
# 服务端 (TCP) 端口
service-port: 10010
ip:
- 127.0.0.1 # 目标代理ip
dest-port: # 目标代理端口
- 50501
port:
- 443 # 服务端暴露端口
# 证书存放路径
ssl-key-store-path: "D:\\Project\\wiki-proxy\\server\\proxy-server-web\\src\\main\\resources\\wiki-proxy.jks"
# 证书密码
ssl-key-store-password: "wiki-proxy@SaFePwd2025!"
# 证书类型
ssl-key-store-type: PKCS12
# 协议 默认为 TLSv1.2 版本
protocol: TLSv1.2
# 算法 默认为 sunx509
algorithm: sunx509
# 交互密钥 AES 需要与服务端一致
aes-key: 8AUWlb+IWD+Fhbs0xnXCCg==
# 交互签名 key 需要与服务端一致
token-key: tokenKey
- 执行如下命令启动服务端完成部署,若需要将配置文件 application.yml 拷贝至 /usr/web/wiki-proxy/client/ 目录下并修改相关配置,默认配置环境只有 test 环境若增加其它环境,则需要在启动命令中修改 -Dspring.profiles.active=xxx 参数,并增加相应的环境配置文件;
bash
nohup java -jar -Dspring.profiles.active=test -Dconfig.file=/usr/web/wiki-proxy/client/application.yml wiki-proxy-client.jar >> /dev/null &
Docker 部署
dockerfile
FROM openjdk:17-jre-slim
COPY wiki-proxy.jar /app/
COPY application.yml /app/
WORKDIR /app
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "wiki-proxy.jar"]
Kubernetes 部署
yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: wiki-proxy
spec:
replicas: 3
selector:
matchLabels:
app: wiki-proxy
template:
metadata:
labels:
app: wiki-proxy
spec:
containers:
- name: wiki-proxy
image: framewiki/wiki-proxy:1.0.8
ports:
- containerPort: 8080
env:
- name: JAVA_OPTS
value: "-Xms1g -Xmx2g"
源码与贡献
编译构建
bash
# 克隆代码
git clone https://gitee.com/cdkjframework/wiki-proxy.git
cd wiki-proxy
# Maven 构建
mvn clean package -DskipTests
# 运行测试
mvn test
# 启动服务
java -jar target/wiki-proxy-1.0.8.jar
贡献指南
- Fork 项目到个人仓库
- 创建功能分支:
git checkout -b feature/new-feature
- 提交更改:
git commit -am 'Add new feature'
- 推送到分支:
git push origin feature/new-feature
- 创建 Pull Request
社区与支持
交流渠道
- QQ 群:25056933
- 微信公众号:维基框架(framewiki-com)
- 邮件:wiki@framewiki.com
问题反馈
许可证
本项目采用 MIT License 开源协议。
版本历史
v1.0.0 (2025-03-28)
- 第一个正式版本 v1.0.0
注意:本项目仅供学习和合法用途使用,请遵守当地法律法规。
⚡ 反馈与交流
在使用过程中有遇到任何问题或想法,都可以提交 issue 。
或者加入我的微信: