diff --git a/.editorconfig b/.editorconfig index 88d539d3..fd8405bb 100644 --- a/.editorconfig +++ b/.editorconfig @@ -2,4 +2,7 @@ root=true [*.{groovy,java,kt,xml}] indent_style = space -indent_size = 4 \ No newline at end of file +indent_size = 4 + +[*.sh] +end_of_line=lf diff --git a/.gitignore b/.gitignore index 0e6c3a3b..cfef0ef9 100644 --- a/.gitignore +++ b/.gitignore @@ -57,5 +57,6 @@ hs_err_pid* neutrino-proxy-vuepress/deploy.sh .NEUTRINO_PROXY_CLIENT_ID logs +data **/cert/** neutrino-proxy-server/src/main/resources/static/** diff --git a/Milestone.md b/Milestone.md new file mode 100644 index 00000000..c2c384de --- /dev/null +++ b/Milestone.md @@ -0,0 +1,16 @@ +- 2022-06-16 1.0.0版本发布,基于自研应用框架、纯配置无管理后台 +- 2022-10-12 1.5.0版本发布,底层框架优化,新增管理后台 +- 2022-11-23 1.6.0版本发布,新增日志管理模块,新增首页流量统计 +- 2023-01-08 中微子代理Gitee Star突破100 +- 2023-01-16 加入Dromara组织 +- 2023-02-23 1.6.4版本发布,管理后台增、删、改、禁用实时生效,启动参数、GZip优化 +- 2023-03-12 1.7.0版本发布,底层框架更换为Solon + MybatisPlus +- 2023-03-26 1.7.1版本发布,新增端口池分组、新增报表管理模块、首页图表优化 +- 2023-04-03 1.8.0版本发布,端口映射支持选择协议,HTTP映射支持子域名 +- 2023-05-27 1.8.2版本发布,增加HTTPS支持 +- 2023-06-03 1.8.3版本发布,客户端重连优化、服务端验证客户端身份逻辑优化 +- 2023-06-08 1.8.4版本发布,增加对mariadb的支持、配置文件支持指定日志级别、重连参数 +- 2023-07-04 1.8.5版本发布,后台若干细节优化、配置文件优化 +- 2023-09-07 1.8.6版本发布,后台若干细节优化 +- 2023-09-22 1.9.0版本发布,端口映射支持UDP协议 +- 2023-09-25 中微子代理Gitee Star数突破1000 diff --git a/README.md b/README.md index 5dc93ff2..edca90c0 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@
-
-
+
+
diff --git a/VLog.md b/VLog.md
new file mode 100644
index 00000000..3c44297a
--- /dev/null
+++ b/VLog.md
@@ -0,0 +1,74 @@
+# 1.x
+## 1.0.0
+> 第一个基本可用版本
+- 基于自研底层应用框架、Netty
+- 纯配置实现、无管理后台
+- 支持TCP代理
+
+## 1.5.0
+- 管理后台新增用户管理、License管理、端口映射、调度管理、客户端连接日志、调度日志
+- 支持默认sqlite数据库
+- 底层框架Aop、Banner、SqlMapper、Ioc、@Value注解、Yml配置加载、静态资源服务等优化
+- 底层框架新增@Async、@Singleton等注解
+- 新增AsgcCompiler、ApplicationEvent机制封装
+
+## 1.6.0
+- 新增日志管理模块,调度日志迁移至日志管理
+- 管理后台新增登录日志
+- 新增首页流量统计
+
+## 1.6.4
+- 支持代理服务端用户(删除/禁用)、端口池(删除/禁用/启用)、License(删除/禁用/启用)、端口映射(新增/删除/禁用/启用)实时生效
+- 启动参数优化
+- 服务端静态资源服务支持缓存、gzip压缩,提升响应速度
+
+## 1.7.0
+- 底层框架更换为Solon + MybatisPlus
+
+## 1.7.1
+- 针对管理后台各页面的排序、搜索条件的优化
+- 增加端口池分组、相关的端口映射优化
+- 增加了报表管理模块:用户流量报表、license流量报表、用户流量月度明细、license流量月度明细
+- 完成首页图表展示:license统计、端口映射统计、今日流量统计、汇总流量统计、最近15日流量折线图
+
+## 1.8.0
+- 端口映射支持选择协议
+- HTTP协议下映射支持配置子域名(前提是server端配置了域名)
+
+## 1.8.2
+- 增加HTTPS的支持。
+
+## 1.8.3
+- 客户端重连优化
+- 服务端验证客户端身份逻辑优化
+
+## 1.8.4
+- 增加对mariadb的支持
+- 服务端/客户端,支持配置文件、启动参数指定日志级别
+- 客户端支持配置文件指定重连间隔,是否开启无限重连
+
+## 1.8.5
+- 后台端口池管理支持批量删除
+- 端口映射下拉选择端口支持搜索
+- 客户端/服务端配置增加心跳日志开关,有需要时开启,方便排查问题
+- 客户端/服务端读写超时逻辑微调
+
+## 1.8.6
+- 端口映射选择端口支持分页
+- 新增/更新端口映射,增加端口占用检测(端口映射编辑时,如果端口号没有变动,则不验证。避免出现端口映射正在使用时,无法更新端口映射其他信息的问题)
+- 下拉搜索license,支持模糊搜索
+- license下拉用户搜索,支持模糊搜索
+- 端口映射HTTP(S)新增打开网页按钮
+- 客户端断开连接时,记录日志空指针异常问题修复
+
+## 1.9.0
+- 端口映射支持UDP协议
+- 端口映射HTTP(S)新增打开网页按钮,优先使用域名打开
+- 新增/编辑端口映射时端口占用检测功能屏蔽,解决docker下使用的各种问题
+
+# 2.x
+## 2.0.0
+- solon版本升级为`2.5.11`
+- jdk版本升级为17
+- 支持原生编译改造
+- 默认支持的数据库由sqlite改为h2
diff --git a/neutrino-proxy-client/Dockerfile b/neutrino-proxy-client/Dockerfile
index 85388bdf..0ba1eb31 100644
--- a/neutrino-proxy-client/Dockerfile
+++ b/neutrino-proxy-client/Dockerfile
@@ -1,12 +1,12 @@
-FROM openjdk:8-jdk-alpine
+FROM openjdk:17-jdk-alpine
#同步时间
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
apk update && apk add wget unzip vim && apk add -U tzdata && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
RUN mkdir -p /root/neutrino-proxy/config
WORKDIR /root/neutrino-proxy
-COPY ../neutrino-proxy-client/target/neutrino-proxy-client.jar /root/neutrino-proxy/neutrino-proxy-client.jar
-COPY ../neutrino-proxy-client/src/main/resources/app.yml /root/neutrino-proxy/config
+COPY ./target/neutrino-proxy-client.jar /root/neutrino-proxy/neutrino-proxy-client.jar
+COPY ./src/main/resources/app.yml /root/neutrino-proxy/config
#VOLUME ["/root/neutrino-proxy"]
ENTRYPOINT ["java","-jar","neutrino-proxy-client.jar","config=./config/app.yml"]
diff --git a/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/ProxyClient.java b/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/ProxyClient.java
index a22a9489..3f5d6628 100644
--- a/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/ProxyClient.java
+++ b/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/ProxyClient.java
@@ -16,12 +16,12 @@ public class ProxyClient {
public static void main(String[] args) {
Solon.start(ProxyClient.class, args, app -> {
- setAlias("neutrino.proxy.tunnel.serverIp", "serverIp");
- setAlias("neutrino.proxy.tunnel.serverPort", "serverPort");
- setAlias("neutrino.proxy.tunnel.sslEnable", "sslEnable");
- setAlias("neutrino.proxy.tunnel.jksPath", "jksPath");
- setAlias("neutrino.proxy.tunnel.keyStorePassword", "keyStorePassword");
- setAlias("neutrino.proxy.tunnel.licenseKey", "licenseKey");
+ setAlias("neutrino.proxy.tunnel.server-ip", "serverIp");
+ setAlias("neutrino.proxy.tunnel.server-port", "serverPort");
+ setAlias("neutrino.proxy.tunnel.ssl-enable", "sslEnable");
+ setAlias("neutrino.proxy.tunnel.jks-path", "jksPath");
+ setAlias("neutrino.proxy.tunnel.key-store-password", "keyStorePassword");
+ setAlias("neutrino.proxy.tunnel.license-key", "licenseKey");
});
}
diff --git a/neutrino-proxy-server/Dockerfile b/neutrino-proxy-server/Dockerfile
index 6893ea59..56aa5cef 100644
--- a/neutrino-proxy-server/Dockerfile
+++ b/neutrino-proxy-server/Dockerfile
@@ -1,15 +1,13 @@
-FROM openjdk:8-jdk-alpine
+FROM openjdk:17-jdk-alpine
#同步时间
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
apk update && apk add wget unzip vim && apk add -U tzdata && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
RUN mkdir -p /root/neutrino-proxy/config
-RUN mkdir -p /root/neutrino-proxy/neutrino-proxy-admin
WORKDIR /root/neutrino-proxy
-COPY ../neutrino-proxy-server/target/neutrino-proxy-server.jar /root/neutrino-proxy/neutrino-proxy-server.jar
-COPY ../neutrino-proxy-server/src/main/resources/app.yml /root/neutrino-proxy/config
-COPY ../neutrino-proxy-admin/dist /root/neutrino-proxy/neutrino-proxy-admin/dist
+COPY ./target/neutrino-proxy-server.jar /root/neutrino-proxy/neutrino-proxy-server.jar
+COPY ./src/main/resources/app.yml /root/neutrino-proxy/config
#VOLUME ["/root/neutrino-proxy"]
ENTRYPOINT ["java","-jar","neutrino-proxy-server.jar","config=./config/app.yml"]
-#docker run -it -p 9000-9200:9000-9200/tcp -p 8888:8888 -v /root/neutrino-proxy/config:/root/neutrino-proxy/config -d --restart=always --name neutrino registry.cn-hangzhou.aliyuncs.com/asgc/aoshiguchen-docker-images:1.7
\ No newline at end of file
+#docker run -it -p 9000-9200:9000-9200/tcp -p 8888:8888 -v /root/neutrino-proxy/config:/root/neutrino-proxy/config -d --restart=always --name neutrino registry.cn-hangzhou.aliyuncs.com/asgc/aoshiguchen-docker-images:1.7
diff --git a/neutrino-proxy-server/src/main/resources/app.yml b/neutrino-proxy-server/src/main/resources/app.yml
index d92bd55e..7719937b 100644
--- a/neutrino-proxy-server/src/main/resources/app.yml
+++ b/neutrino-proxy-server/src/main/resources/app.yml
@@ -77,7 +77,7 @@ neutrino:
# 数据库类型,目前支持h2、mysql、mariadb
type: ${DB_TYPE:h2}
# 数据库连接URL
- url: ${DB_URL:jdbc:h2:file:~/.neutrino-proxy/data/db;MODE=MySQL;AUTO_SERVER=TRUE}
+ url: ${DB_URL:jdbc:h2:file:./data/db;MODE=MySQL;AUTO_SERVER=TRUE}
# 数据库用户名
username: ${DB_USER:}
# 数据库密码
diff --git a/pom.xml b/pom.xml
index c15e63f6..721fad87 100644
--- a/pom.xml
+++ b/pom.xml
@@ -76,7 +76,7 @@