[Open Source] MIT License, an open-source Java intranet tunneling project based on Netty

Open SourceProcess Management
2026-06-28 04:04 2 次浏览 • 0 次下载 0KB
[Open Source] MIT License, an open-source Java intranet tunneling project based on Netty

1. Project Overview


Introduction

  • Neutrino Proxy (neutrino-proxy) is an open-source Java intranet penetration project based on Netty.
  • Technology Stack: Solon, MybatisPlus, Netty
  • Licensed under MIT, you are free to copy, modify, distribute, and use it for any personal or commercial purpose.

2. Open Source License

Licensed under MIT

3. Screenshots

Running Example

 

 

 

 


4. Feature Overview

A powerful intranet penetration tool based on Netty.

Origin of the Name

A neutrino is a type of lepton and one of the most fundamental particles that make up the natural world. It is extremely small, electrically neutral, and can pass freely through the Earth at nearly the speed of light. Its interactions with other matter are extremely weak, earning it the nickname 'the invisible particle of the universe.'

Neutrinos are the most penetrating particles in the universe. Only when the gaps between particles are smaller than 10 to the power of -19 meters can neutrinos be blocked.

Therefore, the name Neutrino symbolizes the proxy's characteristics of 'security,' 'speed,' and 'strong penetration,' inspired by the properties of neutrinos.

5. Tech Stack

Project Structure

  • neutrino-proxy
  • neutrino-proxy-core: Common constants and codecs related to the proxy
  • neutrino-proxy-client: Proxy client project
  • neutrino-proxy-server: Proxy server project
  • neutrino-proxy-admin: Proxy monitoring project (developed based on vue-element-admin)

5. Running

5.1. Use the keytool utility to generate an SSL certificate. Skip this step if SSL encryption is not required.


keytool -genkey -alias test1 -keyalg RSA -keysize 1024 -validity 3650 -keypass 123456 -storepass 123456 -keystore  "./test.jks"

5.2. Modify the server configuration (app.yml)


application:
  name: neutrino-proxy-server

neutrino:
  proxy:
    protocol:
      max-frame-length: 2097152
      length-field-offset: 0
      length-field-length: 4
      initial-bytes-to-strip: 0
      length-adjustment: 0
      read-idle-time: 60
      write-idle-time: 40
      all-idle-time-seconds: 0
    tunnel:
      boss-thread-count: 2
      work-thread-count: 10
      # Server port used to maintain the connection with the client, non-SSL
      port: ${OPEN_PORT:9000}
      # Server port used to maintain the connection with the client, SSL. A JKS certificate file is required. Omit this setting if SSL support is not needed.
      ssl-port: ${SSL_PORT:9002}
      # Certificate configuration for SSL encryption of tunnel communications
      key-store-password: ${STORE_PASS:123456}
      key-manager-password: ${MGR_PASS:123456}
      jks-path: ${JKS_PATH:classpath:/test.jks}
    server:
      boss-thread-count: 5
      work-thread-count: 20
      # HTTP proxy port, default is 80. Other ports can also be used with Nginx forwarding.
      http-proxy-port: ${HTTP_PROXY_PORT:80}
      # HTTPS proxy port, default is 443. Other ports can also be used with Nginx forwarding.
      https-proxy-port: ${HTTPS_PROXY_PORT:443}
      # Domain mapping is not supported if this setting is omitted.
      domain-name: ${DOMAIN_NAME:}
      # Certificate configuration for HTTPS support
      key-store-password: ${HTTPS_STORE_PASS:}
      jks-path: ${HTTPS_JKS_PATH:}
    data:
      # Database configuration (MySQL supported)
        type: sqlite
        url: jdbc:sqlite:data.db
        driver-class: org.sqlite.JDBC
        username:
        password:

5.3. Start the Server


java -jar neutrino-proxy-server.jar
5.4. Modify the Client Configuration

application:
  name: neutrino-proxy-client

proxy:
  protocol:
    max-frame-length: 2097152
    length-field-offset: 0
    length-field-length: 4
    initial-bytes-to-strip: 0
    length-adjustment: 0
    read-idle-time: 60
    write-idle-time: 30
    all-idle-time-seconds: 0
  client:
    # SSL certificate password
    key-store-password: 123456
    # SSL certificate location
    jks-path: classpath:/test.jks
    # Server IP; if deployed on a server, configure the server's IP address
    server-ip: localhost
    # Server port; if SSL is enabled, configure this to the server's "ssl-port"
    server-port: 9000
    # Whether to enable SSL; if enabled, SSL-related parameters must be configured
    ssl-enable: false

5.5. Proxy Architecture Diagram


5.6. Start the Client

5.6.1. Specify Configuration Directly Through Startup Parameters


java -jar neutrino-proxy-client.jar serverIp=localhost serverPort=9000 licenseKey=b0a907332b474b25897c4dcb31fc7eb6

5.6.2. Specify an External Configuration File Through Startup Parameters


java -jar neutrino-proxy-client.jar config=app.properties

The configuration file format is as follows:


neutrino.proxy.client.server-ip=localhost
neutrino.proxy.client.server-port=9002
neutrino.proxy.client.ssl-enable=true
neutrino.proxy.client.key-store-password=123456
neutrino.proxy.client.jks-path=classpath:/test.jks
neutrino.proxy.client.license-key=b0a907332b474b25897c4dcb31fc7eb6

5.7. Quick Start with Docker


 # Deploy the frontend and backend with one command. Deploy the client as described above.
    docker run -it -p 9000-9200:9000-9200/tcp -p 8888:8888 -d --name neutrino registry.cn-hangzhou.aliyuncs.com/asgc/aoshiguchen-docker-images:1.64
    # If Docker is not installed, use the following command to install Docker on CentOS 7.8 with one click.
    curl [http://www.wangke666.cn/static/createDocker.sh](http://www.wangke666.cn/static/createDocker.sh) | bash

Future Development Plans

  • Optimize the code and improve stability
  • Add an administration panel to the server, providing features such as reports, authorization, and rate limiting
  • Extract and incubate another open-source project (neutrino-framework) from this project

Thanks

  • Solon
  • Hutool
  • JetBrains

#1
资源直链https://gitee.com/dromara/neutrino-proxy
去下载
星河码客

发现和分享优质开源项目,传承互联网精神,为开发者服务。

关于本站

联系我们

微信/广告合作:ITcloub (备注星河码客)

免责声明:本站资源版权归原作者所有,仅供学习与交流。如有侵权,请通过「关于我们 - 侵权投诉」联系删除。

Powered by Nuxt · Deployed on Cloudflare