Pages

Monday, 21 September 2015

ShadowsocksR CSharp


最新版下载链接:https://github.com/breakwa11/shadowsocks-csharp/releases
发布链接:https://github.com/breakwa11/shadowsocks-rss
服务端配置教程:Wiki (含单用户和多用户)

版本特点

  1. 全能代理,同一端口支持socks4/socks4a/socks5/http(通过privoxy)
  2. 节点统计,包括延迟、连接数、当前下载速度、最高速度、出错率等等
  3. 连接管理,随时断开指定节点的连接,或修改节点后自动断开
  4. 协议转换,把UDP包封装于TCP里发送,或把TCP包封装于UDP里发送
  5. 多重代理,通过设置前置socks5代理,达到任意重代理
  6. 实验功能,包括新TCP连接协议

版本说明

从3.4.1版本起有一个新的实验性TCP连接下的握手协议,在原来的握手协议外套一层验证和混淆的头部(以下为加密前的报文):
标志版本号(1byte)|首包总长度(2byte)|随机填充长度(1byte)|随机填充数据|原ss首数据包|CRC32(4byte)
其中,标志版本号=0x88,首包总长度是包含版本号和CRC32的长度,随机填充长度值范围为1~255,随机填充数据的长度为随机填充长度值减1,验证CRC32时,计算整个头部的CRC32看是否等于0xFFFFFFFF即可。注意服务端还应处理可能的粘包。客户端可以实现为把原来的首握手包连同第一个数据包一起作为首数据包(不一定必须有第一个数据包,如ssh),或把首包的中间任意地方拆开,剩余部分放在CRC32之后亦可。
目前,ShadowsocksR服务端默认使用错误包重定向,能抵抗一般的主动探测。而在服务端的tcprelay.py源代码35行的地方,有一个FORCE_NEW_PROTOCOL的开关,如果是个人用户,建议打开,然后客户端相应节点也打开相应的开关,以更好地抵抗GFW的主动探测和包长度分析。而多用户端站长,如果希望使用此协议,可以对用户引导,待大家都使用此功能再启用开关。
你要是有兴趣和我联系的话,特别是编程技术上的支持,那就发邮件到mmgac001[at]gmail[dot]com,或者到
Twitter: @breakwa11
Google Group: ShadowsocksR
社区: ShadowsocksR
聊天室: https://gitter.im/breakwa11/shadowsocksr

配置术语说明:

  1. TCP over UDP
    打钩则把TCP包以UDP隧道发送,协议还在完善中,需要和相应的服务端配合使用。目前协议的设计是优化下载和看视频(打开网页不见得比原来的TCP好),但如果在封锁UDP严重的地区,效果会比直接使用TCP更差。建议不要过度使用以免IP被盯上。如果服务器不支持,打钩此选项会导致网页无法打开。
  2. UDP over TCP
    不打钩即以UDP方式发送UDP包,打钩则把UDP包在TCP里发送。以TCP方式发送UDP包在封锁UDP的网络环境下特别有用,如无此需求就不必打钩。
    如果在发送UDP数据失败,可能是服务器不支持。此选项不会影响浏览网页(TCP)
  3. 校验头部(新TCP协议)
    TCP连接采用新的握手协议,同时具有抗暴力探测(带校验),强制随机化包长度(抗包长度分析),目前此协议在测试阶段,具体协议内容可参阅源代码,或前文说明。同样需要服务端支持,否则会连接失败,影响浏览网页,和UDP over TCP。
  4. 重连次数
    目标服务器连接失败时选择其它服务器再次尝试连接,仅当没有发送接收任何数据时进行(即出现密码错误或加密方式错误时不能重连,因为已有数据发送)
  5. 超时秒数(TTL)
    TTL为Time to Live的缩写,表示连接超过多久没有再发送或接收数据时断开(服务端默认值为300),时间单位是秒,较小的值可减少浏览器出现卡顿时的时间,但同时在网络连接不佳时可能会导致部分页面元素或整个页面随机性下载失败。一般网页浏览建议设置为30~120,下载或看视频时建议直接设置为0。设置为0表示不使用TTL设置(实际TTL值由服务端及客户端较小的一方控制)。

