dnomd343
3 years ago
1 changed files with 74 additions and 0 deletions
@ -0,0 +1,74 @@ |
|||
## Shadowsocks Bootstrap |
|||
|
|||
> A simple program to make the original shadowsocks support SIP003 plugins. |
|||
|
|||
### Quick Start |
|||
|
|||
As we all know, the [original shadowsocks](https://github.com/shadowsocks/shadowsocks) is written in python, this version does not support [SIP003](https://shadowsocks.org/en/wiki/Plugin.html) plugin, and [shadowsocks-libev](https://github.com/shadowsocks/shadowsocks-libev) or [shadowsocks-rust](https://github.com/shadowsocks/shadowsocks-rust) which support plugin lack some encryption methods (although they are insecure), so making the original shadowsocks support SIP003 plugin will be able to get better compatibility. |
|||
|
|||
The SIP003 plugin runs as a subroutine. In shadowsocks-bootstrap, both the shadowsocks program and the plugin will be executed as subroutines to assign ports and manage them. |
|||
|
|||
You can use shadowsocks-bootstrap just like shadowsocks, the only difference is the extra `--plugin` and `--plugin-opts` options. In addition, it will use `sslocal` or `ssserver` as shadowsocks program by default, if necessary you should specify a custom filename with `--shadowsocks` option. |
|||
|
|||
``` |
|||
A simple program to make the original shadowsocks support SIP003 plugins. |
|||
|
|||
-s <server_host> Host name or IP address of your remote server. |
|||
-p <server_port> Port number of your remote server. |
|||
-b <local_address> Local address to bind. |
|||
-l <local_port> Port number of your local server. |
|||
-c <config_file> Path to JSON config file. |
|||
-k <password> Password of your remote server. |
|||
-m <method> Encrypt method. |
|||
-t <timeout> Socket timeout in seconds. |
|||
--fast-open Enable TCP fast open (with Linux kernel 3.7+). |
|||
--plugin <name> Enable SIP003 plugin. |
|||
--plugin-opts <options> Set SIP003 plugin options. |
|||
--shadowsocks <shadowsocks> Set shadowsocks local or server program. |
|||
-h, --help Print this message. |
|||
``` |
|||
|
|||
You can also run via a JSON config file: |
|||
|
|||
``` |
|||
{ |
|||
"server": "...", |
|||
"server_port": 8388, |
|||
"local_address": "127.0.0.1", |
|||
"local_port": 1080, |
|||
"password": "...", |
|||
"timeout": 300, |
|||
"method": "aes-256-cfb", |
|||
"fast_open": false, |
|||
"plugin": "...", |
|||
"plugin_opts": "...", |
|||
"shadowsocks": "...", |
|||
"extra_opts": "..." |
|||
} |
|||
``` |
|||
|
|||
Example: |
|||
|
|||
```bash |
|||
shell> ss-bootstrap-server -s 0.0.0.0 -p 12345 -k dnomd343 -m aes-256-ctr --shadowsocks ss-python-server --plugin obfs-server --plugin-opts "obfs=http" |
|||
shell> ss-bootstrap-local -s 127.0.0.1 -p 12345 -b 0.0.0.0 -l 1080 -k dnomd343 -m aes-256-ctr --shadowsocks ss-python-local --plugin obfs-local --plugin-opts "obfs=http;obfs-host=www.bing.com" |
|||
``` |
|||
|
|||
### Compile |
|||
|
|||
You need to install `gcc` , `make` and `cmake` at first, and also need the `glib2.0` development environment. |
|||
|
|||
Example on Alpine: |
|||
|
|||
```bash |
|||
apk add build-base make cmake git glib-dev |
|||
git clone https://github.com/dnomd343/shadowsocks-bootstrap.git |
|||
cd shadowsocks-bootstrap/ |
|||
mkdir build && cd build/ |
|||
cmake .. && make |
|||
mv ../bin/* /usr/bin/ |
|||
``` |
|||
|
|||
### License |
|||
|
|||
MIT ©2022 [@dnomd343](https://github.com/dnomd343) |
Loading…
Reference in new issue