Presets are chaining and composable, built-in presets are listed here.
basic
shadowsocks
shadowsocksR
v2ray
obfuscator
others
You MUST provide one and only one preset signed with (*) to the presets list if you want to relay application data to dynamic destinations.
If you have installed blinksocks by npm install -g blinksocks, you are free to use external presets:
Use public npm package:
$ npm install -g blinksocks-preset-demo
"presets": [{"name": "blinksocks-preset-demo"}]
Use private package:
"presets": [{"name": "/path/to/your/preset.js"}]
When use external preset, make sure that preset meets the requirements of the current Node.js environment.
To customize your own preset, please refer to Custom Preset.
A preset based on "ss-base" and provides a HMAC to ensure integrity for addressing part.
PARAMS | DESCRIPTION | DEFAULT |
---|---|---|
method | a hash algorithm for creating HMAC | sha1 |
method
can be one of:
md5, sha1, sha256
"presets": [{
"name": "base-auth",
"params": {
"method": "sha1"
}
}, {
"name": "ss-stream-cipher",
"params": {
"method": "aes-256-cfb"
}
}]
This is a very basic preset which delivers the real destination address from client to server.
"presets": [
{"name": "ss-base"}
]
The shadowsocks's stream cipher.
PARAMS | DESCRIPTION | DEFAULT |
---|---|---|
method | encryption and decryption method | aes-256-ctr |
method
can be one of:
aes-128-ctr, aes-192-ctr, aes-256-ctr,
aes-128-cfb, aes-192-cfb, aes-256-cfb,
camellia-128-cfb, camellia-192-cfb, camellia-256-cfb
rc4-md5, rc4-md5-6, chacha20-ietf, none
"presets": [
{
"name": "ss-base"
},
{
"name": "ss-stream-cipher",
"params": {
"method": "aes-256-ctr"
}
}
]
NOTE: This preset should be combined with "ssr-auth-chain-*" presets when choose "none" method.
The shadowsocks's aead cipher.
PARAMS | DESCRIPTION | DEFAULT |
---|---|---|
method | encryption and decryption method | aes-256-gcm |
method
can be one of:
aes-128-gcm, aes-192-gcm, aes-256-gcm,
aes-128-ccm, aes-192-ccm, aes-256-ccm, (CCM mode require Node.js >= v10.2.0)
chacha20-poly1305, chacha20-ietf-poly1305, xchacha20-ietf-poly1305
"presets": [
{
"name": "ss-base"
},
{
"name": "ss-aead-cipher",
"params": {
"method": "aes-256-gcm"
}
}
]
shadowsocksr auth_aes128 implementation.
"presets": [
{"name": "ss-base"},
{"name": "ssr-auth-aes128-md5"},
{"name": "ss-stream-cipher", "params": {"method": "aes-256-ctr"}}
]
shadowsocksr auth_chain implementation.
"presets": [
{"name": "ss-base"},
{"name": "ssr-auth-chain-a"},
{"name": "ss-stream-cipher", "params": {"method": "none"}}
]
v2ray vmess protocol implementation.
PARAMS | DESCRIPTION | DEFAULT |
---|---|---|
id | client uuid | - |
security | encryption method, client only | aes-128-gcm |
method
can be one of:
aes-128-gcm, chacha20-poly1305, none
"presets": [
{
"name": "v2ray-vmess",
"params": {
"id": "c2485913-4e9e-41eb-8cc5-b2e7db8d3bc7",
"security": "aes-128-gcm"
}
}
]
A simple obfuscator to significantly randomize the length of each packet. It can be used to prevent statistical analysis based on packet length.
"presets": [
{
"name": "ss-base"
},
{
"name": "obfs-random-padding"
},
{
"name": "ss-stream-cipher",
"params": {
"method": "aes-256-ctr"
}
}
]
A http obfuscator, the first request will wrap a http header randomly selected from a text file.
PARAMS | DESCRIPTION | DEFAULT |
---|---|---|
file | a text file which contains HTTP header paris. | - |
file
for example:
======================
GET / HTTP/1.1
Host: bing.com
Accept: */*
----------------------
HTTP/1.1 200 OK
Content-Type: text/plain
======================
POST /login HTTP/1.1
Host: login.live.com
Content-type: application/json
----------------------
HTTP/1.1 200 OK
======================
"presets": [
{
"name": "ss-base"
},
{
"name": "obfs-http",
"params": {
"file": "path/to/fake.txt"
}
}
]
A TLS1.2 obfuscator, do TLS handshake using SessionTicket TLS mechanism, transfer data inside of Application Data.
PARAMS | DESCRIPTION | DEFAULT |
---|---|---|
sni | Server Name Indication, a server name or a list of server name | - |
"presets": [
{
"name": "ss-base"
},
{
"name": "obfs-tls1.2-ticket",
"params": {
"sni": ["cloudfront.net"]
}
}
]
This preset is based on ss-aead-cipher, but added random padding in the front of each chunk. This preset inherited all features from ss-aead-cipher and prevent server from being detected by packet length statistics analysis.
PARAMS | DESCRIPTION | DEFAULT |
---|---|---|
method | encryption and decryption method | - |
info(optional) | a string to generate subkey | "bs-subkey" |
factor(optional) | random padding length = (0-255) * factor | 2 |
"presets": [
{
"name": "base-with-padding",
"params": {
"salt": "any string"
}
},
{
"name": "aead-random-cipher",
"params": {
"method": "aes-256-gcm",
"info": "bs-subkey",
"factor": 2
}
}
]
Here is a list of recommended conbinations.