快捷操作提示:

  1. 双击任务栏图标弹出服务器配置窗口,而右键图标弹出菜单
  2. 中键点击任务栏图标弹出服务器连接统计窗口
  3. 连接统计窗口点击服务器会切换当前服务器
  4. 连接统计窗口双击服务器会打开服务器配置窗口
  5. 点击连接统计窗口列标题可排序(部分列不允许排序)
  6. 连接统计窗口,在连接状态的错误记录列,双击则重置错误数,双击百分比列则重置本服务器的所有信息
  7. 连接统计窗口,在连接状态的“开”一列,鼠标点击切换开关状态(随机时有效),红色为关闭
  8. 连接统计窗口,右键弹出清空所有的菜单
  9. 连接统计窗口,双击连接数,断开该节点现有的连接(不一定立即清零,双击过就行了)

其它提示:

  • 随机选择服务器功能,适用于网页浏览,不适用于看视频或下载等需要大流量的环境。如需下载请在连接统计窗口通过下载测速测试速度最快的服务器然后单独连接之。
  • 连接统计窗口“连错”是指最近连接连续出错次数,包含发送了数据但无返回数据,或连接超时,或连接失败,或连接被重置等,可能为ss密码错误,也可能是实际访问的结果,有返回数据包时即会归0。启用了“自动禁用出错服务器”时,连错50次会自动临时禁用本节点,若服务器连接失败则3次便禁用,可在统计窗口里重新开启。但作为二级代理时不管连错多少均不会自动禁用。
  • ChnIPList 使用这个PAC,让国内的站直连,国外的走代理,如果DNS被污染为国内地址段时则会有问题,但大部分都能正常工作。此PAC对firefox可能不太友好。

更新记录:

