blinksocks/CHANGELOG.md
2017-12-13 15:15:01 +08:00

18 KiB

Change Log

2.8.5 (2017-12-13)

🚀 Features & Improvements

  • bin/init: add obfs-random-padding to presets by default.
  • benchmark: use project version rather than installed version.
  • core: pre-init presets at startup.
  • package: bundle Node.js runtime v8.9.0 to binaries.
  • package: run compile before benchmark.
  • presets/ss-stream-cipher: add none method for ssr-auth-chain-*.
  • presets/auto-conf: protocol change: UTC field is now encrypted by rc4.
  • presets/auto-conf: allow to load suites from remote.

🐛 Bug Fixes:

  • balancer: fix undefined bug when only use service in configuration.
  • transports/tcp: handle half-close correctly.
  • transports/udp: fix a bug when use auto-conf preset.

Upgrade from 2.8.4 to 2.8.5

$ npm install -g blinksocks@2.8.5

2.8.4 (2017-11-22)

dynamic protocol is introduced in this version, it's an experimental feature.

To use dynamic protocol, prepare a suites.json or pick one from the official versions, then change your preset list(on both client and server) to:

"presets": [
  {
    "name": "auto-conf",
    "params": {
      "suites": "suites.json"
    }
  },
  // no other presets
]

🚀 Features & Improvements

  • core: support dynamic protocol.
  • presets: add auto-conf.

🐛 Bug Fixes:

  • core: prevent calling onReceive() on null inbound during udp relay.
  • transports: wait until connection established before reply to peer.
  • transports: fix RangeError [ERR_SOCKET_BAD_PORT] when sending data via udp socket.

Upgrade from 2.8.3 to 2.8.4

$ npm install -g blinksocks@2.8.4

2.8.3 (2017-11-07)

🐛 Bug Fixes:

  • presets: fix hard coded "userKey" in ssr-auth-xxx.

Upgrade from 2.8.2 to 2.8.3

$ npm install -g blinksocks@2.8.3

2.8.2 (2017-11-07)

🚀 Features & Improvements

  • presets: add ssr-auth-aes128-md5, ssr-auth-aes128-sha1.
  • presets: add ssr-auth-chain-a, ssr-auth-chain-b.
  • presets: add rc4-md5, rc4-md5-6 methods to ss-stream-cipher.
  • presets: refactor obfs-http.
  • presets: apply a padding strategy to reduce heavy bandwidth usage of obfs-random-padding.
  • presets: add getName() interface and readProperty() helper function.
  • presets: expose headSize getter of ss-base, expose iv getter of ss-stream-cipher.
  • benchmark: add test cases for ssr-*.
  • utils: add dumpHex().

🐛 Bug Fixes:

  • core: destroy relay when inbound closed.
  • benchmark: bypass error cases.

Upgrade from 2.8.1 to 2.8.2

$ npm install -g blinksocks@2.8.2

2.8.1 (2017-10-28)

🚀 Features & Improvements

  • presets: print transport type in tracker preset.

🐛 Bug Fixes:

  • transports: fix verbose log for udp transport.

Upgrade from 2.8.0 to 2.8.1

$ npm install -g blinksocks@2.8.1

2.8.0 (2017-10-27)

UDP relay is now available for testing! 🍻

💥 Breaking Changes:

  • presets: deprecated base-auth-stream and base-with-padding presets, please use base-auth instead.

🚀 Features & Improvements

  • bin: add "-w" option to force overwrite exist jsons.
  • src: expose all api interfaces to the top package level.
  • core: add UDP relay support.
  • core: disable json output to reduce log size.
  • core: refactor presets creation.
  • core: convert port to Number after parsed by url.parse().
  • proxies: log error details when received invalid requests.
  • transports: reduce memory grow for websocket.
  • transports: pause inbound receiving before remote connection established.
  • presets: allow to use external presets.
  • presets: add base-auth preset.
  • presets: implement protocols for UDP.
  • test: add test for base-auth preset.

🐛 Bug Fixes:

  • package: fix pkg command.

Upgrade from 2.7.0 to 2.8.0

$ npm install -g blinksocks@2.8.0

To use external presets, please read presets.

2.7.0 (2017-10-17)

💥 Breaking Changes:

  • preset: remove over designed "proxy" and "tunnel" preset.
  • preset: remove useless "exp-compress" preset.
  • package: remove unnecessary webpack bundle.
  • transports: change "websocket" to "ws".

