1、简介

  • 维基代理(wiki-proxy)、开源的java内网穿透项目。
  • 技术栈:cdkjFramework(维基框架)、JPA、Netty
  • 遵循MIT许可,因此您可以对它进行复制、修改、传播并用于任何个人或商业行为。
  • 官网地址:https://www.framewiki.com/

2、项目结构

  • wiki-proxy 维基代理项目

    • assets 框架资源文件
    • client 代理客户端
      • proxy-client 代理客户端项目
      • proxy-client-web 代理客户端项目
    • proxy-admin 代理监控项目(基于vue3 + element-plus开发)
    • proxy-core 代理核心库
    • proxy-util 代理工具库
    • server 代理服务端
      • proxy-server 代理服务端业务代码
      • proxy-server-web 代理服务端接口

3、运行

3.1 生成证书,使用 keytool 工具生成测试证书如下所示(建议使用Let's Encrypt生成正式证书)

keytool -genkey -alias wiki-proxy -keyalg RSA -keysize 2048 -validity 3650 -keypass wiki-proxy@SaFePwd2025! -storepass wiki-proxy@SaFePwd2025! -keystore "./wiki-proxy.jks"
 

3.2 修改服务端配置文件

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
 

3.3 服务端启动(Spring Boot 项目)

com.framewiki.proxy.server.ProxyServerApplication

3.4 修改客户端配置文件

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
 

3.5 客户端启动(Spring Boot 项目)

com.framewiki.proxy.client.ProxyClientApplication

4、部署

先将项目构建好jar包(构建方式如下图)、也可下载发布的jar包,然后上传至服务器指定目录下。

4.1 部署服务端

先将wiki-proxy-server.jar包、Dockerfile、start.sh、stop.sh上传至服务器 /user/web/wiki-proxy/server 目录下。

4.1.1 构建并运行Docker镜像

切换工作目录至/user/web/wiki-proxy/server目录下(根据自己的服务器目录结构进行修改)

cd /user/web/wiki-proxy/server

 

执行如下命令构建Docker镜像

./start.sh

 

4.1.2 停止Docker镜像

./stop.sh

 

4.2 部署客户端

先将wiki-proxy-client.jar包、Dockerfile、start.sh、stop.sh上传至服务器 /user/web/wiki-proxy/client 目录下。

4.2.1 构建并运行Docker镜像

切换工作目录至/user/web/wiki-proxy/client 目录下(根据自己的服务器目录结构进行修改)

cd /user/web/wiki-proxy/client

 

执行如下命令构建Docker镜像

./start.sh

 

4.2.2 停止Docker镜像

./stop.sh

 

5、代理示意图

6、联系我们

开源的java内网穿透 - 维基代理(wiki-proxy)的更多相关文章

  1. 【新晋开源项目】内网穿透神器[中微子代理] 加入 Dromara 开源社区

    1.关于作者 dromara开源组织成员,dromara/neutrino-proxy项目作者 名称:傲世孤尘.雨韵诗泽 名言: 扎根土壤,心向太阳.积蓄能量,绽放微光. 拘浊酒邀明月,借赤日暖苍穹. ...

  2. 聊聊第一个开源项目(内网穿透) - CProxy

    文章首发:聊聊第一个开源项目 - CProxy 作者:会玩code 初衷 最近在学C++,想写个项目练练手.对网络比较感兴趣,之前使用过ngrok(GO版本的内网穿透项目),看了部分源码,想把自己的一 ...

  3. 【代理】内网穿透工具 frp&frps

    frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发. ### frp 的作 ...

  4. 借助FRP反向代理实现内网穿透

    一.frp 是什么? frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便捷的方式通过具有公网 IP 节点的中转暴露到公 ...

  5. frp实现基于反向代理的内网穿透

    个人博客主页: xzajyjs.cn frp是什么 简单地说,frp就是一个反向代理软件,它体积轻量但功能很强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持HTTP.TCP.UDP等众多协议 ...

  6. Mac配置内网穿透

    闲语: Java开发过程中,往往会对接第三方,而在对接过程中,双方间使用的最多的"通讯"方式就是异步通知.可是异步通知过程中,只能通知到外网地址,可是在调试过程我们都是在本地进行- ...

  7. 测试龙芯 LoongArch .NET之 使用 FastTunnel 做内网穿透远程计算机

    龙芯3A5000 已经上市,与龙芯3A5000配套的三大编译器GCC.LLVM.GoLang和三大虚拟机Java.JavaScript..NET均已完成开发,从老伙计哪里搞来一台3A5000 机器,安 ...

  8. 内网穿透神器(ngrok)服务端部署【分享一台自己的ngrok服务器】【多平台】

    Ngrok为何物 “ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道.ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放.”这是百度百科上给Ng ...

  9. 内网穿透+VS2015自带IIS express实现本地调试(微信等需要将开发环境暴漏到外网的情况使用)

    今天一个兼职结束了,又要开始寻找新的兼职公司了 ,为了贴补家用啊,为了给儿子更好的生活加油! 抒情完毕进入正题,本篇文章要解决的问题是其实在开发微信支付,微信公众号等回调地址必须是外网可访问的80端口 ...

  10. 分享一个内网穿透工具frp

    首先简单介绍一下内网穿透: 内网穿透:通过公网,访问局域网里的IP地址与端口,这需要将局域网里的电脑端口映射到公网的端口上:这就需要用到反向代理,即在公网服务器上必须运行一个服务程序,然后在局域网中需 ...

随机推荐

  1. MacSecureCRT配置

    一.调整连接服务器超时时间 Options->Global Options->General->Default Session-> 右侧Edit Default Setting ...

  2. 解锁 DeepSeek 的高效秘籍:技术人员的进阶技巧

    DeepSeek 作为一款强大的代码搜索引擎,能够帮助开发者快速定位代码.解决疑难问题,甚至学习前沿技术.但想要真正释放其潜力,必须掌握以下核心技巧.本文将通过重点标注,直击高效使用 DeepSeek ...

  3. android无障碍开发 企业微信 机器人

    实现 Android 无障碍开发 企业微信 机器人 作为一名新入行的开发者,你可能对如何开发一个支持企业微信的无障碍机器人感到迷茫.在这篇文章中,我将为你详细讲解实现这一功能的流程和代码示例. 流程概 ...

  4. java推送企业微信消息

    <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcl ...

  5. Mybatis 返回自增主键的id

    Mybatis 返回自增主键的idkeyProperty=id:封装到对象中的id字段当中keyColumn=id:封装到数据库的id这一列order=AFTER:在新增语句之后执行 方法一 < ...

  6. autMan奥特曼机器人-跳过注册页面直接进入登陆页面

    1.将下面4行内容存成txt文件[注意将"账号"和"密码"等字眼替换为自己的真正账号和密码],文件名改成sets.conf,放到autman主文件夹,见下图最下 ...

  7. docker下安装Harbor

    安装docker-compose # 安装docker-compose curl -L https://github.com/docker/compose/releases/download/1.18 ...

  8. Flink学习(九) Sink到Kafka

    package com.wyh.streamingApi.sink import java.util.Properties import org.apache.flink.api.common.ser ...

  9. Java 设计模式:装饰者模式(Decorator Pattern)

    一.模式定义 装饰者模式属于结构型设计模式,允许通过动态包装对象的方式为对象添加新功能,提供比继承更灵活的扩展方式.该模式通过组合替代继承,遵循开闭原则(对扩展开放,对修改关闭). 二.核心角色 Co ...

  10. AAA认证

    AAA认证(Authentication, Authorization, and Accounting)是一个网络安全框架,用于管理用户如何访问网络资源.具体来说: 认证(Authentication ...