0%

Docker部署V2Ray

由于众所周知的原因,访问谷歌的难度越来越大,从最早的SS到今天的v2ray,VPS也在banwagong,digitalocean,vultr之间换了又换,每次都要重新部署,堪称繁琐,为了节约有限的生命,决定花点时间制作满足自己需求的docker镜像,从而实现一键部署更新。

准备条件

  • 网络要健康,可以上谷歌,VPS站点可能被墙比如https://bandwagonhost.com/

VPS选择

主流的厂商也就这几个,这里我选择Vultr,主要是资费灵活且有日本节点,DO目前没有日本机器

机器搞定后,就可以开始配置了。

Vultr推荐

注意

  1. VPS具体机器时区是什么无所谓,因为V2Ray会自动转换时区,但是时间一定要准确。
  2. DO的计费是按时计费,关机后依旧扣费,删除服务器才停止计费。
  3. 关于操作系统,这里我选择CentOS 7 x64
  4. 关于机房,我选择了日本节点,一是速度相对较快,二是油管会员香港支持

安装 Docker CE

1
2
3
4
5
6
$ wget -qO- https://get.docker.com/ | sh


// 这步是为了让用户能够直接使用docker命令,root用户忽略
$ sudo usermod -aG docker username

启动 Docker CE

CE means 社区版

1
2
3
$ sudo systemctl enable docker
$ sudo systemctl start docker

安装Docker Compose

1
2
3
4
5
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
$ docker-compose --version // 测试是否安装成功

文件准备

1
2
3
4
5
6
7
8
9
10
.
├── docker-compose.yml //容易编排文件
├── init-letsencrypt.sh // 证书初始化获取文件
├── nginx
│   └── conf.d
│   └── default.conf
└── v2ray
└── config.json

3 directories, 4 file

具体配置戳这里,这里只说明几处需要修改的点

init-letsencrypt.sh

  • domains需要修改为自己的域名
  • email填写

nginx/conf.d/default.conf

  • servername修改为自己的域名,同上
  • 证书路径域名修改为自己的域名

v2ray/config.json

  • clients.id修改,推荐使用生成器重新生成一个ID

文件上传

推荐使用FileZilla进行上传,也可以用以下命令上传

1
$ scp  -r /Users/xxx/Documents/GitHub/v2ray-docker  root@ip:/var/v2ray-docker

启动服务

终端登录VPS,执行以下命令

1
2
3
4
5
6
7
8
$ cd /var/v2ray-docker

$ chmod +x ./init-letsencrypt.sh

$ ./init-letsencrypt.sh

$ docker-compose up -d

注意细节

  1. 容器间可使用服务名称作为hostname相互访问。例如,v2ray这个服务可使用http://v2ray:10086 访问v2ray服务。

  2. 当服务的配置发生更改时,可使用docker-compose up -d命令更新配置。此时,Compose会删除旧容器并创建新容器。新容器会以不同的IP地址加入网络,名称保持不变。任何指向旧容器的连接都会被关闭,容器会重新找到新容器并连接上去。

  3. 当执行./init-letsencrypt.sh时,如果证书获取OK,会出现如下提示,因为系统或网络原因可能获取证书失败[这里我在centos8执行命令时报错,为此切换成了7]。

  4. docker-compose restart nginx 提示成功,不代表nginx成功启动,maybe报错

  5. 在使用 nginx docker 容器配置反向代理的时候,默认不能直接使用 localhost,因为访问它指向的是这个容器本身。

常用指令

1
2
3
4

$ docker network ls
$ docker-compose restart // restart all service
$ docker-compose restart nginx // restart target service

域名解析

登陆域名服务网页,配置A记录,将目标域名解析指向VPS的IP地址。

客户端配置使用

如上操作后,服务算是部署OK了,只需要客户端进行配置即可。

这里我是用Surge客户端,配置后,即可正常使用.贴下之前DO购买的美国节点与当前Vultr日本节点的延迟区别

注意

配置即使正确,正常服务可用有延迟,建议在确定配置都正确,连接失败时,等上10分钟

不想了解的=》直接上

这里贴出我的v2ray-docker站点,配置域名邮箱即可生成完整配置,简单操作即可部署一套服务。

站点地址

建议

  1. Vultr选择一台机器,建议日本,系统选择CentOS 7 x64
  2. 客户端使用Clash,Surge等

写在最后

经过这番折腾,以后部署一台v2ray机器大致只需要输入配置,上传配置包,即可启动服务。脱离了较为繁琐的配置,节约了时间,so值!

相关资料