版本3.4.4 2015-09-19
1.设置界面拆分,区分编辑服务器和全局设置
2.TCP连接协议改用下拉列表选择,字段名调整,相应节点要重新配置
3.切换节点开关状态后立即保存设置
4.调整随机数发生器,避免产生相同IV
版本3.4.3 2015-09-16
1.服务器统计列的下载或上传刷新状态修正
2.保存节点禁用状态
3.增加按时间段切换服务器规则(每10分钟切换,或遇到连续出错时切换)
版本3.4.2 2015-09-09
1.节点修改或删除后无引用的连接自动断开
2.隐藏混淆UDP协议选项
3.更新记录加入具体日期
4.首包发送方式调整
版本3.4.1 2015-08-28
1.增加新TCP连接协议
版本3.4.0 2015-08-24
1.使用新的GFWList地址
2.增加一个实验性功能TCP over UDP(目前有BUG,轻度使用还可,需要使用相应的服务端)
版本3.3.6 2015-08-19
1.修正“自动禁用出错服务器”选项保存的问题
2.所有临时文件全部放到./temp/下
3.连接方式不同也视为不同服务器分别统计
4.删除升级提示检查
5.删除实验性功能代码并开源https://github.com/breakwa11/shadowsocks-csharp
版本3.3.5 2015-08-17
1.合并部分主干代码,改用privoxy替代polipo(主程序增大140Kb)
2.增加“低错误优先”的随机方式
3.细调“低延迟优先”的算法
4.增加“自动禁用出错服务器”选项
5.连接超过超时秒数后断开算作“超时”
版本3.3.4 2015-08-13
1.修正打开统计列表后,程序退出不正常的错误
2.修正UDP over UDP的连接错误
3.修正二重代理时UDP连接错误
版本3.3.2 2015-08-12
1.合并部分主干代码
2.断开当前所有连接功能
3.优化统计窗口资源占用
版本3.3.1 2015-08-06
1.修正连接数统计和管理错误
2.修正多重代理时UDP代理错误
3.重新实现UDP over TCP(与之前版本不兼容,以前的实现不正确,服务端需更新)
版本3.2.2 2015-07-31
1.修正UDP下chacha20加密错误以及内存泄露
2.提升UDP下加解密速度
3.优化统计计算速度
4.随机选择服务器改名负载均衡
5.统计列表简化显示效果,减少卡顿
6.自动更新方式调整
版本3.2.0 2015-07-26
1.修正部分TCP连接失败的问题
2.增加Socks5代理设置
版本3.1.4 2015-07-23
1.调整TCP发包方式,把首协议包与第一个数据包连接发送
2.移除混淆TCP选项
3.服务端统计三列错误统计列改用“连错”列代替
4.不要把版本号看成圆周率(明明差一个小数点)
版本3.1.3 2015-07-16
1.本地连接的TTL支持,默认TTL=0(0表示不启用)
2.重连次数的保存修正
版本3.1.2 2015-07-14
1.连接统计窗口排序修正
2.重连次数配置(默认值3)
3.UDP over UDP选项更换为UDP over TCP,即高级选项全不打钩为通用设置,通用于所有服务端
4.log文件和polipo放于temp子目录
5.统计窗口数值格式化调整
6.解决config问题,移除config文件
7.允许密码显示
版本3.1.1 2015-07-13
1.合并主干部分代码
2.增加混淆UDP选项
3.支持接收混淆UDP包
4.连接数统计修正
5.鼠标中键点击任务栏图标弹出服务器连接统计窗口
6.修正配置界面部分环境下按钮不显示
7.附加config文件避免部分系统运行异常
8.改用7zip压缩,减少一半体积
版本3.0.1 2015-07-09
1.配置保存bug修正
2.右键菜单整理
3.配置界面调整
4.修正UDP握手协议实现与ProxyCap兼容
5.加入源md格式说明文档
版本3.0 2015-07-05
1.软件更名
2.修正 UDP over UDP 的加解密错误
版本2.3.2 2015-06-29
1.修正ipv4连接的问题
其它:目前已知使用pc版微信发图发文件会导致polipo崩溃,建议改用Provixy,具体使用方法可以参考网上教程
版本2.3.1.9 2015-06-28
1.修正http连接会出现连接失败的问题(同时修正了自动更新和pac更新)
2.增加连接管理,双击连接数即可断开该节点现有连接
3.增强UDP连接兼容性
4.更新地址可以配置窗口点击
版本2.3.1.8 2015-06-26
1.支持TCP协议头混淆(需服务端更新支持)
2.UDP包混淆(需服务端更新支持)
3.支持UDP包通过 UDP Relay 转发(需服务端更新支持)
4.支持Socks4/Socks4a协议
5.局域网共享时支持同时监听IPv4/IPv6
6.配置添加UDP包通过方式
7.配置添加TCP协议头混淆
版本2.3.1.7 2015-06-19
1.IPv6连接修正
2.随机时“按次序”方式的bug修正
3.IPv6地址显示方式调整
4.空连统计包含连接重置等错误
5.服务器连接统计列排序功能
6.取消自动关闭无效服务器,防误判
7.手工检查更新
版本2.3.1.6 2015-06-11
1.增加随机选择服务器的方式
2.连接数统计修正
3.支持代理UDP(以TCP转发),需要服务端更新
版本2.3.1.5 2015-06-04
1.调整配置窗口的设置体验
2.软件自动更新支持
版本2.3.1.4R2 2015-06-03
1.修正polipo某些情况下运行异常
2.修正连接统计窗口一些错误
3.修正部分dns错误未处理的问题
4.三次错误后自动关闭无效服务器
5.增加ChnIPList的pac,国内不代理,国外全走代理
6.调整连接统计窗口列顺序
7.节点自动重连尝试(开启随机选择服务器时,第一次重连相同节点,第二次、第三次选择其它节点)
8.从剪贴板复制多行文本地址功能修正
9.服务器配置显示二维码,增加列表高度
版本2.3.1.4 2015-06-01
1.polipo配置修正
2.使用当前目录运行polipo,完美支持多开(端口同时支持socks5和http协议)
3.增加当前下载速度统计,以及最大下载速度记录
4.连接统计窗口优化显示效率
5.服务器配置显示ss链接,以便快速复制
6.连接统计窗口支持手工调整列宽
版本2.3.1.3 2015-05-18
1.服务器的DNS缓冲(TTL=600),让直接填写域名与写IP一样稳定
2.服务器连接状态记录,含上传下载流量,连接延迟统计,连接错误统计
3.服务器独立开关,在连接状态的“开”一列,鼠标点击之,红色为关闭
4.连接记录清除,在连接状态的错误记录三列,双击则重置错误数,双击百分比列则重置本服务器的所有信息
5.统计列表标题显示监听方式及端口(方便多开的时候对应上)
6.从剪贴板复制地址,方便从ss://xxxx这种格式快速输入
版本2.3.1.2 2015-05-11
1.允许程序多开
2.延迟统计,自动在低延迟服务器之中选择(高延迟的也会有低概率选取到)
3.二维码菜单位置变动
4.偶然会程序崩溃的问题不确定解决了没有,如还有发生请联系作者
版本2.3.1.1 2015-05-03
1.随机选择服务器
from https://github.com/breakwa11/shadowsocks-rss
-----------

