它是 Shadowsocks 的强化版本(从原项目直接 Fork 出来),对原客户端及服务端进行系列改造以使其更具混淆性,提供更好的安全性与稳定性。
”工作原理“
在互联网中,有各种类型的报文,比如 HTTP、HTTPS、FTP、SSH、RDP 等等。
而 ShadowsocksR 做的事情是将数据隐藏在这些报文中:比如它发送一个 HTTP 报文,这个报文有正常的 IP 地址,有正常的TCP 端口号,有正常的 HTTP 的请求头,但是这个 HTTP 报文的 BODY 却是我们们要”偷渡“的数据。在防火墙看来,这就是一个普通的HTTP报文,它没有办法识别出这个报文到底是普通的 HTTP 报文,还是带有”偷渡“数据的 HTTP 报文。
关于项目
GitHub/WooSoftware/shadowsocksr-origin (forked from shadowsocks/shadowsocks)
这个应该是原始项目。
# 09/25/2019 / Star x 206 / Latest commit fd723a9 on Jul 27, 2017
GitHub/shadowsocksr-rm/shadowsocksr (forked from WooSoftware/shadowsocksr-origin)
该项目从上一个项目Fork而来。
# 09/25/2019 / Star x 349 / Latest commit fd723a9 on Jul 27, 2017
GitHub/shadowsocksrr/shadowsocksr (forked from shadowsocksr-rm/shadowsocksr)
该项目又是从上一个项目复制而来。我们是从 shadowsocks-all.sh 脚本找到了该项目。
09/25/2019 / Star x 2453 / Latest commit fd723a9 on Jul 27, 2017
服务搭建
所以我们目前使用的是 GitHub/shadowsocksr-rm/shadowsocksr 项目。详细服务的搭建可以参考 README.md 或 ShadowsocksR 服务端安装教程 文件。
单用户模式
#!/bin/sh # 检出项目 git clone -b manyuser https://github.com/shadowsocksr-backup/shadowsocksr.git # 初始化 cd ~/shadowsocksr sh initcfg.sh # 运行服务 cd ~/shadowsocksr/shadowsocks python server.py -p 443 -k password -m aes-256-cfb -O auth_sha1_v4 -o http_simple #说明:-p 端口 -k 密码 -m 加密方式 -O 协议插件 -o 混淆插件 # 用 -h 查看所有参数 # 如果向使用配置文件,而不是命令行指定参数的形式,可以修改上级目录user-config.json配置文件。 # 然后依旧实在子目录shadowsocks中直接运行python server.py启动服务,无需指定参数。
多用户模式
多用户教程JSON版:Server Setup(manyuser with mysql)
数据库多用户教程:Server Setup(manyuser with mudbjson)
客户端
ShadowsocksR/shadowsocks/local.py
这是 ShadowsocksR 自带的客户端。自然也是命令行工具,没有图形化界面的版本。
electron-ssr
– 跨平台:Windows/MacOS/Linux
老样子,各种Fork版本,仓库导出,到处都是,头大。
GitHub/erguotou520/bye
GitHub/Akkariiin/electron-ssr forked from erguotou520/bye / 09/25/2019 / Star x 28 / Latest commit c6edcf7 on Feb 11
GitHub/shadowsocksrr/electron-ssr forked from Akkariiin/electron-ssr / 09/25/2019 / Star x 379 / Latest commit 1fe5ed2 on May 23
GitHub/qingshuisiyuan/electron-ssr-backup / 09/25/2019 / Star x 1594 / Latest commit 3ad2dfb on Aug 12 (因为它不更新,这是备份出仓库)
我们目前使用的是 GitHub/shadowsocksrr/electron-ssr 的 0.2.7 版本
ShadowsocksR for Windows
GitHub/shadowsocksrr/shadowsocksr-csharp
这是用于Windows系统的客户端。
附加说明
它同时兼容SOCKS协议。因此Shadowsocks客户端,比如shadowsocks-qt5等等,也能够连接,但是使用的是SOCkS协议。在这种情况下,可能会被防火墙检测到,然后又把你的IP地址封禁。因此不建议使用SOCKS客户端连接ShadowsocksR服务。
参考文献
Wikipedia/Shadowsocks#ShadowsocksR
SSR一键安装脚本 (ShadowsocksR一键安装教程)
How To Use ShadowsocksR To Bypass The Chinese Firewall
ShadowsocksR 服务端安装教程