这篇文章上次修改于 302 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
V2ray服务端官方安装方式
1.安装V2ray并校准时间
目前以下安装方法已不再适用
bash <(curl -L -s https://install.direct/go.sh) cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
应使用以下方法安装
curl -O https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh bash install-release.sh cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- 从旧指令迁移至新指令请阅读:Migrate from the old script to this
如果提示curl没有安装可以进行curl的安装
sudo -s #切换到root apt install curl -y #Ubuntu用这个 yum install curl -y #CentOS7用这个
2.脚本运行完后进入/etc/v2ray,找到config.json
vim /etc/v2ray/config.json
将配置写入config.json中
3.控制V2ray的运行service v2ray start ##运行V2ray service v2ray stop ##停止运行V2ray service v2ray status ##查看V2ray的日志 service v2ray reload ##重新载入V2ray service v2ray restart ##重启V2ray
4.运行V2ray并测试成功后,将V2ray设定为开机自启
systemctl enable v2ray ##开机自启 systemctl disable v2ray ##关闭开机自启
V2ray ws+tls+Nginx+CDN配置说明
1.申请SSL,有SSL的可以跳过这一步。
cd ~ git clone https://github.com/certbot/certbot cd certbot ./certbot-auto certonly --agree-tos -t --standalone -d [域名]
2.修改网站对应的Nginx配置文件。
ssl_protocols处可以改为:ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers处可以改为:
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
然后在当前server的最后一个"}"号之前加入:
location /v/ {
proxy_redirect off; proxy_pass http://127.0.0.1:{端口号}/; proxy_http_version 1.1; proxy_set_header Host "{网址}"; proxy_set_header Connection "Upgrade"; proxy_set_header Upgrade "WebSocket"; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_intercept_errors on;
}
#{端口号}处改为你要让v2ray运行的端口号(记得打开对应端口的防火墙)
#{网址}处写你的网址就行
3.修改V2ray的配置文件config.json{ "log" : { "access": "/var/log/v2ray/access.log", "error": "/var/log/v2ray/error.log", "loglevel": "info" }, "inbound": { "port": {端口}, "listen": "127.0.0.1", "protocol": "vmess", "settings": { "clients": [ { "id": "{UUID}", "level": 1, "alterId": 0, "security": "none" } ] }, "streamSettings": { "network": "ws", "security": "auto", "wsSettings": { "path": "/" } } }, "outbound": { "protocol": "freedom", "settings": {} } }
{端口}处填写V2ray运行端口
{UUID}处填写自己随机生成的UUID
4.在客户端测试
打开客户端
地址填写web的网址
端口443
用户ID是服务端中自己生成的UUID
传输协议选ws
伪装域名填写web的网址
路径填写/v/
底层传输安全选tls
进行连接测试
5.测试成功以后去cloudflare那里点亮对应解析记录中的灰色的云朵(未使用CDN时是灰色的,使用时是黄色)
VLESS协议
在VMESS协议配置文件上进行改动
{
"log" : {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "info"
},
"inbound": {
"port": {端口},
"listen": "127.0.0.1",
"protocol": "vless",
"settings": {
"clients": [
{
"id": "{UUID}",
"level": 1,
"alterId": 0,
"security": "none"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "ws",
"security": "auto",
"wsSettings": {
"path": "/"
}
}
},
"outbound": {
"protocol": "freedom",
"settings": {}
}
}
- 对protocol项进行更改,将"vmess"替换为"vless"
增添一个"decryption": "none"项
inboundDetour配置方法(弃用,详见inbounds配置方法)
可以使用剩余配置入口,在config.json中可以同时使用inbound和inboundDetour,inbound是主配置入口,inboundDetour是剩余配置入口。
{
"log" : {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "info"
},
"inbound": {
"port": {port},
"listen": "127.0.0.1",
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "{UUID}",
"level": 1,
"alterId": 100,
"security": "none"
}
]
},
"streamSettings": {
"network": "ws",
"security": "auto",
"wsSettings": {
"path": "/"
}
}
},
"inboundDetour": [
{
"port": {port},
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "{UUID}",
"level": 1,
"alterId": 0,
"email": "[email protected]"
}
]
},
"streamSettings": {
"network": "mkcp",
"kcpSettings": {
"mtu": 1350,
"tti": 20,
"uplinkCapacity":10,
"downlinkCapacity": 100,
"congestion": false,
"readBufferSize": 2,
"writeBufferSize": 2,
"header": {
"type": "utp",
"request": null,
"response": null
}
}
}
}
],
"outbound": {
"protocol": "freedom",
"settings": {}
}
}
inbound中之前讲过,不做赘述,把port和UUID填写上就可以
在inboundDetour配置中又配置了一个mkcp的协议,这样是可行的,同样补全port和UUID就可以了
inbounds配置方法
{
"log": {
"loglevel": "warning"
},
"routing": {
"domainStrategy": "AsIs",
"rules": [
{
"type": "field",
"ip": [
"geoip:private"
],
"outboundTag": "block"
}
]
},
"inbounds": [
{
"listen": "0.0.0.0",
"port": {port},
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "{uuid}",
"alterId": {id},
"email": "[email protected]"
}
]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/user",
"headers": {
"Host": "about.gitlab.com"
}
}
}
},
{
"port": {port},
"protocol": "vmess",
"settings": {
"udp": false,
"clients": [
{
"id": "{uuid}",
"alterId": {id},
"email": "[email protected]"
}
],
"allowTransparent": false
},
"streamSettings": {
"network": "tcp",
"tcpSettings": {
"header": {
"type": "http"
}
}
}
}
]
}
关于v2+docker的使用方法
Docker是一个开放原始码软体专案,让应用程式部署在软体货柜下的工作可以自动化进行,借此在Linux作业系统上,提供一个额外的软体抽象层,以及作业系统层虚拟化的自动管理机制。(摘自维基百科)
以CentOS7为例:
#更新yum源
sudo yum update
#安装docker
sudo yum install docker
#设定docker为开机启动
sudo systemctl enable docker
#打开docker
sudo service docker start
#利用docker搜索需要的容器
sudo docker search v2ray
#下载docker中的v2ray容器(v2ray官方容器为v2ray/official)
sudo docker pull v2ray/official
#查看已经下载好的容器
sudo docker images
#创建一个v2ray目录
sudo mkdir /etc/v2ray
#准备好一个config.json文件
#将config.json上传到/etc/v2ray中
cd /etc/v2ray
sudo chmod 744 config.json
#运行这个v2ray容器
sudo docker run -d --name v2ray -v /etc/v2ray:/etc/v2ray -p 8888:8888 v2ray/official v2ray -config=/etc/v2ray/config.json
#--name v2ray意为为这个容器命名为v2ray
#-d 后台运行程序并返回容器ID
#-v /etc/v2ray:/etc/v2ray指的是将当前系统的/etc/v2ray目录挂载到容器的/etc/v2ray
#-p 端口映射 格式是 -p [当前主机端口]:[容器端口] 如果config.json中用的是mKCP流量传输 需要加/udp 例如 -p 8888:8888/udp (记得防火墙放行该端口的udp流量) 这里的端口一定要和config.json中的端口保持一致
#运行完成后可以使用
sudo docker ps
#查看当前docker正在运行的容器
#重启vps以后无需再创建容器
#运行docker版v2ray
sudo docker container start v2ray
#停止docker版v2ray
sudo docker container stop v2ray
#重启docker版v2ray
sudo docker container restart v2ray
#查看v2ray运行日志
sudo docker container logs v2ray
#当你不想使用docker版v2ray时
#当你给容器命名为v2ray时才能用以下命令
#停止
sudo docker stop v2ray
#删除
sudo docker rm v2ray
#删除容器
sudo docker image rm v2ray/official
本文部分参考Docker 部署 V2Ray
没有评论
博主关闭了评论...