官方链接:https://github.com/breakwa11/shadowsocks-rss
服务端配置教程:Wiki (含单用户和多用户)
本版本作为此分支最后一个版本,本分支不再进行维护,也删除了升级提示。
说过的开源承诺一定会兑现,不过兑现得有点偏早了,本版本预期的目标只实现了小部分,之后的也不再去实现了。两个可公开的预期目标:1.实现让原版TCP协议过渡到更安全的协议;2.实现让原作者与本版本竞速发布,让使用者受惠。不过黑脸既然当不下去了,就不当了,爱咋整咋整。至于署名问题,你不怕脑残党来查水表但我怕,你以为这是常用网名么,就算倒台了还要考虑脑残粉随便人肉砍人什么的。
另外,如果你发现某个需求是很有必要的,但和作者说了这个需求但作者不做,和你说“NO”,怎么办?正如三个月前我就和作者说过UDP功能很有用,但作者就说PC上用UDP不如路由器上做。结果呢,那就自己做一个,把功能实现出来,把其它人的需求也引发出来,进而通过市场压力迫使作者把这个功能做出来就行了。但是你说你不会写代码,或者你写的实现不太好?没关系,我也是新手,我读的经济学,我不是程序猿,开始动手改代码前我的C#才学了一星期,连select模型是啥也不知道,就算现在也不知道epoll是什么玩意儿,写的代码只能让机器能跑。你要是觉得和我联系也没有问题的话,那就发邮件到mmgac001[at]gmail[dot]com
现在的功能看起来这么“完善”,估计还是会继续三个月以前的状况了,不过呢,反正用户不是我,我继续去搞外汇套利得了。

关于代理UDP(以TCP转发或UDP转发均可)

此版本支持配合使用SocksCap64/SocksCap/ProxyCap等工具把需要TCP和UDP代理的程序通过本版本程序转发。
即不需要折腾OpenWrt或路由器即可在PC上获得UDP转发的能力,配置容易了很多,是游戏玩家的福音
如果你是个人用户,可自行更新服务端或向你的ss站长提议更新后端。
如果你是站长,可从https://github.com/breakwa11/shadowsocks/tree/manyuser获取最新的多用户分支代码,与原版本兼容。
具体配置方法可参阅服务端配置教程
如有任何问题可发issue到github。

配置术语说明:

  1. UDP over TCP
    不打钩即以UDP方式发送UDP包,打钩则把UDP包在TCP里发送。以TCP方式发送UDP包在封锁UDP的网络环境下特别有用,如无此需求就不必打钩。
    如果在发送UDP数据失败,可能是服务器不支持。此选项不会影响浏览网页(TCP)
  2. 混淆UDP协议
    用于随机化包长度,但目前UDP未发现明显特征,如无必要可不打钩。
  3. 重连次数
    目标服务器连接失败时选择其它服务器再次尝试连接,仅当没有发送接收任何数据时进行(即出现密码错误或加密方式错误时不能重连,因为已有数据发送)
  4. 超时秒数(TTL)
    TTL为Time to Live的缩写,表示连接超过多久没有再发送或接收数据时断开(服务端默认值为300),时间单位是秒,较小的值可减少浏览器出现卡顿时的时间,但同时在网络连接不佳时可能会导致部分页面元素或整个页面随机性下载失败。一般网页浏览建议设置为30~120,下载或看视频时建议直接设置为0。设置为0表示不使用TTL设置(实际TTL值由服务端及客户端较小的一方控制)。

快捷操作提示:

  1. 双击任务栏图标弹出服务器配置窗口,而右键图标弹出菜单
  2. 中键点击任务栏图标弹出服务器连接统计窗口
  3. 连接统计窗口点击服务器会切换当前服务器
  4. 连接统计窗口双击服务器会打开服务器配置窗口
  5. 点击连接统计窗口列标题可排序(部分列不允许排序)
  6. 连接统计窗口,在连接状态的错误记录列,双击则重置错误数,双击百分比列则重置本服务器的所有信息
  7. 连接统计窗口,在连接状态的“开”一列,鼠标点击切换开关状态(随机时有效),红色为关闭
  8. 连接统计窗口,右键弹出清空所有的菜单
  9. 连接统计窗口,双击连接数,断开该节点现有的连接(不一定立即清零,双击过就行了)