🚀 Features & Improvements:

  • core: add "service" and "dstaddr" option.
  • core: refactor service creation of hub.
  • benchmark: rearrange test cases.
  • proxies: refactor http, socks4(a) and socks5, use more lightweight approach.
  • proxies: add "tcp" transparent proxy.
  • presets: add chacha20-poly1305, chacha20-ietf-poly1305, xchacha20-ietf-poly1305 support for ss-aead-cipher.
  • presets: add chacha20-poly1305 support for v2ray-vmess.
  • utils: remove unsafe parseURI().

🐛 Fixes:

  • core: destroy socket when "end" emitted.
  • presets: fix "invalid length: 0" error caused by obfs-random-padding.
  • test: fix preset runner.

Upgrade from 2.6.3 to 2.7.0

$ npm install -g blinksocks@2.7.0

Notice

  1. blinksocks client no longer handle both http and socks proxy connections at the same port now, please specify only one of them using service:
// client.json
{
  "service": "socks5://<host>:<port>"
  // or "service": "http://<host>:<port>"
}
  1. If you are using websocket transport, please change websocket to ws:
// client.json
{
  "servers": [{
    "service": "ws://<host>:<port>",
    // or "transport": "ws"
  }]
}

// server.json
{
  "service": "ws://<host>:<port>"
  // or "transport": "ws"
}

2.6.3 (2017-10-09)

🚀 Features & Improvements:

  • benchmark: rank by bitrate instead of transfer.
  • core: add "log_max_days" option to configuration.
  • core: improve pipe performance.
  • package: bundle node runtime v8.6.0 to binaries.

To keep the last 30 days logs, add log_max_days to your configuration:

{
  "log_max_days": 30
}

🐛 Fixes:

  • core: clear preset cache after switched to another server.
  • core: fix compatibility to node v6.x.
  • doc: fix links of benchmark.
  • transports: make context sync return.
  • transports: fix TypeError: Cannot read property 'send' of null when using websocket.
  • package: fix "main" field.

2.6.2 (2017-09-21)

Notable Changes

Two experimental presets are ready for production use:

exp-base-with-padding is linked to base-with-padding. exp-base-auth-stream is linked to base-auth-stream.

For backward compatibility, you can still use exp-xxx without changing configurations.

💥 Breaking Changes:

  • core: deprecated IS_TLS, you should make judgement by TRANSPORT instead.

🚀 Features & Improvements:

  • core: display dns cache hitting info in verbose log level.
  • transports: abstract transport layer, and add websocket.
  • presets: refactor exp-compress, expose "threshold" and "options" parameters.
  • test: refactor preset runner, run preset through Middleware directly.

🐛 Fixes:

  • presets: fix an "out-of-range" bug in v2ray-vmess.
  • presets: fix access to static members.

2.6.1 (2017-09-15)

🚀 Features & Improvements:

  • benchmark: print blinksocks version before running tests.
  • benchmark: add v2ray-vmess benchmark.
  • utils: add clear() method to AdvancedBuffer.
  • utils: split common module into separated modules.
  • presets: add v2ray vmess support.
  • presets: info now removed from ss-aead-cipher, always use "ss-subkey".
  • presets: info now has a default value bs-subkey for aead-random-cipher.
  • presets: add static onInit(), next() method to IPreset and remove PRESET_INIT action.
  • presets: improve performance and reduce memory usage.
  • tests: add e2e tests for presets.

🐛 Fixes:

  • core: fix a typo in action-handler.js.

2.6.0 (2017-09-06)

💥 Breaking Changes:

  • bin: remove .js configuration file support, now you can only use .json file.
  • core: remove behaviours because it's not as convenient as I thought.
  • package: now lib/ is back.

🚀 Features & Improvements:

  • benchmark: add tests for obfs-random-padding.
  • bin: try to load config file from the first argument.
  • core: refactor relay and change MAX_BUFFERED_SIZE to 512KB.
  • core: refactor pipe.js.
  • core: refactor middleware.js.
  • presets: add a new class IPresetStatic which extends from IPreset.
  • presets: add static checkParams() to IPreset and move all parameters check logic to it.
  • presets: add onDestroy() lifecycle hook to IPreset.
  • presets: add fail() and broadcast() convenience methods to IPreset.
  • presets: add access-control.
  • presets: add exp-compress.
  • presets: add obfs-random-padding.
  • presets: allow to set relative path to save_to of stats preset.

🐛 Fixes:

  • benchmark: ranking by SUM of receiver transfer.
  • benchmark: remove log_path in generated jsons.
  • core: prevent calling close() on null in hub.
  • core: prevent onNotified() emitter itself.
  • presets: fix several indicators of stats preset.
  • utils: fix getRandomInt() and isValidPort().

