文章目录
前言:Shadowsocks-libev是一款安全
、轻量
和快速
的代理协议。它是由clowwindy
发明,后同很多技术大牛一起开发,原作者被喝茶以后,因为项目是开源的,所以很多人fork后继续开发,现在主要由madeye
负责更新维护。shadowsocks
注重加密,数据包几乎没有特征,而shadowsocksr
注重混淆,倾向无加密化,现在已经停更,所以不再推荐使用。之前的simple-obfs
插件已经弃更,在github项目里也被标识为不推荐使用,转之项目维护者推荐使用shadowsocks-libev+v2ray-plugin
插件。
本文会知无不言地介绍一下使用秋水逸冰
为之制作的docker
镜像快速部署shadowsocks-libev+v2ray-plugin
,主要介绍ws和ws+tls
模式。
条件准备:
- 一台墙外VPS
- 一台安装好SSH客户端的PC电脑
- 只用ws就不用域名,加tls就需要准备一个域名
- 注册好Cloudflare账号
- 一位会使用基本的Linux命令的自然人
一、安装docker
1.1 以root用户登录,执行一键脚本安装docker
apt-get update && apt-get install -y wget vim //以Debian系为例,升级源并安装软件
yum -y install wget // Centos 7命令
wget -qO- get.docker.com | bash //执行此命令等候自动安装docker
1.2 对docker的一些命令操作
docker version //查看docker安装版本等信息
systemctl start docker //启动docker服务
systemctl status docker //查看docker运行状态
systemctl enable docker //将docker服务加入开机自启动
二、用docker部署shadowsocks-libev+v2ray-plugin(ws类型,不用域名)
2.1 创建配置文件
mkdir /etc/shadowsocks-libev //在/etc目录下创建shadowsocks-libev目录
cd /etc/shadowsocks-libev //工作空间切换至此
vim config.json //创建并开始编辑名为config.json的配置文件
//下为配置文件示例,请添加至文件
{
"server":"0.0.0.0",
"server_port":9000,
"method":"aes-256-gcm",
"timeout":300,
"password":"password0",
"fast_open":false,
"nameserver":"8.8.8.8",
"mode":"tcp_and_udp",
"plugin":"v2ray-plugin",
"plugin_opts":"server"
}
//上为配置文件示例,添加至文件后保存并退出
2.2 用docker结合上面的配置文件创建并启动容器
docker run -d --name ss-libev --restart always -p 9000:9000 -p 9000:9000/udp -v /etc/shadowsocks-libev:/etc/shadowsocks-libev teddysun/shadowsocks-libev
2.3 后期容器处理常用命令
记前面docker run后面--name ss-libev
中的ss-libev
为$name
,其代表容器识别符,也就是$name=ss-libev
。
docker ps -as //查看容器在线状态及大小,在这里你一般可以看到$name=ss-libev
docker logs $name //查看此容器的运行输出日志
docker restart $name //重新启动容器,一般在修改除端口外的配置后使用使修改生效
docker stop $name //停止此容器的运行
docker rm $name //移除此容器
docker stats --no-stream //查看docker容器占用CPU,内存等信息
三、用docker部署shadowsocks-libev+v2ray-plugin(ws+tls类型,需要域名)
3.1 用acme.sh脚本申请证书
关于这个,之前专门水过一篇文章:用acme.sh脚本申请证书并自动续更 ,还请麻烦前往查看,下面默认你已经获取到Clouflare api key
,并且也已经安装好acme.sh
脚本。
3.2 安装证书到放置ss配置文件的目录
假设你的是域名是mydomain.me
,且已经在Cloudflare
上设置好A
记录解析
mkdir /etc/ssplugin && cd /etc/ssplugin //创建目录并切换至此
export CF_Key="slfjksjffjfhfhkjhfksjf" //此处替换成你自己的Key
export CF_Email="[email protected]" //此处填写你注册Cloudflare使用的邮箱账号
acme.sh --issue --dns dns_cf -d mydomain.me -k ec-256 //用脚本申请证书
acme.sh --installcert -d mydomain.me --fullchain-file /etc/ssplugin/plugin.crt --key-file /etc/ssplugin/plugin.key --ecc //安装证书到/etc/ssplugin目录下
3.3 创建配置文件
cd /etc/ssplugin //其实上一步之后应该就是在这个目录里了
vim config.json //创建并开始编辑配置文件
//下面是配置文件示例
{
"server":"0.0.0.0",
"server_port":9000,
"password":"password0",
"timeout":300,
"method":"aes-256-gcm",
"fast_open":false,
"nameserver":"8.8.8.8",
"mode":"tcp_and_udp",
"plugin":"v2ray-plugin",
"plugin_opts":"server;tls;host=mydomain.me;cert=/etc/shadowsocks-libev/plugin.crt;key=/etc/shadowsocks-libev/plugin.key"
}
//上面是配置文件示例,请添加至文件后保存并退出。
3.4 用docker配合配置文件创建并启动容器
docker run -d --name ss-plugin --restart always -p 9000:9000 -p 9000:9000/udp -v /etc/ssplugin:/etc/shadowsocks-libev teddysun/shadowsocks-libev
3.5 后期docker容器常用处理命令
记前面docker run后面--name ss-plugin
中的ss-plugin
为$name
,其代表容器识别符,也就是$name=ss-plugin
。
docker ps -as //查看容器在线状态及大小,在这里你一般可以看到$name=ss-plugin
docker logs $name //查看此容器的运行输出日志
docker restart $name //重新启动容器,一般在修改除端口外的配置后使用使修改生效
docker stop $name //停止此容器的运行
docker rm $name //移除此容器
docker stats --no-stream //查看docker容器占用CPU,内存等信息
四、用docker部署shadowsocks-libev+v2ray-plugin(ws+caddy提供的tls,可选套cdn)
4.1 证书安装情况跟上面一致
这种方式是受推荐使用的,也是借鉴v2ray安装ws+tls而来。其中申请证书什么的跟上面一致,请参考:这个链接。
基于此,下面默认你已经为mydomain.me
申请好证书放置在/root/.acme.sh
内部目录下,但还没安装证书到哪个位置。
4.2 创建ss的配置文件
mkdir /etc/ssplugin && cd /etc/ssplugin //创建目录并切换至此
vim config.json //创建并开始编辑config.json配置文件
//下面是配置文件示例,请添加至文件
{
"server":"127.0.0.1",
"server_port":9000,
"method":"aes-256-gcm",
"timeout":300,
"password":"password0",
"fast_open":false,
"nameserver":"8.8.8.8",
"mode":"tcp_and_udp",
"plugin":"v2ray-plugin",
"plugin_opts":"server;path=/ray"
}
//上面是配置文件示例,请添加至文件后保存并退出
4.3 用docker搭配配置文件创建并启动容器
docker run -d --name ss-plugin --restart always --net host -v /etc/ssplugin:/etc/shadowsocks-libev teddysun/shadowsocks-libev
4.4 安装caddy
执行下面一条命令安装caddy
,也就是以个人身份申请使用caddy的二进制,并把它放到/usr/local/bin
目录下
cd /root //切换到/root目录
wget -qO- https://getcaddy.com | bash -s personal //下载caddy的二进制并放置在/usr/local/bin目录下
第一:在4.7使用 nohup /usr/local/bin/caddy -conf /root/caddy/Caddyfile & 避免报错。
第二:这一步就开始把/usr/local/bin加入$PATH的取值内,具体操作步骤如下:
vim /root/.bash_profile
PATH=$PATH:/usr/local/bin //加入此行,文件内应该是有 export PATH这一行的。
source /root/.bash_profile //使环境变量生效
4.5 配置caddy证书
mkdir caddy && cd caddy //在/root目录下创建caddy目录并切换至此
acme.sh --installcert -d mydomain.me --fullchain-file /root/caddy/caddy.crt --key-file /root/caddy/caddy.key --ecc //安装证书和key到/root/caddy目录下
4.6 创建caddy主配置文件Caddyfile
vim Caddyfile //创建文件并开始编辑
//下面是caddy配置文件示例,请添加至文件
mydomain.me:443 {
gzip
tls /root/caddy/caddy.crt /root/caddy/caddy.key
log /root/caddy/caddy.log
proxy / https://baidu.com
proxy /ray 127.0.0.1:9000 {
websocket
header_upstream -Origin
}
}
//上面是配置文件示例,请按照实际情况替换填写
4.7 让caddy搭配Caddyfile文件运行起来
nohup caddy -conf /root/caddy/Caddyfile & //让caddy在后台运行起来
//直接回车让caddy服务后台挂起
cat nohup.out //可以查看输出的日志
cat /root/caddy/caddy.log //可以查看caddy运行产生的日志
4.8 开启Cloudflare的CDN保护,开启SSL/TLS的Full模式
五、客户端配置
5.1 Win端
- 先到这个链接下载v2ray-plugin-windows-amd64的包
- 下载完成后解压到shadowsocks-windows的目录下.参考教程:https://www.hostphb.com/we/2891.html
- 重命名为v2ray-plugin.exe文件
5.2 Android端
- 先到这个链接下载插件并安装
- 其余的配置都跟上面win端一致
5.3 ios端
请使用Shadowrocket
,也就是俗称的小火箭,配置添加使用。
六、总结
到此即介绍完所有我觉得要介绍到的地方,如果那里有介绍不对,欢迎留言批评指正。感谢各位大佬们用爱发电,感激他们的付出,我们才能走得更远。