文章目录

前言: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模式

使用docker快速部署shadowsocks-libev+v2ray-plugin代理 多种方法/域名 TLS CDN自己决定-LMLPHP使用docker快速部署shadowsocks-libev+v2ray-plugin代理 多种方法/域名 TLS CDN自己决定-LMLPHP

五、客户端配置

5.1 Win端

5.2 Android端

  • 先到这个链接下载插件并安装
  • 其余的配置都跟上面win端一致

5.3 ios端

请使用Shadowrocket,也就是俗称的小火箭,配置添加使用。
使用docker快速部署shadowsocks-libev+v2ray-plugin代理 多种方法/域名 TLS CDN自己决定-LMLPHP使用docker快速部署shadowsocks-libev+v2ray-plugin代理 多种方法/域名 TLS CDN自己决定-LMLPHP使用docker快速部署shadowsocks-libev+v2ray-plugin代理 多种方法/域名 TLS CDN自己决定-LMLPHP

六、总结

到此即介绍完所有我觉得要介绍到的地方,如果那里有介绍不对,欢迎留言批评指正。感谢各位大佬们用爱发电,感激他们的付出,我们才能走得更远。


参考链接:

01-19 03:36