V2ray配置攻略

AKHYui2019-06-08 13:53:00工具搭建
## 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": 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@example.com"	

        }

     ]

    },

	"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": "t@t.tt"

                    }

                ]

            },

            "streamSettings": {

                "network": "ws",

                "wsSettings": {

          	 "path": "/user",

         	 "headers": {

           	 "Host": "about.gitlab.com"

          }

        }

               

            }

        },

		{

		  "port": {port},

		  "protocol": "vmess",

		  "settings": {

			"udp": false,

			"clients": [

			  {

				"id": "{uuid}",

				"alterId": {id},

				"email": "t@t.tt"

			  }

			],

			"allowTransparent": false

		  },

		  "streamSettings": {

			"network": "tcp",

			"tcpSettings": {

			  "header": {

				"type": "http"

          }

        }

      }

    }

    ]

}


关于v2+docker的使用方法

Docker是一个开放原始码软体专案,让应用程式部署在软体货柜下的工作可以自动化进行,借此在Linux作业系统上,提供一个额外的软体抽象层,以及作业系统层虚拟化的自动管理机制。(摘自维基百科open in new window)

以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 部署 V2Rayopen in new window

Last Updated 9/17/2025, 7:13:55 AM