A SIP003 plugin for traffic obfuscating: simple-obfs.For now, there is no plan to support UDP traffic forwarding. If you really need this feature, implement a plugin-over-plugin transport as a SIP003 plugin. Only one plugin can be enabled when a shadowsocks service is started. There is no GPL restrictions for any plugin providers. Licenses of pluginsĪs all plugin services should run in a separate process, they can pick any license they like. 2) Implement a adapter of PT as SIP003 plugin. 1) We can fork these plugins and modify them to support SIP003, e.g. Compatibility with PTįor all the plugins from Tor projects, there are two possible ways to support them. An example is 'obfs=http obfs-host=where semicolons, equal signs and backslashes MUST be escaped with a backslash. If a plugin requires additional arguments, like path to a config file, these arguments can be passed as extra options in a formatted string. One OPTIONAL environment variable is SS_PLUGIN_OPTIONS. SS_LOCAL_HOST and SS_LOCAL_PORT are the hostname and port of the local shadowsocks or plugin service.ī. SS_REMOTE_HOST and SS_REMOTE_PORT are the hostname and port of the remote plugin service. Four MUST-HAVE environment variables are SS_REMOTE_HOST, SS_REMOTE_PORT, SS_LOCAL_HOST and SS_LOCAL_PORT. Passing arguments to a pluginĪ plugin accepts arguments through environment variables.Ī. When a shadowsocks client/server is stopped by user, the child process of plugin will also be terminated. Then, the parent process of shadowsocks stops as well (SIGCHLD). If any error happens, the child process of plugin should exit with a error code. Very similar to PT, the plugin client/server is started as child process of shadowsocks client/server. + - + + - + | SS Client + - Local Loopback - + Plugin Client (Tunnel) + - + + - + + - + | | Public Internet (Obfuscated/Transformed traffic) => | | + - + + - + | | SS Server + - Local Loopback - + Plugin Server (Tunnel) + - + + - + + - + Life cycle of a plugin This design aims to avoid per-connection arguments in PT, leading to much easier implementation. Dislike the SOCKS5 proxy design in PT, every SIP003 plugin works as a tunnel (or called local port forwarding). The plugin of shadowsocks is very similar to the Pluggable Transport plugins from Tor project. SIP003: A simplified plugin design for shadowsocks Architecture Overview
0 Comments
Leave a Reply. |