Giter Club home page Giter Club logo

shadowsocks-vertx's Introduction

shadowsocks-vertx

DO NOT USE IT ANYMORE!!!

Only support SS-V1

Codacy Badge codecov License

Intro

shadowsocks-vertx is a lightweight tunnel proxy which can help you get through firewalls. It is a java port of shadowsocks. This project is based on vert.x.

The protocol is compatible with the origin shadowsocks (if both have been upgraded to the latest version).

JDK 8 is needed.

Current version 0.8.4

It is unstable! If you encounter any problems, please open an issue.

About shadowsocks, please refer to shadowsocks

About vert.x, please refer to vertx

Features

Supported argument:

1. -m/--method crypto method
2. -k/--password password
3. -p/--server_port bind port(server)/remote port(client)
4. -a/--auth OTA enforcing mode
5. -l/--local_port local port
6. -s/--server server
7. -S/--server_mode server mode(default is client mode)
8. -c/--config config file
9. -t/--timeout timeout(unit is second, currently unused)
10. -h/--help show help.

Supported encrypt method:

1. aes-128-cfb
2. aes-192-cfb
3. aes-256-cfb
4. chacha20/chacha20-ietf

Supported one-time auth.

Support JSON config file. Please refer to shadowsocks config. Note:

1. Not support: local_address, client will bind 0.0.0.0 not 127.0.0.1
2. Not support: fast_open. Java doesn't have such feature.
3. Not support: workers. Vertx will set work thread number automatically.
4. Additional: server_mode, set the running mode, true for the server.

You could refer to demo config etc/demo.json.

How to run

(1) Before you start

You must have 'gradle' installed first, or use gradle wrapper ./gradlew.

(2) generate distributable zip

$ gradle distZip

or

$ ./gradlew distZip

Then you will get shadowsocks-ver.zip in build/distributions. Unzip it, the folder should contain bin and lib.

Run

//Server
$ bin/shadowsocks -S ...
$ bin/shadowsocks --server_mode ...
//Local
$ bin/shadowsocks ...

(3) generate all-in-one jar

$ gradle fatJar

or

$ ./gradlew fatJar

Then you will get shadowsocks-fat-ver.jar in build/libs.

How to run

//Server
$ java -jar shadowsocks-fat-xx.jar -S ...
$ java -jar shadowsocks-fat-xx.jar --server_mode ...
//Local
$ java -jar shadowsocks-fat-xx.jar ...

shadowsocks-vertx's People

Contributors

bestoa avatar cfig avatar clowwindy avatar codacy-badger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

shadowsocks-vertx's Issues

Refactor with Vert.x

Currently, we need start new thread for each connection.
Vert.x is awesome framework. We'd better refactor with it.

Add buffer for stream up/down data

Currently, if some data can't send success we just use while loop. It may cause cpu 100%.
Even we add timeout, this is still not a good solution.
We should add buffer for send failed data, and re-send them after for a while.

ChaCha20 is broken!

cipher = (StreamBlockCipher)mDecryptCipher;
A ChaChaEngine is not a StreamBlockCipher.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.