ShadowSocks启用v2ray-plugin

目录

  1. 1. 服务端
    1. 1.1. 搭建服务
    2. 1.2. 更改配置
    3. 1.3. 端口转发
  2. 2. 客户端
    1. 2.1. 路由器
    2. 2.2. Windows
    3. 2.3. macOS
    4. 2.4. Android

2019年6月初由于某事件发生30周年,导致某长城突然加高,将大量机场IP屏蔽,于是将梯子改成了v2ray,并通过cloudflare代理DNS解析的方式将翻墙流量伪装成对域名的tls访问流量,曲线解决了IP端口被封的问题。
但是路由器上使用v2ray客户端有一些性能问题,总觉得不如原来的shadowsocks流畅,于是找到一种继续使用ss,并通过v2ray-plugin插件来伪装流量的方法。

服务端

搭建服务

停用原来的python版,安装shadowsocks-libev:

yum install shadowsocks-libev -y

克隆v2ray-plugin代码并编译(需要golang环境):

git clone https://github.com/shadowsocks/v2ray-plugin.git
cd v2ray-plugin && go build
cp v2ray-plugin /usr/bin/

更改配置

编辑/etc/shadowsocks-libev/config.json

1
2
3
4
5
6
7
8
9
10
{
"server":"0.0.0.0",
"server_port":23333,
"local_port":1080,
"password":"password",
"timeout":300,
"method":"rc4-md5",
"plugin":"v2ray-plugin",
"plugin_opts":"server;loglevel=none"
}

本来这里使用v2ray插件的目的是将shadowsocks的流量伪装成tls流量,自然服务器端口应当使用443。
但是我的服务器同时还启用了nginx,再使用443会造成端口冲突,所以在这里使用一个其他的端口,然后再用nginx做一次端口转发。

端口转发

/etc/nginx/conf.d/目录下新建一个配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
server {
listen 443;
server_name ss.your.domain;

location / {
proxy_pass http://127.0.0.1:23333;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}

server_name需要使用自己的域名,并将这个二级域名解析到vps上。

保存后重启nginx,启动shadowsocks并设置开机启动:

systemctl restart nginx
systemctl start shadowsocks-libev
systemctl enable shadowsocks-libev

客户端

主要注意以下配置:

  • 服务器地址填上面配置的二级域名
  • 服务器端口443
  • 插件名称v2ray-plugin
  • 插件参数tls;host=二级域名

路由器

此处以老毛子固件为例:

路由器设置

打开开关应用即可。

Windows

下载完成将插件v2ray-plugin.exe解压到shadowsocks的文件夹中(使其与shadowsocks.exe平级),启动按如下配置:

Windows设置

macOS

将客户端解压到应用目录(客户端会自己安装插件),启动按如下配置:

macOS设置

Android

两个apk安装以后启动按如下配置:

Android设置
插件设置