Total Pageviews

Thursday, 10 October 2019

Shadowsocks-libev配置‘Cloak混淆插件’

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