wulabing v2ray一键脚本在重装后无法启动的解决办法 – 阳光实验室

今天我们的教程我们为大家介绍这么一个教程,有一个大神wulabing他写了一个可以一键配置vmess和vless协议的ws+tls的一键脚本,这个脚本帮助了很多想要通过ws+tls+nginx方式进行科学的小白用户。但是最近我们在实验的过程中发现了这个脚本所存在的一个问题,那就是一旦更换所要使用的域名再次进行配置时,在脚本运行重装v2ray之后这个脚本无论如何都无法启动和运行v2ray了,造成v2ray无法使用。今天的教程就为大家介绍一下问题的原因以及所要解决的办法。

 

首先我们说一下原因是什么,原因就是最近新开发的5.1.0版本的v2ray core(服务端)有问题,所出现的问题就是无法启动运行。而这个脚本默认只能下载最新版的v2ray core(服务端),由于只能下载最新版那么他默认只能下载5.1.0版本的,那结果自然就是无法启动运行了。

 

那么我们应该怎么解决呢?降级。退回到之前的稳定版本中去,也就是我们需要手动下载之前最稳定的那个版本,这里我们以4.45.2版本为例,这个版本就是上一个默认下载的版本,所以退回之前的版本那自然就可以稳定的启动运行了。

 

当然了,光是启动运行那还远远不够,由于我们自己更新的v2ray可能跟脚本的一些默认配置会不一样,因此我们需要进行一番设置上的调整,才能重新的运行起来。

 

接下来我们就来介绍一下遇到这种情况应该怎么去解决:

 

注意:前提是你是用的wulabing开发的v2ray脚本,其他开发者的脚本情况可能会不一样

 

如果我们运行了脚本中的14也就是卸载v2ray或者是运行了1也就是更换域名重装之后一旦脚本给下载了默认的新版本(5.1.0),那么接下来的步骤就是这个问题的解决办法。

 

脚本的运行过程我这里就省略掉了,毕竟傻瓜式的操作。前面的配置过程全部按照之前的要求去做,都做好了之后我们开始接下来的修复过程。

 

首先我们输入命令 systemctl status v2ray 看一下当前的状态,如果出现了红色的failed就是没有启动起来。这个时候如果还是去输入 systemctl start v2ray 或者 systemctl restart v2ray 再次输入 systemctl status v2ray 看到的依然是failed,原因我刚才说了这个版本有错误,根本就无法启动运行。

 

再就是可以输入 systemctl –failed 来查询未启动的服务,当里面的 v2ray.service 后面跟着红色的 failed 时就说明没有启动运行

 

这个时候我们输入 v2ray version 命令查看一下版本,确认显示的就是5.1.0那这就是这个新版本程序出的问题

 

有博主们已经提醒过大家这个版本的v2ray有问题了,想了解的请看下面的内容:

 

https://ivpsr.com/2371.html

 

https://www.chhui.cn/post-961.html

 

确认了是这个新版本出的问题,那么我们接下来的解决办法就是自己更换一个老版本的v2ray core来运行

 

退回到老版本的办法就是我们自己重新下载老版本的v2ray安装即可,我们可以通过之前大神写的v2ray老版本下载脚本通过curl下载安装的方式实现

 

接下来我们输入以下的命令:

 

bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh) --version v4.45.2


v后面的就是所需下载的版本号

 

然后我们在运行完毕之后再输入 v2ray version 当里面的版本变成4.45.2之后,那么我们新的v2ray就装完了

 

接下来我们输入 systemctl enable v2ray 设置为开机自动运行

 

输入 systemctl is-enabled v2ray.service 查看是否启动开机自动运行,当输出内容为enabled为启动开机运行

 

输入 systemctl start v2ray 启动,再输入 systemctl status v2ray 查看状态,当出现绿色的active(running)为启动运行成功

 

这一步只是让v2ray启动运行了,但是并不能让v2ray上网。此时如果你执意去打开你的v2ray连接程序连接,连接程序的命令行里会得到一个无情的502 bad gateway网关错误的提示,最终无法上网。所以接下来的步骤才是最关键的,要进行一番设置才行。

 

我前面讲过,由于这不是脚本自动下载的v2ray,而是我们自己下的,那么一些配置和设置肯定是不一样的,那么我们就要改成他的默认设置才行。

 

/etc/v2ray/config.json这个config.json文件请不要动

 

config.json这个v2ray配置文件里面的内容在新安装时程序当然肯定是不会去动的,wulabing的脚本设置该文件的位置位于/etc/v2ray/config.json

 