其它提示:

  • 随机选择服务器功能,适用于网页浏览,不适用于看视频或下载等需要大流量的环境。如需下载请在连接统计窗口通过下载测速测试速度最快的服务器然后单独连接之。
  • 连接统计窗口“连错”是指最近连接连续出错次数,包含发送了数据但无返回数据,或连接超时,或连接失败,或连接被重置等,可能为ss密码错误,也可能是实际访问的结果,有返回数据包时即会归0。启用了“自动禁用出错服务器”时,连错50次会自动临时禁用本节点,若服务器连接失败则3次便禁用,可在统计窗口里重新开启。但作为二级代理时不管连错多少均不会自动禁用。
  • ChnIPList 使用这个PAC,让国内的站直连,国外的走代理,不过不一定准确,如果DNS被污染为国内地址段时则会有问题,但大部分都能正常工作。此PAC对firefox可能不太友好。

更新记录:

版本3.3.6
1.修正“自动禁用出错服务器”选项保存的问题
2.所有临时文件全部放到./temp/下
3.连接方式不同也视为不同服务器分别统计
4.删除升级提示检查
5.删除实验性功能代码并开源https://github.com/breakwa11/shadowsocks-csharp
版本3.3.5
1.合并部分主干代码,改用privoxy替代polipo(主程序增大140Kb)
2.增加“低错误优先”的随机方式
3.细调“低延迟优先”的算法
4.增加“自动禁用出错服务器”选项
5.连接超过超时秒数后断开算作“超时”
版本3.3.4
1.修正打开统计列表后,程序退出不正常的错误
2.修正UDP over UDP的连接错误
3.修正二重代理时UDP连接错误
版本3.3.2
1.合并部分主干代码
2.断开当前所有连接功能
3.优化统计窗口资源占用
版本3.3.1
1.修正连接数统计和管理错误
2.修正多重代理时UDP代理错误
3.重新实现UDP over TCP(与之前版本不兼容,以前的实现不正确,服务端需更新)
版本3.2.2
1.修正UDP下chacha20加密错误以及内存泄露
2.提升UDP下加解密速度
3.优化统计计算速度
4.随机选择服务器改名负载均衡
5.统计列表简化显示效果,减少卡顿
6.自动更新方式调整
版本3.2.0
1.修正部分TCP连接失败的问题
2.增加Socks5代理设置
版本3.1.4
1.调整TCP发包方式,把首协议包与第一个数据包连接发送
2.移除混淆TCP选项
3.服务端统计三列错误统计列改用“连错”列代替
4.不要把版本号看成圆周率(明明差一个小数点)
版本3.1.3
1.本地连接的TTL支持,默认TTL=0(0表示不启用)
2.重连次数的保存修正
版本3.1.2
1.连接统计窗口排序修正
2.重连次数配置(默认值3)
3.UDP over UDP选项更换为UDP over TCP,即高级选项全不打钩为通用设置,通用于所有服务端
4.log文件和polipo放于temp子目录
5.统计窗口数值格式化调整
6.解决config问题,移除config文件
7.允许密码显示
版本3.1.1
1.合并主干部分代码
2.增加混淆UDP选项
3.支持接收混淆UDP包
4.连接数统计修正
5.鼠标中键点击任务栏图标弹出服务器连接统计窗口
6.修正配置界面部分环境下按钮不显示
7.附加config文件避免部分系统运行异常
8.改用7zip压缩,减少一半体积
版本3.0.1
1.配置保存bug修正
2.右键菜单整理
3.配置界面调整
4.修正UDP握手协议实现与ProxyCap兼容
5.加入源md格式说明文档
版本3.0
1.软件更名
2.修正 UDP over UDP 的加解密错误
版本2.3.2
1.修正ipv4连接的问题
其它:目前已知使用pc版微信发图发文件会导致polipo崩溃,建议改用Provixy,具体使用方法可以参考网上教程
版本2.3.1.9
1.修正http连接会出现连接失败的问题(同时修正了自动更新和pac更新)
2.增加连接管理,双击连接数即可断开该节点现有连接
3.增强UDP连接兼容性
4.更新地址可以配置窗口点击 
版本2.3.1.8
1.支持TCP协议头混淆(需服务端更新支持)
2.UDP包混淆(需服务端更新支持)
3.支持UDP包通过 UDP Relay 转发(需服务端更新支持)
4.支持Socks4/Socks4a协议
5.局域网共享时支持同时监听IPv4/IPv6
6.配置添加UDP包通过方式
7.配置添加TCP协议头混淆
版本2.3.1.7
1.IPv6连接修正
2.随机时“按次序”方式的bug修正
3.IPv6地址显示方式调整
4.空连统计包含连接重置等错误
5.服务器连接统计列排序功能
6.取消自动关闭无效服务器,防误判
7.手工检查更新
版本2.3.1.6
1.增加随机选择服务器的方式
2.连接数统计修正
3.支持代理UDP(以TCP转发),需要服务端更新
版本2.3.1.5
1.调整配置窗口的设置体验
2.软件自动更新支持 
版本2.3.1.4R2
1.修正polipo某些情况下运行异常
2.修正连接统计窗口一些错误
3.修正部分dns错误未处理的问题
4.三次错误后自动关闭无效服务器
5.增加ChnIPList的pac,国内不代理,国外全走代理
6.调整连接统计窗口列顺序
7.节点自动重连尝试(开启随机选择服务器时,第一次重连相同节点,第二次、第三次选择其它节点)
8.从剪贴板复制多行文本地址功能修正
9.服务器配置显示二维码,增加列表高度
版本2.3.1.4
1.polipo配置修正
2.使用当前目录运行polipo,完美支持多开(端口同时支持socks5和http协议)
3.增加当前下载速度统计,以及最大下载速度记录
4.连接统计窗口优化显示效率
5.服务器配置显示ss链接,以便快速复制
6.连接统计窗口支持手工调整列宽 
版本2.3.1.3
1.服务器的DNS缓冲(TTL=600),让直接填写域名与写IP一样稳定
2.服务器连接状态记录,含上传下载流量,连接延迟统计,连接错误统计
3.服务器独立开关,在连接状态的“开”一列,鼠标点击之,红色为关闭
4.连接记录清除,在连接状态的错误记录三列,双击则重置错误数,双击百分比列则重置本服务器的所有信息
5.统计列表标题显示监听方式及端口(方便多开的时候对应上)
6.从剪贴板复制地址,方便从ss://xxxx这种格式快速输入 
版本2.3.1.2
1.允许程序多开
2.延迟统计,自动在低延迟服务器之中选择(高延迟的也会有低概率选取到)
3.二维码菜单位置变动
4.偶然会程序崩溃的问题不确定解决了没有,如还有发生请联系作者 
版本2.3.1.1
1.随机选择服务器

