SS:服务端(插件)
跳到导航
跳到搜索
关于
可以尝试使用使用协议混淆插件,目前插件汇总: 1、Kcptun 2、Simple-obfs 3、V2Ray-Plugin 4、GoQuite 5、Cloak 6、simple-tls 7、gost-plugin
Kcptun
【??????】
simple-obfs
参考: 1、添加混淆: simple-obfs + shadowsocks for Windows
V2Ray-Plugin
v2ray-plugin:基于v2ray原理,工作在 shadowsocks 上的流量混淆插件:将流量伪装为某域名下(所以需要为域名设置解析、证书申请)站点的 tls、quic 协议的流量。 支持 tls1.3 和谷歌 quic udp 协议。 项目地址: 1、v2ray-plugin 项目 2、acme.sh 项目(中文说明)
参考:
- ss-libev 插件 v2ray-plugin 的安装使用
- shadowsocks+v2ray配置笔记
- 使用一键脚本轻松给 shadowsocks v2ray插件, v2ray,trojan申请免费证书
- 原版shadowsocks v2ray插件安装,支持tls1.3和谷歌quic udp协议,配套客户端windows、macos、android使用详解
域名证书
理论上来说,证书不是必须的。但没有 tls 加持或不做加密,防火墙直接能看出来流量真实意图从而进行干扰,这也是为什么不建议伪装 http 流量的原因。 见:Acme.sh 使用#DNS认证方式(推荐)
- 安装 acme.sh:
curl https://get.acme.sh | sh
- 更改默认 CA:
acme.sh --set-default-ca --server letsencrypt
- 即,使用 letsencrypt 签发证书;
- 安装证书:
# 以下 CF_Key、CF_Email和域名,需要在实际环境中用你自己的配置替换掉 export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" export CF_Email="xxxx@sss.com" acme.sh --issue --dns dns_cf -d example.com -d www.example.com
- 使用了 cloudflare 作为 DNS 提供商(cloudflare 的 CDN 没有必要开启——除非 ip 被锁,否则国外的 CDN 反而可能导致降速);
其他注意:(???)
- v2ray-plugin 会自动识别并且引用 acme 申请的证书文件;当然你也可以把证书链接放到指定的具体目录下,然后设置只读权限(推荐)
ln -s ~/.acme.sh/xxxx.com /etc/ssl/xxxx.com
- 如果需要 Andriod 客户端连接,那么服务器端证书需要用 fullchain,否则可能会遇到“Connection reset by peer”错误。 (服务器 v2ray 错误是 “failed to read request header > websocket: close 1000 (normal)”)。
V2Ray-Plugin 安装
两种安装方式:
- 编译 v2ray-plugin、golang 源码:(编译安装 V2Ray-Plugin 需要 golang)
- 安装 golang:
# 下载安装 (root 下安装) cd ~ && curl -O https://dl.google.com/go/go1.16.10.linux-amd64.tar.gz # 解压 tar -C /usr/local -xzf go1.16.10.linux-amd64.tar.gz # 添加到环境变量 vim ~/.bash_profile # 添加以下两行内容到文末: export GOPATH=$HOME/work export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin # 使环境变量生效 source ~/.bash_profile # 检查版本 go version
- 安装 v2ray-plugin:
git clone https://github.com/shadowsocks/v2ray-plugin.git cd v2ray-plugin go mod download go build cp v2ray-plugin /usr/bin/v2ray-plugin cd ..
- 安装 golang:
- 使用编译好的 v2ray-plugin 的可执行二进制文件:
- github release 页面下载“v2ray-plugin-linux-amd64-v1.3.1.tar.gz”;
- 上传到服务器,解压到 /usr/bin/,并更名为“v2ray-plugin”:
cd /root tar -zxvf v2ray-plugin-linux-amd64-v1.3.1.tar.gz mv v2ray-plugin_linux_amd64 /usr/bin/v2ray-plugin
- 为 v2ray-plugin 增加可执行权限:
# 修改文件所属组为 root chgrp -R root /usr/bin/v2ray-plugin # 修改文件所有者为 root chown -R root /usr/bin/v2ray-plugin # 为文件添加“可执行权限” chmod +x /usr/bin/v2ray-plugin
验证安装:
- 执行以下命令,能够执行并有返回结果即可:
[root@newjersey ~]# v2ray-plugin 2021/12/01 15:45:37 V2Ray 4.23.2 (V2Fly, a community-driven edition of V2Ray.) Custom (go1.14.3 linux/amd64) 2021/12/01 15:45:37 A unified platform for anti-censorship. 2021/12/01 15:45:37 [Warning] v2ray.com/core: V2Ray 4.23.2 started
配置
v2ray-plugin 支持两种模式: 1、https(websocket + tls) 2、quic(quic + tls) quic 核心是 udp,而大部分运营商对 udp 的支持不友好, udp 丢包严重,有时候不使用 quic 更好。(目前 v2ray-core 的 quic 还没有升级到最新的 http3 标准, 也就是说还没有支持 http3 的插件可以用,你可以通过 caddy2 启用 http3,但是本地没有支持 http3 的代理客户端可用)
- 服务端:(设置 ss 配置文件)
{ "server":"0.0.0.0", "nameserver":"8.8.8.8", "server_port":443, "password":"你的密码", "method":"chacha20-ietf-poly1305", "timeout":400 "no_delay":true, "mode":"tcp_and_udp", "plugin":"v2ray-plugin", "plugin_opts":"server;tls;fast-open;host=xxxxxxxxx.com;cert=/证书目录/fullchain.cer;key=/证书目录/xxxxxxxxx.com.key;loglevel=none" }
- “server_port”:推荐使用 443 端口;(这样看起来更像普通的 https 网站)
- 【记得防火墙打开该端口】
- “no_delay”:修改为“"true"”;(在网络带宽很好的情况下,让服务器端能更快的把数据发往客户端)
- “mode”:
- https 模式:使用“"tcp_and_udp"”;
- quic 模式:修改为“"tcp_only"”;(关闭 ss 的 udp,让 quic 模块去处理 udp)
- “plugin”:使用的插件;(可以设置为全路径???)
- “plugin_opts”:插件选项;
- 客户端:
- 在github release 页面下载“v2ray-plugin-windows-amd64-v1.3.1.tar.gz”,解压该文件并放到 shadowsocks 可执行文件的同级目录;
- 设置 shadowsocks 界面:
- “服务器地址”:xxx.com;
- “服务器端口”:443;
- “插件程序”:
v2ray-plugin_windows_amd64
(shadowsocks 同级目录的插件名) - “插件选项”:
- https 模式:
tls;host=xxx.com
; - quic 模式:
mode=quic;host=xxx.com
;
- https 模式:
验证
- 验证 ss:(使用了一键脚本的安装,仓库安装遇到了“修改配置文件之后服务重启失败的问题”)
[root@newjersey ~]# systemctl restart shadowsocks [root@newjersey ~]# systemctl status shadowsocks ● shadowsocks.service - LSB: Fast tunnel proxy that helps you bypass firewalls Loaded: loaded (/etc/rc.d/init.d/shadowsocks; bad; vendor preset: disabled) Active: active (running) since Wed 2021-12-01 20:47:02 UTC; 10s ago Docs: man:systemd-sysv-generator(8) Process: 7817 ExecStop=/etc/rc.d/init.d/shadowsocks stop (code=exited, status=0/SUCCESS) Process: 7820 ExecStart=/etc/rc.d/init.d/shadowsocks start (code=exited, status=0/SUCCESS) CGroup: /system.slice/shadowsocks.service ├─7822 /usr/local/bin/ss-server -v -c /etc/shadowsocks-libev/config.json -f /var/run/shadowsocks-libev... └─7825 v2ray-plugin Dec 01 20:47:02 newjersey systemd[1]: Stopped LSB: Fast tunnel proxy that helps you bypass firewalls. Dec 01 20:47:02 newjersey systemd[1]: Starting LSB: Fast tunnel proxy that helps you bypass firewalls... Dec 01 20:47:02 newjersey shadowsocks[7820]: Starting Shadowsocks-libev success Dec 01 20:47:02 newjersey systemd[1]: Started LSB: Fast tunnel proxy that helps you bypass firewalls. Dec 01 20:47:02 newjersey /usr/local/bin/ss-server[7822]: plugin "v2ray-plugin" enabled Dec 01 20:47:02 newjersey /usr/local/bin/ss-server[7822]: UDP relay enabled Dec 01 20:47:02 newjersey /usr/local/bin/ss-server[7822]: initializing ciphers... chacha20-ietf-poly1305 Dec 01 20:47:02 newjersey /usr/local/bin/ss-server[7822]: using nameserver: 8.8.8.8 Dec 01 20:47:02 newjersey /usr/local/bin/ss-server[7822]: tcp server listening at 127.0.0.1:51975 Dec 01 20:47:02 newjersey /usr/local/bin/ss-server[7822]: udp server listening at 0.0.0.0:443 [root@newjersey ~]#
- 配置的 v2ray-plugin 插件应该要被识别启动;
- 验证 v2ray-plugin:
[root@newjersey ~]# netstat -lptn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1035/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1278/master tcp 0 0 127.0.0.1:51975 0.0.0.0:* LISTEN 7822/ss-server tcp6 0 0 :::22 :::* LISTEN 1035/sshd tcp6 0 0 ::1:25 :::* LISTEN 1278/master tcp6 0 0 :::443 :::* LISTEN 7825/v2ray-plugin [root@newjersey ~]# netstat -lpun Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 127.0.0.1:323 0.0.0.0:* 511/chronyd udp 0 0 0.0.0.0:68 0.0.0.0:* 980/dhclient udp 0 0 0.0.0.0:443 0.0.0.0:* 7822/ss-server udp6 0 0 ::1:323 :::* 511/chronyd [root@newjersey ~]#
- tcp 端口应该有 ss 和 v2ray 在使用,udp 端口应该有 ss 在使用;