0%

Docker Compose配置Shadowsocks + V2Ray Plugin + ClashX

前提条件

你要有下面这些东西才能实现文章中的解决方案:

  1. 一台带公共ip的外网服务器
  2. 一个域名

1. 申请一个域名

域名可以在cloudflare或者onamae上申请,花不了几个钱。

2. 申请一个证书

证书可以通过acme这种工具来自动发行和更新。

2.1 先在自己的服务器上安装acme.sh

my@example.com替换为自己的邮件地址,执行下面的命令。

1
curl https://get.acme.sh | sh -s [email protected]

acme.sh通常会被安装到/home/username文件夹下。(username是你自己的用户名)
记住这个位置。

另外acme.sh需要执行更新命令,会占用80端口,这个需要注意一下。

2.2 发行证书

遵照acme官方文档的指示,使用dns手动模式发行证书。
域名可以是example.com这种,也可以是domain.example.com这种。

dns manual mode

这一步你需要把命令行中输出的TXT记录登记到你域名管理的网站上。
所有3个步骤执行完之后你的证书就会在/home/username/.acme.sh/文件夹里了。

3. Docker Compose搭建Shadowsocks+V2Ray Plugin服务端

直接从acris的github repo找到配置文件,
改为自己相应的信息。

有以下几个注意点:

  1. 首先要明确第2步下载得到的证书的位置。/home/username/.acme.sh/
  2. 另外yaml文件中user要设置成有正确权限的人。比如root
  3. 最后模式要指定正确。本人设置为mode=ws。如果不确定的话去上面的github repo看一下文档。
  4. 左侧的本地port不用必须设置成8388,可以改成自己喜欢的port。
  5. 加密方式可设为自己喜欢的METHOD。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: "3.7"
services:
shadowsocks-libev:
container_name: shadowsocks-libev
image: acrisliu/shadowsocks-libev:latest
user: root
ports:
- "8388:8388/tcp"
- "8388:8388/udp"
volumes:
- /home/username/.acme.sh:/root/.acme.sh:ro
environment:
- METHOD=YourMethod
- PASSWORD=YourPassword
- ARGS=--plugin v2ray-plugin --plugin-opts server;mode=ws;host=yourdomain.com;path=/v2ray;cert=/root/.acme.sh/yourdomain.com/fullchain.cer;key=/root/.acme.sh/yourdomain.com/yourdomain.com.key -u
restart: always

配置完成之后启动服务端。

1
sudo docker-compose up -d

4. 客户端设置

4.1 iOS端

还得是小火箭
其他的一些工具不支持v2ray-plugin。

配置设置如图所示:

4.2 Mac端

自己试了也就只有ClashX好用。

ClashX要求先在config.yaml中设置一下才能使用。
18行左右添加如下配置:
这里的domain和密码,端口之类的配置信息要和服务器端的配置一致。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
proxies:
- name: "ss-v2ray"
type: ss
server: domain.example.com
port: your_port
cipher: aes-256-gcm
password: "YourPassword"
udp: true
plugin: v2ray-plugin
plugin-opts:
mode: websocket
path: /v2ray
host: domain.example.com
tls: true
skip-cert-verify: true

然后Config>Reload Config一下就可以加载这个配置了。