安装:
服务端安装
linux服务器服务端(在国外服务器上执行)
安装链接貌似已经失效了,最近使用的比较好用的是v2ray,一键脚本执行方法:wget --no-check-certificate https://freed.ga/github/shadowsocksR.sh; bash shadowsocksR.sh
bash <(curl -s -L https://git.io/v2ray.sh)
脚本下载下来看了一下,备注挺中二的…
执行完成后监听端口为执行过程中的默认端口
在客户端按脚本输出信息配置连接信息
客户端安装
客户端下载地址:
windows
android
mac
ios的到appstore找一个,目前貌似大部分要收费了~
原理:
转自: https://vc2tea.com/whats-shadowsocks/
- 很久前,访问google的方式
- 被墙
- 初代解决方法,利用海外服务器直接代理
1 首先用户和境外服务器基于ssh建立起一条加密的通道
2-3 用户通过建立起的隧道进行代理,通过ssh server向真实的服务发起请求
4-5 服务通过ssh server,再通过创建好的隧道返回给用户
由于ssh本身就是基于RSA加密技术,所以GFW无法从数据传输的过程中的加密数据内容进行关键词分析,避免了被重置链接的问题,但由于创建隧道和数据传输的过程中,ssh本身的特征是明显的,所以GFW一度通过分析连接的特征进行干扰,导致ssh存在被定向进行干扰的问题
- Shadowsocks原理:
简单理解的话,shadowsocks是将原来ssh创建的Socks5协议拆开成server端和client端,所以下面这个原理图基本上和利用ssh tunnel大致类似
1&6 客户端发出的请求基于Socks5协议跟ss-local端进行通讯,由于这个ss-local一般是本机或路由器或局域网的其他机器,不经过GFW,所以解决了上面被GFW通过特征分析进行干扰的问题
2&5 ss-local和ss-server两端通过多种可选的加密方法进行通讯,经过GFW的时候是常规的TCP包,没有明显的特征码而且GFW也无法对通讯数据进行解密
3&4 ss-server将收到的加密数据进行解密,还原原来的请求,再发送到用户需要访问的服务,获取响应原路返回