from https://github.com/breakwa11/shadowsocks-rss/blob/6623ad7806839562055bf7894320e8e628e88f94/readme.md
----------
从这个2.3.1.8版本开始支持代理UDP(以TCP转发或UDP转发均可),需要服务端更新。这个版本支持配合使用SocksCap64/SocksCap/ProxyCap等工具把需要TCP和UDP代理的程序通过本版本程序转发。即不需要折腾OpenWrt或路由器即可获得UDP转发的能力,配置容易了很多,是游戏玩家的福音。
版本3.6.3 2015-11-10
1.实现CONNECT方法的http代理,减少访问https站的连接数
2.实现基本的http代理支持,更少资源占用(但存在BUG,试用阶段)
3.内置http代理启用开关(开启后privoxy不会运行)
4.修改生成链接格式,与SSR android兼容
5.在服务器配置的“备注”前打钩则把备注加在链接(二维码)内
6.支持前置socks5代理地址填写域名
7.增加一个常见域名列表(即白名单),foxyproxy可使用此列表替代,
因foxyproxy使用绕过大陆IP列表访问facebook等站会很卡
其它说明:对于https站点,不管启不启用内置http代理,均无影响,
启用内置http代理会影响http站点,目前发现的问题是页面元素较多时有部分请求不正常,用chrome打开时有一定概率变成空白页。
2015-11-02 v3.6.2
1、插件分类,独立出TCP协议字段(旧配置部分节点需要修改配置)
2、稳定性增强
3、更详细的log输出
版本3.6.1 2015-10-27
1.多开时允许分别开机自动启动(更换前要把以前的自启动去掉)
2.检测协议错误
3.调整自动禁用节点的计算方式
4.修正自动重连时没有更换混淆插件
5.编辑节点后保持当前选择的节点
6.添加auth_simple混淆插件
7.DNS缓存修正
8.FIPS设置检查
 2015-10-15 3.5.8
