本文为简洁版,基于我博客的两篇文章进行了更新和补充,采用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 | location /ws { |
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步骤。