You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
3.0 KiB
75 lines
3.0 KiB
3 years ago
|
## 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)
|