这篇文章上次修改于 390 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

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
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": 64,
          "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": 64,
              "security": "none"
            }
          ],
          "decryption": "none"
        },
        "streamSettings": {
          "network": "ws",
          "security": "auto",
          "wsSettings": {
            "path": "/"
          }
        }
      },
      "outbound": {
        "protocol": "freedom",
        "settings": {}
      }
    }
  • 对protocol项进行更改,将"vmess"替换为"vless"
  • 增添一个"decryption": "none"项

inboundDetour配置方法

可以使用剩余配置入口,在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": 100,
            "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就可以了


关于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