v2.5.4 (2017-08-22)

Features:

  • add TLS/SSL transport for blinksocks over TLS #92
  • split tunnel mode from proxy.js to tunnel.js #91

v2.5.3 (2017-08-16)

Features:

  • add "-m, --minimal" to generate configs with minimal options #90
  • add "-l, --list-presets" option to show all built-in presets #89
  • built-in cluster mode #88
  • improve json generation for windows #86

v2.5.2 (2017-08-13)

Features:

  • add an initial broadcast to all presets when pipeline created #85
  • add a benchmark utility iperf #84
  • improve "proxy" preset to support tunnel mode for testing #83
  • refactor tasteless profile, using stats.js preset to achieve #81
  • deprecated cli-server.js and cli-client.js #80
  • generate port and timeout randomly in cli-init.js #79

v2.5.1 (2017-08-09)

v2.5.0 (2017-08-09)

Features:

  • pack src into a single file using webpack #78

v2.4.9 (2017-08-04)

Features:

  • add "dns_expire" option to configuration #77
  • add proxy preset #76
  • add noop preset for special use #75
  • display error buffer in hex for obfs-tls1.2-ticket #73
  • display preset name in error log #72

Fixes:

  • Destination port is wrong when relay ipv6 address #68

v2.4.8 (2017-06-18)

Features:

  • Allow to provide a list of sni to obfs-tls1.2-ticket #67
  • Allow to custom DNS servers #66
  • Add an enhanced AEAD preset without redundant logic #63

Fixes:

  • HTTP proxy doesn't work on Windows #59

v2.4.7 (2017-06-10)

Features:

  • Instantiating winston logger to improve integration #65

v2.4.6 (2017-06-09)

Fixes:

  • TypeError: Cannot read property 'bufferSize' of null #64

v2.4.5 (2017-06-08)

Features:

  • Use socket.setTimeout to detect connection timeout #61
  • Throttle uploads to reduce memory grow heavily when upload/download large files #60

v2.4.4 (2017-06-03)

v2.4.3 (2017-06-02)

Fixes:

  • ENOENT: no such file or directory, mkdir '~/.blinksocks/logs' #58

Features:

  • Log request address when applications connected to the client #57

v2.4.2 (2017-05-29)

Fixes:

  • Write logs to home directory #55

v2.4.1 (2017-05-24)

v2.4.0 (2017-05-02)

v2.4.0-beta.4 (2017-04-23)

Features:

  • Presets: add TLS obfuscator #52

Fixes:

  • connection terminated while downloading a large file #51

v2.4.0-beta.3 (2017-04-17)

Fixes:

  • "ss-aead-cipher" does not work at server side when use shadowsocks client #50

Features:

  • Multiple servers use different configurations #48

v2.4.0-beta.2 (2017-04-16)

Features:

  • Verify DST.ADDR of "presets/ss-base" #47

v2.4.0-beta.1 (2017-04-13)

Features:

  • Support configuration file with ".js" format #49
  • Lack of timeout mechanism #45
  • Robust design for middlewares #40
  • Add suitable presets to be compatible with shadowsocks protocols #27

v2.3.0 (2017-04-09)

Features:

  • Consider redirecting TCP stream to other host/port rather than close connections #39
  • Hot reload config.json #37
  • Share the same config.json between clients and servers #35

v2.3.0-beta.3 (2017-03-28)

Features:

  • Disable a server by prefixing a '-' #38

v2.3.0-beta.2 (2017-03-24)

v2.3.0-beta.1 (2017-03-23)

Features:

  • Print connection track line once a socket was closed #33
  • Refactor docker deploy scripts #32

Fixes:

  • "blinksocks init" generates wrong configurations #31
  • Fix typo of git commit hook in package.json #29

v2.2.2 (2017-03-18)

v2.2.1 (2017-03-15)

Features:

  • Proposal: add performance test utilities #23
  • Proposal: add "init" sub command to auto-generate configuration pair #17

v2.2.0-beta.5 (2017-03-10)

Features:

  • Proposal: multi-server mode #24
  • Refactor address.js then deprecate lodash dependencies #20
  • Proposal: implement new protocol preset aead v2 #19
  • Enhancement: error handling #18

v2.2.0-beta.4 (2017-03-05)

Features:

  • Proposal: refactor crypto stuff in utils/crypto.js #16

v2.2.0-beta.3 (2017-03-02)