Blinksocks Versions Save

A framework for building composable proxy protocol stack.

v3.2.1

6 years ago

3.2.1 (2018-05-12)

:rocket: Features & Improvements

  • benchmark: add test for chacha20-ietf.
  • hub: set a timer to prune udp relays.
  • src: move constants from presets/actions.js to src/constants.js.
  • src: remove preset.js, implement _write() in IPreset.
  • test: add udp test for obfs-tls1.2-ticket.

:bug: Bug Fixes:

  • core: add speed-tester.js, fix speed measurement.

Migrating from 3.2.0 to 3.2.1

$ npm install -g [email protected]

v3.2.0

6 years ago

3.2.0 (2018-04-28)

Node.js 10 is supported in this version!

:exclamation: Notable Changes

  • src: support socks4(a), socks5, http basic authorization(username/password).
  • presets: add IPresetAddressing::onInitTargetAddress() and IPresetAddressing::resolveTargetAddress().
  • presets: add chacha20-ietf method for ss-stream-cipher, but require Node.js 10.x.
  • presets: deprecated IPreset::onNotified().
  • presets: deprecated auto-conf preset.

:rocket: Features & Improvements

  • core: add Pipe::initTargetAddress().
  • utils: add uint64ToBuffer(), incrementLE() and incrementBE().
  • package: upgrade ws from v3.3.3 to v5.1.1.
  • package: use WHATWG URL API instead of legacy qs api.
  • package: add package-lock.json.
  • package: remove unused dependencies.
  • ci: add test on the latest stable Node.js.

:bug: Bug Fixes:

  • hub: fix sequence between calling relay::on() and relay.init().
  • hub: patch server.getConnections() for ws.

Migrating from 3.1.1 to 3.2.0

$ npm install -g [email protected]

v3.1.1

6 years ago

3.1.1 (2018-04-10)

:rocket: Features & Improvements

  • api: remove Hub::getPerformance().
  • api: add Hub::getUploadSpeed(), Hub::getDownloadSpeed() and Hub::getConnStatuses().
  • benchmark: enlarge wait time before kill iperf server.
  • package: upgrade winston logger to v3.
  • package: remove husky and precommit hook, it's annoying.
  • test: add udp tests for multiplexing.
  • docs: add usage for systemd.

:bug: Bug Fixes:

  • src: fix crash when onConnected() triggered after ss-base is destroyed.

Migrating from 3.1.0 to 3.1.1

$ npm install -g [email protected]

v3.1.0

6 years ago

3.1.0 (2018-03-11)

The minimal version of Node.js required is 8.x now, please upgrade your Node.js if necessary.

:rocket: Features & Improvements

  • lib: compiled to Node.js 8.
  • core: start udp server only when use socks protocol on client.
  • core: add performance.js to collect upload/download speed.
  • core: add Hub::getConnections(), Hub::getTotalRead(), Hub::getTotalWritten() and Hub::getPerformance().
  • test: add tests for udp relay.
  • test: add tests for multiplexing over ws and tls.

:bug: Bug Fixes:

  • src: reduce error rate when enable multiplexing on server.
  • core: include target address in tracker's log when enable multiplexing.
  • core: avoid putting duplicate target address in tracker's log.

Migrating from 3.0.0 to 3.1.0

$ npm install -g [email protected]

v3.0.0

6 years ago

3.0.0 (2018-02-27)

:boom: Breaking Changes:

  • bin/init: remove "workers".
  • bin/init: replace "servers: []" to "server: {}".
  • core: remove balancer.
  • presets: remove stats preset.
  • presets: remove tracker preset, re-implement in core.
  • presets: remove access-control preset, re-implement in core.

:rocket: Features & Improvements

  • bin/init: add "acl" and "acl_conf" on server side.
  • src: refactor src/dns-cache.js and move it to utils/.
  • src: move config items from global to local.
  • core: expose Config::getLogFilePath().
  • benchmark: use json output of iperf.
  • presets/mux: discretize cid and other improvements.
  • ci: add scripts to do nightly release automatically.
  • test: add e2e tests.

:bug: Bug Fixes:

  • src: fix "send() is not a function" when using mux though http proxy.
  • core: fix "cannot read property 'remoteInfo' of null" of mux-relay.js.
  • core: fix sub connection id collision.
  • core: handle listen "error" event.

Committers: 2

Migrating from 2.9.0 to 3.0.0

$ npm install -g [email protected]

After v3, blinksocks no longer support multiple servers and cluster mode, so you should make some changes in your client config.json after upgrade:

--- a/blinksocks.client.old.json
+++ b/blinksocks.client.new.json
 {
   "service": "socks5://127.0.0.1:1081?forward=127.0.0.1:1083",
-  "servers": [{
-    "enabled": true,
+  "server": {
     "service": "tcp://localhost:1082",
     "key": "AuM3R$]Pnj^Cqg^9",
     "presets": [
@@ -18,11 +17,10 @@
     "mux": false,
     "mux_concurrency": 10,
     "tls_cert": "cert.pem"
-  }],
+  },
   "dns": [],
   "dns_expire": 3600,
   "timeout": 300,
-  "workers": 0,
   "log_path": "bs-client.log",
   "log_level": "debug",
   "log_max_days": 1

access-control preset was removed in v3 as well, if you want to enable ACL on server side, please add acl and acl_conf to server.json:

--- a/blinksocks.server.old.json
+++ b/blinksocks.server.new.json
@@ -14,12 +14,13 @@
   ],
   "tls_key": "key.pem",
   "tls_cert": "cert.pem",
+  "acl": true,
+  "acl_conf": "acl.txt",
   "mux": false,
   "dns": [],
   "dns_expire": 3600,
   "timeout": 300,
   "redirect": "",
-  "workers": 0,
   "log_path": "bs-server.log",
   "log_level": "debug",
   "log_max_days": 1

v2.9.0

6 years ago

2.9.0 (2018-02-03)

TCP/TLS/WS multiplexing is introduced in this version. :sparkles:

:boom: Breaking Changes:

  • presets: remove base-auth-stream and base-with-padding.
  • config: remove "dstaddr", use uri querystring "?forward" instead.

:rocket: Features & Improvements

  • core: add mux-relay.
  • benchmark: archive reports of 2017.
  • package: upgrade pkg to v4.3.0.
  • package: compile before running benchmark.
  • presets: add mux preset.
  • transports: refactor and optimize websocket transport.
  • transports: add this.ctx.
  • transports: add mux transport.
  • utils: add a faster version of crypto.randomBytes().

:bug: Bug Fixes:

  • proxies: fix crash when client reset the socks connection later.
  • utils: fix getRandomInt().
  • utils: remove generateMutexId().

Upgrade from 2.8.5 to 2.9.0

$ npm install -g [email protected]

v2.8.5

6 years ago

2.8.5 (2017-12-13)

:rocket: 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: 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 [email protected]

v2.8.4

6 years ago

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
]

:rocket: Features & Improvements

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

:bug: 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 [email protected]

v2.8.3

6 years ago

2.8.3 (2017-11-07)

:bug: Bug Fixes:

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

Upgrade from 2.8.2 to 2.8.3

$ npm install -g [email protected]

v2.8.2

6 years ago

2.8.2 (2017-11-07)

:rocket: Features & Improvements

  • presets: add ssr-auth-aes128-md5, ssr-auth-aes128-sha1. :sparkles:
  • presets: add ssr-auth-chain-a, ssr-auth-chain-b. :sparkles:
  • 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: Bug Fixes:

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

Upgrade from 2.8.1 to 2.8.2

$ npm install -g [email protected]