手动安装V2ray
在Ubuntu 20.4 上手动安装V2ray,因为发现自动安装脚本安装的版本不能正常工作;手动安装了稳定版本的v4.34。
校准时区
> timedatectl list-timezones | grep Shanghai
Asia/Shanghai
> sudo timedatectl set-timezone Asia/Shanghai
> date -R
Sat, 26 Jun 2021 18:03:36 +0800
对于 V2Ray,它的验证方式包含时间,就算是配置没有任何问题,如果时间不正确,也无法连接 V2Ray 服务器的,服务器会认为你这是不合法的请求。 所以系统时间一定要正确,只要保证时间误差在 90 秒 之内就没问题。
常规更新
sudo apt update && sudo apt upgrade && sudo apt autoremove
sudo apt install curl openssl
开启BBR
sudo bash -c "echo 'net.core.default_qdisc=fq' >> /etc/sysctl.conf"
sudo bash -c "echo 'net.ipv4.tcp_congestion_control=bbr' >> /etc/sysctl.conf"
# 重载生效
sudo sysctl --system
# 检查 - sysctl 命令验证配置是否生效
sudo sysctl net.core.default_qdisc # 结果是:net.core.default_qdisc = fq
sudo sysctl net.ipv4.tcp_congestion_control # 结果是:net.ipv4.tcp_congestion_control = bbr
lsmod | grep bbr # 可以看到 tcp_bbr
下载和解压
sudo apt update
sudo apt install wget unzip
wget https://github.com/v2fly/v2ray-core/releases/download/v4.34.0/v2ray-linux-64.zip
mkdir v2ray
unzip -d v2ray v2ray-linux-64.zip
V2Ray的程序目录文件详情情况:
- 其中v2ray和v2ctl是V2Ray的主程序和控制程序
- geoip.dat和geosite.dat是程序所需要数据文件
- systemd和systemv两个目录中包含了用于生成服务的文件
vpoint_vmess_freedom.json
,vpoint_socks_vmess.json
是配置文件
复制必须的程序到安装目录
准备安装在/usr/local/v2ray下,先创建目录,然后复制文件
cd v2ray
sudo mkdir /usr/local/v2ray
sudo cp v2* /usr/local/v2ray/
sudo cp geo* /usr/local/v2ray/
sudo mkdir /usr/local/etc/v2ray/
sudo cp vpoint_vmess_freedom.json /usr/local/etc/v2ray/config.json
最后一条命令是将当前的vpoint_vmess_freedom.json
配置文件复制到指定位置,并修改其为config.json
。
由于V2Ray是不区分服务端和客户端的,同一个程序可以配置成服务器也可以配置成客户端。
程序目录中的vpoint_vmess_freedom.json
一般用于配置服务器,而vpoint_socks_vmess.json
用于配置成为客户端。
设置systemctl
sudo cp v2ray.service /usr/lib/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable v2ray
sudo systemctl start v2ray
Linux命令生成uuid
cat /proc/sys/kernel/random/uuid
配置多用户
自行搭建好v2ray科学上网环境后,可以设置一个不同的端口或者id再分享。
v2ray一键脚本 运行完后,会输出配置文件路径,默认是 /etc/v2ray/config.json,其内容类似这样:
{
"log": {
"loglevel": "info",
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log"
},
"inbounds": [{
"port": 8888,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "6be0aa25-xxxx-xxxx-xxxx-75cd3485021f",
"level": 1,
"alterId": 53
}
]
}
}],
"outbounds": [{
"protocol": "freedom",
"settings": {}
},{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
}],
"routing": {
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "blocked"
}
]
}
}
v2ray多用户分成两种:同端口不同id,不同端口不同id。v2ray两种类型都支持,接下来分别做介绍。
同端口不同id
这是最简单的配置多用户方式。方法是编辑 /etc/v2ray/config.json 文件,在”clients“一节中增加新增用户配置。
例如在上面配置基础上增加一个用户:
{
"log": {
"loglevel": "info",
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log"
},
"inbounds": [{
"port": 8888,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "12345625-xxxx-xxxx-xxxx-75cd3485021f",
"level": 1,
"alterId": 53
},
{
"id": "12345625-xxxx-xxxx-xxxx-75cd3485021f",
"level": 1,
"alterId": 63 # 建议50-150之间的一个整数
}
]
}
}],
# 下面的内容保持不变
注意:“#”和后面的东西都不能出现在配置文件中,上面只是为了解释说明。
编辑好文件后,先检查修改后的配置是否有语法错误 cat /etc/v2ray/config.json | python -m json.tool
,
然后重启 v2ray:service v2ray restart
。
如果命令失败,或者 netstat -nltp | grep v2ray
输出为空,说明配置文件有错误,请仔细检查,改好后再重启。
接下来就可以用新的id和alterId配置客户端,其余信息保持不变。
不同端口不同id
如果希望端口也不一样,请按照如下步骤做:
首先编辑 /etc/v2ray/config.json 文件,按照”inbounds“格式新增入口和用户。例如新增一个端口和用户后,配置文件变成:
{
"log": {
"loglevel": "info",
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log"
},
"inbounds": [{
"port": 8888,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "12345625-xxxx-xxxx-xxxx-75cd3485021f",
"level": 1,
"alterId": 53
}
]
}
}, # 逗号不能省,原来这里是"}],"
# 以下是新增的配置
{
"port": 8889, # 端口是1000-65535之间的一个整数
"protocol": "vmess", # 也可以改成其他协议,如果你知道怎么配置的话
"settings": {
"clients": [
{
"id": "12345625-xxxx-xxxx-xxxx-75cd3485021f", # id可以用 /usr/bin/v2ray/v2ctl uuid生成
"level": 1, # 0或1都可以
"alterId": 57 # 建议50-150之间的一个整数
}
]
}
}],
# 新增内容结束
# 下面的内容保持不变
注意:“#”和后面的东西都不能出现在配置文件中,上面只是为了解释说明。
编辑好文件后,重启 v2ray:service v2ray restart
。
如果命令失败,或者 netstat -nltp | grep v2ray 输出为空,说明配置文件有错误,请仔细检查,改好后再重启。