安装shadowsocks-libev
ShadowSocks-libev与BBrPlus
申请域名并配置泛域名证书
Let’s encrypt 通配证书申请
因文章是时效性问题,文章步骤大有不同,仅供参考,建议谷歌ls一键申请泛域名
cloudflare cdn下的配置
服务端配置
下载编译好的适用于服务器架构插件到服务端
shadowsocks/v2ray-plugin
甲骨文默认2个服务器架构amd64
下载构建好的插件到服务器
wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.3.2/v2ray-plugin-linux-amd64-v1.3.2.tar.gz
//解压档案
tar -zxvf v2ray-plugin-linux-amd64-v1.3.2.tar.gz
//移动到shadowsocks-libev一键脚本的配置目录
mv v2ray-plugin_linux_amd64 /etc/shadowsocks-libev && cd $_
编辑shadowsocks-libev配置文件
nano config.json
nano 按键
Ctrl+X 退出编辑
Y 保存退出的两种模式//直接按回车保持到当前文件或输入文件名回车保持新文件
N 不保存退出
完整的配置文件
{
"server":"0.0.0.0",
"server_port":443,
"password":"password",
"timeout":300,
"user":"nobody",
"method":"aes-256-gcm",
"fast_open":false,
"nameserver":"8.8.8.8",
"mode":"tcp_and_udp",
"plugin": "/etc/shadowsocks-libev/v2ray-plugin_linux_amd64",
"plugin_opts": "server;tls;host=Domain.Name;cert=/etc/shadowsocks-libev/1.pem;key=/etc/shadowsocks-libev/2.pem"
}
相比原来的配置文件,添加两个值
"plugin": "/etc/shadowsocks-libev/v2ray-plugin_linux_arm64"
插件:v2ray-plugin插件绝对目录
"plugin_opts:"server;tls;host=Domain.Name;cert=/etc/shadowsocks-libev/1.pem;key=/etc/shadowsocks-libev/2.pem"
插件配置:server[必要的];tls[必要的];host=Domain.Name[域名必要的];cert=/etc/shadowsocks-libev/1.pem[证书绝对目录];key=/etc/shadowsocks-libev/2.pem[证书密钥绝对目录]
另外端口需要修改成443,这是ssl通讯端口
如果默认的80/443是网站通讯端口,也可以查看cf支持的非标准端口。
客户端配置
Windows
下载适用于win的插件文件并解压缩将.exe复制本地ss平级目录下v2ray-plugin
- 服务器地址Domain.Name
- 端口:443
- 插件程序:解压缩的.exe文件名,不带.exe
- 插件选项: tls;host=Domain.Name
Android
下载插件v2ray-plugin-android
- 配置如Windows相同
iOS
支持的软件Shadowrocket...
- 插件v2ray-plugin
- 配置如Windows相同
其它
如果IP/PORT被放出来了,可以直接将服务器地址Domain.Name修改为服务器IP,无需修改配置文件,网络不经过cf回源。
调试命令ss-server -c /etc/shadowsocks-libev/config.json -p 443 --plugin /etc/shadowsocks-libev/v2ray-plugin_linux_amd64 --plugin-opts "server;tls;host=Domain.Name;cert=/etc/shadowsocks-libev/1.pem;key=/etc/shadowsocks-libev/2.pem"
WebSocket + TLS + Web下的配置
服务端配置
编辑shadowsocks-libev配置文件
{
"server":"0.0.0.0",
"server_port":10000,
"password":"password",
"timeout":300,
"user":"nobody",
"method":"aes-256-gcm",
"fast_open":false,
"nameserver":"8.8.8.8",
"mode":"tcp_and_udp",
"plugin": "/etc/shadowsocks-libev/v2ray-plugin_linux_amd64",
"plugin_opts": "server;host=Domain.Name;path=/ray"
}
这里无需指定网站SSL证书目录,是因为将代理流量藏在可以正常访问的网站路径/ray
下面,看起来似乎是网站流量
这里的/ray
流量入口可以设置任意
Nginx配置
需要完整配置的文件如下
server {
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/v2ray/v2ray.crt;
ssl_certificate_key /etc/v2ray/v2ray.key;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
server_name Domain.Name;
location /ray { # 与 V2Ray 配置中的 path 保持一致
if ($http_upgrade != "websocket") { # WebSocket协商失败时返回404
return 404;
}
proxy_redirect off;
proxy_pass http://127.0.0.1:10000; # 假设WebSocket监听在环回地址的10000端口上
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
# Show real IP in v2ray access.log
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
如果使用宝塔面板搭建的网站,只需修改网站默认配置文件,将下列这段插入末尾最后的}
前面就行
location /ray { # 与 V2Ray 配置中的 path 保持一致
if ($http_upgrade != "websocket") { # WebSocket协商失败时返回404
return 404;
}
proxy_redirect off;
proxy_pass http://127.0.0.1:10000; # 假设WebSocket监听在环回地址的10000端口上
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
# Show real IP in v2ray access.log
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
需要注意的是较低版本的 nginx 的 location 需要写为 /ray/ 才能正常工作
客户端配置
同cloudflare cdn
客户端配置一样,但只需要修改tls;host=Domain.Name
命令为tls;host=Domain.Name;path=/ray
即可,需要注意的是一般网站的SSL通讯端口是443
,所以客户端也需要为443
端口,而不是ss配置文件的端口
Comments | NOTHING