Cloak是基于GoQuiet的,可以说是GoQuiet一个升级版,主要改动/增加了下面的功能:
1.通过多路复用,与GoQuiet相比,Cloak可显著减少网页加载时间(详情)
2.多用户支持,可以为单个用户提供QoS控制,例如流量使用限制和带宽控制。此外还有一个WEB面板。
本文仅仅介绍一下这个插件怎么跑起来,至于多用户有兴趣的可以自己去啃文档,我没那个需求就不折腾了。
首先安装shadowsocks-libev版本:
apt -y install shadowsocks-libev libsodium-dev
接着安装Cloak的服务端:
wget https://github.com/cbeuw/Cloak/releases/download/v2.1.1/ck-server-linux-amd64-2.1.1 mv ck-server-linux-amd64-2.1.1 /usr/bin/ck-server chmod +x /usr/bin/ck-server
生成密匙对(逗号前面的是公钥,后面的是私钥):
ck-server -k
生成一个用户的UID:
ck-server -u
新建Cloak配置文件:
mkdir -p /etc/ck-server/ && nano /etc/ck-server/ckserver.json
写入如下配置:
{ "ProxyBook": { "shadowsocks": [ "tcp", "127.0.0.1:51234" ], "openvpn": [ "udp", "127.0.0.1:8389" ], "tor": [ "tcp", "127.0.0.1:9001" ] }, "BindAddr": [ ":443", ":80" ], "BypassUID": [ "你生成的UID" ], "RedirAddr": "204.79.197.200", "PrivateKey": "你生成的私钥", "AdminUID": "你生成的UID", "DatabasePath": "/etc/ck-server/userinfo.db", "StreamTimeout": 300 }
注:
1.Cloak不仅仅只支持shadowsocks,还支持openvpn等,这里我是用shadowsocks,所以在ProxyBook下面更改shadowsocks服务端口与之对应即可。
2.BindAddr是Cloak监听(服务)端口,默认是使用的80/443,所以用来部署Cloak的服务器最好不要装Nginx/Caddy/Apache之类的软件,不然端口会冲突。
3.BypassUID是指一个没有限制的用户(不受QoS限制,不受管理员限制)
4.AdminUID是指定这个用户提升为管理员权限,这边我因为就是一个人用,所以我将AdminUID和BypassUID设置为同一个ID。
5.PrivateKey是上一步ck-server -k生成的私钥。
现在编辑shadowsocks-libev的配置文件:
nano /etc/shadowsocks-libev/config.json
修改为:
{ "server":["::1", "127.0.0.1"], "mode":"tcp_and_udp", "server_port":51234, # shadowsocks服务port与cloak内的ProxyBook端口要对应 "local_port":1080, "password":"你的SS连接密码", "timeout":60, "method":"chacha20-ietf-poly1305", "plugin":"ck-server", # 加载cloak插件 "plugin_opts":"/etc/ck-server/ckserver.json" # cloak插件配置 }
接下来还需要编辑systemd服务文件:
nano /lib/systemd/system/shadowsocks-libev.service
将运行用户改为root(解决cloak创建用户数据库报错)
User=root Group=root
重载systemd/重启shadowsocks-libev
systemctl daemon-reload systemctl restart shadowsocks-libev
服务端这块的配置就完成了,接下来是客户端的。
首先在这里下载对应平台的客户端程序:
https://github.com/cbeuw/Cloak/releases
将下载的程序移动到shadowsocks的根目录(运行目录),同时在这个目录内新建一个ckclient.json:
编辑ckclient.json,写入如下内容:
{ "Transport": "direct", "ProxyMethod": "shadowsocks", "EncryptionMethod": "plain", "UID": "对应服务端上的BypassUID", "PublicKey": "你之前生成的公钥", "ServerName": "www.bing.com", "NumConn": 4, "BrowserSig": "chrome", "StreamTimeout": 300 }
注:
1.ServerName这个其实也应该要和服务端上的RedirAddr对应,即你可以自己随便找一个域名,PING一下这个域名的IP地址,域名就填在ServerName,而PING出来的IP就填在RedirAddr。
2.BrowserSig是你想让GFW认为你在使用哪款浏览器访问网站,参数支持chrome/firefox。
3.关于Transport其实是支持两种模式的,默认是direct,还有一种是cdn,对cdn支持感兴趣的可以去看官方的文档,这里不多叙述。
最终shadowsocks客户端上的配置:
服务器地址:你的服务器公网IP 服务器端口:443(切记这里的端口是cloak监听的443端口) 密码:你在服务端上配置的密码 加密:你在服务端上配置的加密方式 插件程序:ck-client-windows-amd64-2.1.1.exe 插件选项:E:\shadowsocks\ckclient.json
项目地址:
https://github.com/cbeuw/Cloak
https://github.com/cbeuw/goquiet