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 |
V2ray服务端配置
1 | { |
这个是我的配置,采用vmess - websocket - tls
方案,其中port
、websocket-nginx-path
、uuid
根据自己的实际情况进行配置
Q&A
访问日志中出现
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+
)
解决办法
执行命令
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执行命令
vi /etc/systemd/system/v2ray.service
,在打开的文本中,有一项为[Service]
,在它下面添加一行Environment="V2RAY_VMESS_AEAD_FORCED=false"
,保存后执行systemctl daemon-reload
命令使改动生效,然后执行service v2ray start
启动服务,应该就可以了
启动报没有权限读写日志文件,类似于以下信息
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
即可