Project V(V2Ray) 入门

Conners Hua:本文以 Project V(V2Ray) V4 版本为例,旨在于讲解一些常用配置让大家能够快速上手,而不是讲述所有功能,希望大家能在上手后把官方文档多读几遍会更加了解。

Project V 是一个工具集合,它可以帮助你打造专属的基础通信网络。Project V 的核心工具称为V2Ray,其主要负责网络协议和功能的实现,与其它 Project V 通信。V2Ray 可以单独运行,也可以和其它工具配合,以提供简便的操作流程。

主要特性

  • 多入口多出口: 一个 V2Ray 进程可并发支持多个入站和出站协议,每个协议可独立工作。
  • 可定制化路由: 入站流量可按配置由不同的出口发出。轻松实现按区域或按域名分流,以达到最优的网络性能。
  • 多协议支持: V2Ray 可同时开启多个协议支持,包括 Socks、HTTP、Shadowsocks、VMess 等。每个协议可单独设置传输载体,比如 TCP、mKCP、WebSocket 等。
  • 隐蔽性: V2Ray 的节点可以伪装成正常的网站(HTTPS),将其流量与正常的网页流量混淆,以避开第三方干扰。
  • 反向代理: 通用的反向代理支持,可实现内网穿透功能。
  • 多平台支持: 原生支持所有常见平台,如 Windows、Mac OS、Linux,并已有第三方支持移动平台。

安装

本文以 Ubuntu Server 为例,如果是一台全新的系统,需要刷新源、更新软件以及安装 curl

# 刷新源及更新软件
sudo apt-get update && sudo apt-get upgrade
# 安装 curl
sudo apt-get curl
进入 su 环境
sudo su

接着就可以安装 Project V(V2Ray) 了

V2Ray Linux 安装脚本
bash <(curl -L -s https://install.direct/go.sh)

安装完成后需要自行配置,配置文件位于 /etc/v2ray/config.json

安装 VIM(可选)
sudo apt-get install vim

建议使用 VIM 编辑配置(可选)

编辑 V2Ray 配置
vi /etc/v2ray/config.json
V2Ray 配置
{
  "inbounds": [{
    "port": 17061,
    "protocol": "vmess",
    "settings": {
      "clients": [
        {
          "id": "1dccdbc2-c5aa-46c3-a068-ea590e3b46f9",
          "level": 1,
          "alterId": 64
        }
      ]
    }
  }],
  "outbounds": [{
    "protocol": "freedom",
    "settings": {}
  },{
    "protocol": "blackhole",
    "settings": {},
    "tag": "blocked"
  }],
  "routing": {
    "rules": [
      {
        "type": "field",
        "ip": ["geoip:private"],
        "outboundTag": "blocked"
      }
    ]
  }
}

可以看到如上为 V2Ray 默认配置内容,主要是 JSON 格式(自行 Google 了解什么是 JSON)主要分为三大部分:

  • inbounds – 入站连接配置
  • outbounds – 出站连接配置
  • routing – 路由配置

入站连接和出站连接简单来说进出服务器的服务配置,比如我们要配置一个 VMESS 或者 Shadowsocks 协议的代理给别人用,那么我们就是服务端,别人要用我们的服务就要连接到我们的服务器,所以就要把相关服务主要配置在入站连接,而有进就有出所以有另一些协议就要配置在出站连接。

而路由配置就是设定一些规则,比如不希望客户端能随便访问到服务器内网,或者不希望客户端用服务器进行 BT 下载(国外多数服务商禁止 BT 下载)造成麻烦,都可以在此进行设置。(反正当做客户端时也可以在此进行设置打到去广告等效果)

那这里小试牛刀的加上一个禁止 BT 下载的路由规则吧,在 VIM 进入 config.json 文件后,按「i」进入编辑模式,如下修改

V2Ray 配置禁止 BT 下载
{
  "inbounds": [{
    "sniffing": {
      "enabled": true,
      "destOverride": [
        "http",
        "tls"
      ]
    },
    "port": 17061,
    "protocol": "vmess",
    "settings": {
      "clients": [
        {
          "id": "1dccdbc2-c5aa-46c3-a068-ea590e3b46f9",
          "level": 1,
          "alterId": 64
        }
      ]
    }
  }],
  "outbounds": [{
    "protocol": "freedom",
    "settings": {}
  },{
    "protocol": "blackhole",
    "settings": {},
    "tag": "blocked"
  }],
  "routing": {
    "rules": [
      {
        "type": "field",
        "ip": ["geoip:private"],
        "outboundTag": "blocked"
      },
      {
        "type": "field",
        "protocol": [
          "bittorrent"
        ],
        "outboundTag": "blocked"
      }
    ]
  }
}

仔细观察上述配置和之前多了什么?因为是需要对网络做一些规则,所以在路由「routing」下的规则「rules」中配置

{
  "type": "field", // 目前只支持"field"这一个选项。
  "protocol": [ // 协议
    "bittorrent" // 除了 bittorrent 还有 http 和 tls
  ],
  "outboundTag": "blocked" // 屏蔽
}

而启用该功能需要启用「sniffing」所以需要在进站协议中添加

"sniffing": {
  "enabled": true,
  "destOverride": [
    "http",
    "tls"
  ]
}

特别注意的是新增的花括号前需要加上英文逗号隔开,前文说了 V2Ray 的配置文件是 JSON 格式,对于新手来说极易出错,所以建议使用编辑器(如 VSCode)进行编辑,不然 Google 一下「JSON 在线验证」检查下有没有配置错误再修改服务端配置。

完成编辑后按「Ctrl+C」输入「:wq」即可保存并退出

管理

V2Ray 服务管理
# 启动 V2Ray
service v2ray start
# 重启 V2Ray
service v2ray restart
# 停止 V2Ray
service v2ray stop
# 查看 V2ray 状态
service v2ray status

# 重新读取配置
service v2ray reload
# 强制重新读取配置
service v2ray reload

以上命令为如何开启、停止 V2Ray 服务,而在编辑配置 V2Ray 后也需要重新读取配置或重启服务,而有时配置完成且重启后 V2Ray 还是无法使用,这时候就需要使用查看 V2Ray 状态的命令来检查 V2Ray 是否是正常运行了(显示绿色的 running)。

 

Conners Hua

欢迎加入群聊: Telegram 群聊 | QQ 群聊(不讨论敏感话题)

您可能还喜欢...

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据