您现在的位置是: 首页 > 技术教程 > 新手教程 SIP003规范是什么

SIP003规范是什么

2020-02-17 新手教程 4722人已围观 9487次浏览

简介SIP003:shadowsocks的简化插件设计

SIP003规范,是为了shadowsocks的简化插件设计

架构概述

shadowsocks的插件与Tor项目中的Pluggable Transport插件非常相似。与PT中的SOCKS5代理设计不同,每个SIP003插件都充当隧道(或称为本地端口转发)。此设计旨在避免PT中的每个连接参数,从而使实现更加容易。


插件的生命周期

与PT非常相似,插件客户端/服务器是作为shadowsocks客户端/服务器的子进程启动的。

如果发生任何错误,则插件的子进程应退出并显示错误代码。然后,shadowsocks的父进程也停止(SIGCHLD)。

当Shadowsocks客户端/服务器被用户停止时,插件的子进程也将终止。

将参数传递给插件

A. 需要4个必须具备的环境变量,SS_REMOTE_HOST,SS_REMOTE_PORT,SS_LOCAL_HOST和SS_LOCAL_PORT。SS_REMOTE_HOST和SS_REMOTE_PORT是远程插件服务的主机名和端口。SS_LOCAL_HOST和SS_LOCAL_PORT是本地shadowsocks或插件服务的主机名和端口。

B. 一个可选的环境变量是SS_PLUGIN_OPTIONS。如果插件需要其他参数,例如配置文件的路径,则可以将这些参数作为附加选项传递给格式化字符串。一个示例是'obfs = http; obfs-host = www.baidu.com',其中分号,等号和反斜杠必须以反斜杠转义。

与PT的兼容性

对于Tor项目中的所有插件,有两种可能的方式来支持它们。1)我们可以派生这些插件并对其进行修改以支持SIP003,例如obfs4-tunnel。2)实现PT适配器作为SIP003插件。

插件许可

由于所有插件服务都应在单独的进程中运行,因此它们可以选择所需的任何许可证。任何插件提供商都没有GPL限制。

限制条件

A. 不支持通过插件进行插件。启动shadowsocks服务时,只能启用一个插件。如果您确实需要此功能,请通过SIP003插件实现插件之上的插件传输。

B. 仅转发TCP流量。目前,尚无计划支持UDP流量转发。


原文地址:https://github.com/shadowsocks/shadowsocks-org/wiki/Plugin

本文仅作为对原文的翻译后个人理解的记录,不代表原文的说明或任何官方翻译的说明。

很赞哦! (0)

站点信息

  • 网站地图