白小兔的小小站

既然选择了远方,便只顾风雨兼程

0%

V2ray的安装

V2ray实现科学上网。

安裝和更新 V2Ray

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

安裝最新發行的 geoip.dat 和 geosite.dat

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

移除 V2Ray

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

摘抄自 https://github.com/v2fly/fhs-install-v2ray

V2ray服务端配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{
"log":{
"loglevel":"warning",
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log"
},
"routing":{
"domainStrategy":"AsIs",
"rules":[
{
"type":"field",
"ip":[
"geoip:private"
],
"outboundTag":"block"
}
]
},
"inbounds":[
{
"listen":"127.0.0.1",
"port":${port},
"protocol":"vmess",
"settings":{
"clients":[
{
"id":"${uuid}"
}
]
},
"streamSettings":{
"network":"ws",
"wsSettings":{
"path":"${websocket-nginx-path}"
}
}
}
],
"outbounds":[
{
"protocol":"freedom",
"tag":"direct"
},
{
"protocol":"blackhole",
"tag":"block"
}
]
}

这个是我的配置,采用vmess - websocket - tls方案,其中portwebsocket-nginx-pathuuid根据自己的实际情况进行配置

Q&A

  1. 访问日志中出现invalid user: VMessAEAD is enforced,客户端无法正常使用

    1
    rejected common/drain: common/drain: drained connection > proxy/vmess/encoding: invalid user: VMessAEAD is enforced and a non VMessAEAD connection is received. You can still disable this security feature with environment variable v2ray.vmess.aead.forced = false . You will not be able to enable legacy header workaround in the future.
  • 原因

VMess MD5 认证信息 淘汰机制

VMessAEAD 协议已经经过同行评议并已经整合了相应的修改。 VMess MD5 认证信息 的淘汰机制已经启动。

自 2022 年 1 月 1 日起,服务器端将默认禁用对于 MD5 认证信息 的兼容。任何使用 MD5 认证信息的客户端将无法连接到禁用 VMess MD5 认证信息的服务器端。

在服务器端可以通过设置环境变量v2ray.vmess.aead.forced = true 以关闭对于 MD5 认证信息的兼容。 或者 v2ray.vmess.aead.forced = false 以强制开启对于 MD5 认证信息 认证机制的兼容 (不受到 2022 年自动禁用机制的影响) 。 (v4.35.0+)

  • 解决办法

    1. 执行命令service v2ray status,得到v2ray的运行状态,其中有一些信息,如

      a. Loaded: loaded (/etc/systemd/system/v2ray.service; enabled; vendor preset: disabled)

      b. ExecStart=/usr/local/bin/v2ray -config /usr/local/etc/v2ray/config.json

      如果只得到a,则执行cat /etc/systemd/system/v2ray.service拿到b

    2. 执行命令vi /etc/systemd/system/v2ray.service,在打开的文本中,有一项为[Service],在它下面添加一行Environment="V2RAY_VMESS_AEAD_FORCED=false",保存后执行systemctl daemon-reload命令使改动生效,然后执行service v2ray start启动服务,应该就可以了

  1. 启动报没有权限读写日志文件,类似于以下信息

    1
    main: failed to create server > v2ray.com/core/app/log: failed to initialize access logger > open /var/log/v2ray/access.log: permission denied
  • 原因

    用于启动v2ray的用户没有日志文件/夹的读写权限

  • 解决办法

    授权,一般v2ray是以nobody启动的,执行chown -R nobody /var/log/v2ray即可