搬瓦工VPS使用V2Ray和Cloudflare配置指南

本文为简洁版,基于我博客的两篇文章进行了更新和补充,采用v2ray官方的一键安装脚本进行安装,并通过自定义的config.json实现网站与v2ray的共存,还使用了Cloudflare的CDN进行中转。

以下是参考的两篇文章:

为什么不直接写一篇全新的版本呢?主要是因为我的现有域名已经用于生产环境,不能再像之前那样从头开始;写这篇文章的原因是因为前几天有网友提醒我发现之前使用的v2ray.fun脚本失效了,因此决定写这篇文章来解决这个问题。此外,这次我只是用一个二级域名进行了测试,很多步骤无法完全复现,因此请多多包涵!

本文适用于VMess和VLESS协议,文章中包含两种协议的config.json模板。

先来说说准备事项:

1.1、一台全新安装的CentOS 7 VPS。

1.2、一个拥有所有权的域名。

1.3、注册Cloudflare账号。

其次,本文省略了一些步骤:

2.1、省略了域名注册的步骤;

参考

2.2、省略了将域名的NS服务器替换为Cloudflare的NS服务器的步骤;

参考第一篇文章的3.4至4.2.4步骤。

2.3、省略了Cloudflare 15年证书的申请操作;

参考第一篇文章的2.1-2.32步骤。

2.4、省略了宝塔面板的安装及新建网站的步骤;

参考第一篇文章的3.1-3.5步骤。

下面是具体的更新补充步骤:

3、继续上面的2.4步骤,这时打开网站,谷歌浏览器会提示网站证书不安全并直接终止连接,而火狐浏览器也会提示证书不安全,但有一个高级按钮可以选择继续,这样就可以打开网站了。能显示网站首页就可以了。这是因为“源证书仅对Cloudflare与源服务器之间的加密有效。”也就是说,15年证书是Cloudflare签发给你的域名,用于Cloudflare的CDN与您的服务器之间进行加密传输,而不是呈现给浏览器的。

4、安装和配置v2ray:

4.1、首先安装curl,命令如下:

yum install -y curl
我测试时已经装好,所以提示Nothing to do

4.2、安装unzip

yum install -y unzip
我测试时已经装好,所以提示Nothing to do

4.3、安装v2ray,使用官方脚本;如果输入命令后卡住,再按一次回车即可。

`bash ,模板参数略有变化,以模板为准。

vi /usr/local/etc/v2ray/config.json
需要修改的参数位置如下:

`”Host”: “v2fly.eveaz.com”

将v2fly.eveaz.com改成自己的域名;必须改!!

下面四个位置可根据自身需要修改:(不懂不要改)

“path”: “/ws/“, ## 这里是路径,配合Nginx转发;

“port”: 10010, ## 这里是需要Nginx转发的端口;

“alterId”: 0, ## 这里是额外ID,不能改!如果改了,2022年01月01日将无法使用。

“id”: “00b93379-2d11-4392-a600-52f1d7ea0148”, ## 这里是UUID。`

4.4.1、如果不会使用vi编辑,可以在宝塔面板的文件根目录/usr/local/etc/v2ray文件夹找到config.json,默认的config.json里面只有两个大括号,删掉后粘贴我写的v2ray_config.json模板文件进去,然后再修改即可。

4.5、赋予v2ray服务日志写入权限;

chown -R nobody /var/log/v2ray
解释:这是因为v2ray.service为安全起见,使用nobody用户来读取v2ray服务端程序的config.json配置和写入v2ray相关日志。如果不赋予权限,启动v2ray时会报错。

报错代码如下:

`systemd[1]: v2ray.service: main process exited, code=exited, status=23/n/a

systemd[1]: Unit v2ray.service entered failed state.

systemd[1]: v2ray.service failed.`

4.6、设置v2ray开机启动,命令行输入:

systemctl enable v2ray

4.6.1、启动v2ray,命令行输入:

systemctl start v2ray

4.6.2、查看v2ray启动状态,命令行输入:

systemctl status v2ray

4.6.3、如果显示如上图,就是v2ray启动成功了。

5、返回宝塔面板的网站设置,站点管理 – 配置文件,在底部的一个}之前添加以下规则代码,然后保存。

1
2
3
4
5
6
7
8
location /ws {
proxy_redirect off;
proxy_pass http://127.0.0.1:10010;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}

5.1、在宝塔面板重启Nginx。

5.2、这时在火狐浏览器打开网址,域名后面加上/ws/,比如我的域名是v2fly.eveaz.com,则打开的链接为https://v2fly.eveaz.com/ws/,网页应显示Bad Request。

5.3、基本到这里就ok了,回到Cloudflare,确保域名的小黄云亮起,即Proxied;接着等待DNS生效,生效时间不定,一般在1分钟到15分钟之间,具体取决于您使用的本地DNS服务器速度;简而言之,当在本地ping显示您的域名换成Cloudflare的IP时,就表示生效了。

参考第一篇文章步骤7。

5.4、DNS生效后就可以用客户端进行连接了。如果DNS未生效,客户端可能会报错x509证书错误,报错信息如下:

[Warning] [1446008233] v2ray.com/core/app/proxyman/outbound: failed to process outbound traffic > v2ray.com/core/proxy/vmess/outbound: failed to find an available destination > v2ray.com/core/common/retry: [v2ray.com/core/transport/internet/websocket: failed to dial WebSocket > v2ray.com/core/transport/internet/websocket: failed to dial to (wss://v2fly.eveaz.com/ws/): > x509: certificate signed by unknown authority] > v2ray.com/core/common/retry: all retry attempts failed

以上更新补充步骤到此结束。

6、其他补充:

6.1、每次修改v2ray的config.json后,都需要重新启动v2ray,重启命令如下:

systemctl restart v2ray

6.2、如果您需要卸载v2ray,请使用以下命令:

`bash v2ray.com/core/proxy/vmess/outbound: failed to find an available destination > v2ray.com/core/common/retry: [v2ray.com/core/transport/internet/websocket: failed to dial WebSocket > v2ray.com/core/transport/internet/websocket: failed to dial to (wss://v2fly.eveaz.com/ws/): > dial tcp 104.27.140.57:443: operation was canceled v2ray.com/core/transport/internet/websocket: failed to dial WebSocket > v2ray.com/core/transport/internet/websocket: failed to dial to (wss://v2fly.eveaz.com/ws/): > dial tcp: operation was canceled] > v2ray.com/core/common/retry: all retry attempts failed

2020/10/31 09:52:59 tcp:127.0.0.1:18215 accepted tcp:medium.com:443 [proxy]`

7.2、其他报错详见第一篇文章8、12、13步骤。