但我们后面自己下载的v2ray的他指定的配置文件读取位置是不一样的,默认读取的文件位置位于/usr/local/etc/v2ray/config.json,这里面的文件是个默认的配置文件,根本就不是我们已经写好的v2ray配置文件,所以我们接下来要做的就是改掉配置文件的读取位置

 

输入 systemctl status v2ray 应该都能看到,里面-config后面跟的就是 /usr/local/etc/v2ray/config.json,所以我们要修改他的加载位置

 

同样的 v2ray.service 和 v2ray@.service 这个文件里的内容也跟我们之前配置的内容完全不一样了,所以我们要重新写好他们的内容再启动运行方可实现

 

第一个我们要先找到 /etc/systemd/system/v2ray.service 和 /etc/systemd/system/v2ray@.service 这两个service的程序运行文件

 

首先,我们要将 v2ray.service 和 v2ray@.service 文件里面的内容全部改掉,全部更换为以下的内容。可以下载文件后用编辑器修改保存后重新上传回这个位置,也可以用 vi 进行SSH编辑,命令就是在上面两个目录前面加上 vi 即可打开编辑(Insert键开始编辑、Esc键停止编辑、:wq!保存退出)

 

请按照下图内容进行编辑:

 

v2ray.service 

 

 

[Unit]
Description=V2Ray Service
After=network.target nss-lookup.target

[Service]
User=root
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
NoNewPrivileges=true
Environment=V2RAY_LOCATION_ASSET=/usr/local/lib/v2ray/
ExecStart=/usr/local/bin/v2ray -config /etc/v2ray/config.json
Restart=on-failure

[Install]
WantedBy=multi-user.target

 

v2ray@.service

 

 

[Unit]
Description=V2Ray Service
After=network.target nss-lookup.target

[Service]
User=root
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
NoNewPrivileges=true
Environment=V2RAY_LOCATION_ASSET=/usr/local/lib/v2ray/
ExecStart=/usr/local/bin/v2ray -config /etc/v2ray/%i.json
Restart=on-failure

[Install]
WantedBy=multi-user.target

 

大家注意红色部分,这里就是配置文件的路径,之前默认的v2ray.service文件里这个地方写的正是/usr/local/etc/v2ray/config.json,这就是一个不存在的json文件位置。因为脚本里json配置文件的位置是放在/etc/v2ray/config.json,所以我们要把配置文件加载位置改成这个目录里面。其实细心的可能都已经看到了,默认文件内容与上面修改后的文件内容其实是不一样的,比如User一个是nobody,而正确的配置是root,所以v2ray.service我们一定要使用上面的内容配置。

 

保存好了之后,接下来我们重新加载服务进程 systemctl daemon-reload

 

再输入 systemctl start v2ray (systemctl restart v2ray)启动服务

 

这个时候我们再次输入 systemctl status v2ray 我们看到-config的后面还是/usr/local/etc/v2ray/config.json,难道我们写错内容了?不是,虽然现在进程可以加载到这个配置文件了,但是依然没到我们指定的位置去加载。这就是说还是按原来的位置加载的,那么这应该怎么解决呢?

 

注意一下提示里面的/etc/systemd/system/v2ray.service.d目录下面有个10-donot_touch_single_conf.conf的这么一个conf配置文件

 

就是这个conf配置文件管理json配置文件的加载位置,所以上面的service只是其中一步,这一步才是最关键的

 

/etc/systemd/system/v2ray.service.d/10-donot_touch_single_conf.conf 就是这个文件,我们要修改一下这里面的路径

 

还是上面的方法,下载后用编辑器修改保存后上传回到该位置或者使用vi进行编辑(在这个目录前面加上vi即可编辑)

 

按照以下的内容进行修改:

 

 

[Service]
ExecStart=
ExecStart=/usr/local/bin/v2ray -config /etc/v2ray/config.json

 

还是将 -config 后面的/usr/local/etc/v2ray/config.json改成/etc/v2ray/config.json,保存之后接下来再执行一次 systemctl daemon-reload

 

再次输入 systemctl start v2ray (systemctl restart v2ray)启动服务

 

再次输入 systemctl status v2ray 我们看到此时里面的json配置文件加载目录已变更为wulabing脚本的默认json文件位置

 

在确认仍为active(running)没有提示报错之后,到这里我们的所有设置就全部完成了。现在我们打开连接软件看一下能不能连了,能正常上网了这就是大功告成了,问题终于解决了。如果你遇到了这方面的问题可以通过此方法解决问题,当然我们还是希望能解决一下这个错误,所有的补救措施都不如解决脚本本身的问题来的实在。

发表评论

邮箱地址不会被公开。 必填项已用*标注

9 × = 9