1.增加插件参数字段
2.PAC兼容性调整
3.privoxy服务运行前先停止
4.缓冲区优化
2015-10-12 3.5.7
1.修正退出时有一定机率没退出完全的问题
2.解决两个verify插件在部分情况下会越界错误
3.添加绕过局域网的PAC,以替代全局模式
4.修正系统代理在部分环境下手动取消失败的问题
5.保证在使用PAC模式下即使强行结束客户端IE也能正常使用

2015-10-08 v3.5.6
1.新增选项设置
2015-09-27 v3.5.1
1.增加混淆协议插件tls_simple, random_head
2.http_simple混淆增加随机路径和随机useragent
3.更新配置不断开现有连接
4.不开启系统代理时,系统代理菜单不置灰(PAC有效)
本系列版正式更名为ShadowsocksR,R是revolution缩写。因更名,主版本号直接跳至3.0。
PS:使用本软件需要有一个可以翻墙的服务器,并搭建了shadowsocks服务端.
-------------

ShadowsocksR一键安装脚本


本脚本适用环境:
系统支持:CentOS,Debian,Ubuntu
内存要求:≥128M
日期:2016 年 01 月 06 日
关于本脚本:
一键安装 ShadowsocksR 服务端。
请下载与之配套的客户端程序来连接。
(以下客户端只有 Windows 客户端和 Python 版客户端可以使用 SSR 新特性,其他原版客户端只能以兼容的方式连接 SSR 服务器)
默认配置:
服务器端口:自己设定(如不设定,默认为 8989)
客户端端口:1080
密码:自己设定(如不设定,默认为teddysun.com)
客户端下载:
Windows / OS X
Linux
Android / iOS
OpenWRT
使用方法:
使用root用户登录,运行以下命令:
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR.sh
chmod +x shadowsocksR.sh
./shadowsocksR.sh 
安装完成后,脚本提示如下:
Congratulations, ShadowsocksR install completed!
Server IP:your_server_ip
Server Port:your_server_port
Password:your_password
Local IP:127.0.0.1
Local Port:1080
Protocol:origin
obfs:plain
Encryption Method:aes-256-cfb
Welcome to visit:https://shadowsocks.be/9.html
If you want to change protocol & obfs, reference URL:
https://github.com/breakwa11/shadowsocks-rss/wiki/Server-Setup
Enjoy it!
卸载方法:
使用 root 用户登录,运行以下命令:
./shadowsocksR.sh uninstall
安装完成后即已后台启动 ShadowsocksR ,运行:
/etc/init.d/shadowsocks status
可以查看 ShadowsocksR 进程是否已经启动。
本脚本安装完成后,已将 ShadowsocksR 自动加入开机自启动。
使用命令:
启动:/etc/init.d/shadowsocks start
停止:/etc/init.d/shadowsocks stop
重启:/etc/init.d/shadowsocks restart
状态:/etc/init.d/shadowsocks status
配置文件路径:/etc/shadowsocks.json
日志文件路径:/var/log/shadowsocks.log
如果你想修改配置文件,请参考:
https://github.com/breakwa11/shadowsocks-rss/wiki/Server-Setup
注意事项:
本脚本没有对防火墙(IPv4 是 iptables,IPv6 是 ip6tables)进行任何设置。
因此,在安装完毕,如果你发现连接不上,可以尝试更改防火墙设置或关闭防火墙。
参考链接:
https://github.com/breakwa11/shadowsocks-rss
---------------------------

关于ShadowsocksR和Shadowsocks的安全性

前一段时间关于Shadowsocks的事情闹得沸沸扬扬的,最近显然大批小白已经被吸引到所谓的「Shadowsocks增强版」(ShadowsocksR)那边去了。作为用C++/Qt实现Shadowsocks业余开发者,打算对这两个炸子鸡简单地发表一下自己的看法。

ShadowsocksR

我不知道背后的开发者是不是有后台、有团队的,但是我知道的是其作者确实曾经违反GPL协议对其二次开发的Shadowsocks C#客户端闭源。这里我们不谈什么别的因素,事实就是如此,GPL白纸黑字很清楚的,违反了就是违反了。但是作者随后开源了代码库,也算是一桩事件的尾声,也就没有必要再追究。
事情在clowwindy清空其shadowsocks的代码仓库之后有了些新的变化。以下仅罗列事实:
  1. ShadowsocksR作者曾表示要start from scratch写一个新的与shadowsocks无关的代理工具,并且不再更新ShadowsocksR
  2. 两三天后shadowsocks被勒令删除,原shadowsocks项目基本消失
  3. ShadowsocksR作者表示原shadowsocks协议有缺陷(在下一节会进行讨论),重回焦点
  4. ShadowsocksR作者建立了Google+ Group,更新了ShadowsocksR相关代码

Shadowsocks的安全性

好了,下面开始描述一下ShadowsocksR作者声称的Shadowsocks的协议缺陷在于IV的长度大部分情况下为16字节。后面这一半是正确的,不少加密算法使用的IV都是16字节长(特别是流行的AES和RC4-MD5),so what? 这并不会引入所谓的「缺陷」,理由如下:
  1. 每个TCP连接在握手阶段的IV是随机生成的,而不是根据密码计算得出,所以IV是无法预测的。
  2. 在没有密钥的情况下,即便截取到了这部分IV,也是无法解密密文的。而且每个新的TCP连接都会使用随机生成的IV,也就是截取到的不同TCP连接的数据之间基本没有什么共同点。而解密密文需要同时正确的IV和密码,而任何连接都没有关于密码的任何特征。
  3. 大部分IV长度为16字节,也就是256的16次方种可能的组合,在IV都一样的情况下暴力破解都已经不可能,更别说再加上第二点。
  4. 按照ShadowsocksR的做法,在首连接前加入所谓的混淆头也是没用的,自身的特征就明显,而且根本没有改变后来的IV还是固定长度的本质。因为第四个字节就告诉大家随机填充数据的长度了,进行所谓「探测」的时候只要跳过前面这一堆,一样能够去截取IV。而前几点已经说过了,你得到了这个随机IV也没用。而如果是用来探测的话,固定的第一位版本标识就是赤裸裸的特征送过去识别的。
  5. ShadowsocksR作者目前给出了一个主动探测的脚本,可以用来检测服务器是否在运行shadowsocks,根据目前网上的测试报告来看,成功率不算低(但也非100%)。而关于这一点,clowwindy已经在原版给出了auto ban的解决办法,自动把这些恶意IP屏蔽掉。刚刚我在libQtShadowsocks里加了个补丁还有这个补丁屏蔽掉这种办法的探测,办法是按照随机概率返回随机长度的随机字串。
但是,这不代表shadowsocks的协议是完美无缺的,只是ShadowsocksR的「解决办法」是歪的,因为它的关注点本身就是歪的。我个人的想法是用公钥、私钥提高安全性,虽然对小白是不太友好了,但是安全性会得到提升,同时特征会减少(不用在握手阶段发送IV),shadowsocks协议需要向CCA安全方向发展。
05-Sep-2015 更新
给libQtShadowsocks服务端打上了autoban补丁,一旦发现header错误(无法解析)便将产生错误的IV和IP加入失败的IV和IP列表,如果失败的IV列表中已经存在该IV,或失败的IP列表中已经存在该IP,则将发送连接请求的IP加入黑名单,黑名单中的IP均直接拒绝连接。关于反侦测的最新详情请查看该issue,本文不再针对反侦测的应对办法进行更新。
06-Sep-2015 更新
本文只是想告诉大家不用过分担心Shadowsocks的安全性,现在的协议还没有出现重大漏洞,主要port的服务端也在更新来修复潜在威胁。和ShadowsocksR的作者也有在良好地沟通了,在白名单到来之前能撑一会儿是一会儿吧。
24-Sep-2015 更新
本文一直提的Shadowsocks安全性更多是指服务器的安全,目前的协议存在让服务器被暴力侦测而暴露进而被防火墙屏蔽(虽然探测的成本很高)的风险。传输内容的安全性是不用担心的,全都是工业级高强度加密算法(除了RC4和TABLE),破解传输的内容是几乎不可能的。
18-Nov-2015 更新
Shadowsocks通过加入一次验证提高了对抗CCA的安全性,各大ports已经陆续完成了支持。这里需要重申的是Shadowsocks的目标不是100% bug-free或100% bullet-proof,而是保证连接轻量快速的同时让主流攻击手段的成本高到一般无法实施。
There’s no such thing as security. 没有一个叫安全的东西。 (安全是相对的,如要100%安全,请断开电源)

from https://www.librehat.com/about-shadowsocks-r-and-the-security-of-shadowsocks/