Ubuntu 环境下 V2Ray 安装及使用教程 – wiki基地


Ubuntu 环境下 V2Ray 安装及使用超详细指南

引言

在当今复杂的网络环境中,用户对于网络连接的自由度、安全性和隐私保护提出了越来越高的要求。无论是为了访问区域限制的内容、保护个人隐私,还是为了在不安全的网络(如公共 Wi-Fi)下加密通信,一个强大而灵活的网络代理工具变得至关重要。V2Ray 就是这样一款备受推崇的工具。

V2Ray (Project V) 是一个核心组件集合,旨在构建一个定制化的网络环境。与许多传统的代理协议(如 Shadowsocks)相比,V2Ray 提供了更丰富的功能、更灵活的配置以及更强的伪装能力。它支持多种协议(如 VMess、Shadowsocks、SOCKS、HTTP 等),多种传输方式(如 TCP、mKCP、WebSocket、HTTP/2 等),并内置了强大的路由功能,可以根据用户需求实现精细化的流量分流。

本教程旨在为 Ubuntu 用户提供一个全面、详细的指南,涵盖从 V2Ray 的安装、服务器端与客户端的配置,到实际使用和基础故障排查的全过程。无论您是希望搭建自己的 V2Ray 服务器,还是仅仅需要在 Ubuntu 客户端上连接到一个已有的 V2Ray 服务,本文都将为您提供清晰的步骤和必要的解释。

本文主要内容:

  1. V2Ray 简介与优势:简要介绍 V2Ray 及其特点。
  2. 准备工作:安装 V2Ray 前需要满足的条件。
  3. V2Ray 安装:通过官方脚本在 Ubuntu 上安装 V2Ray。
  4. V2Ray 服务器端配置:详解 config.json 文件,以 VMess + TCP 为例进行配置。
  5. V2Ray 客户端配置:配置 Ubuntu 客户端以连接 V2Ray 服务器。
  6. 运行与管理 V2Ray 服务:启动、停止、重启 V2Ray 服务及查看状态。
  7. 客户端系统代理设置:配置 Ubuntu 系统或应用程序使用 V2Ray 代理。
  8. 验证 V2Ray 连接:测试代理是否生效。
  9. 进阶话题(简介):如 TLS、WebSocket、路由规则等。
  10. 常见问题与故障排查:提供一些基础的排查思路。
  11. 卸载 V2Ray:如何从系统中移除 V2Ray。
  12. 总结

注意:使用 V2Ray 及类似工具时,请务必遵守当地法律法规,并尊重网络服务提供商的使用协议。本文仅作技术探讨,请勿用于非法用途。


1. V2Ray 简介与优势

V2Ray 是 Project V 项目下的一个核心工具,它是一个模块化的代理软件包,可以帮助用户建立专属的网络代理服务。其主要优势包括:

  • 多协议支持:原生支持 VMess、Shadowsocks、SOCKS、HTTP 等多种协议,兼容性强。VMess 是 V2Ray 的核心协议,具有较好的性能和安全性。
  • 多传输方式:支持 TCP、mKCP(基于 KCP 协议的优化)、WebSocket、HTTP/2、Domain Socket、QUIC 等多种底层传输方式,可以有效伪装流量,对抗 GFW 等深度包检测(DPI)系统。
  • 灵活的路由功能:内置强大的路由模块,可以根据域名、IP、端口、协议等多种条件进行流量分流,实现国内外流量分离、广告屏蔽等高级功能。
  • 多入口多出口:支持配置多个入站(Inbound)和出站(Outbound)连接,可以同时监听多个端口,使用不同协议,并将流量转发到不同的目的地。
  • 流量伪装:结合 WebSocket + TLS 或 HTTP/2 + TLS 等方式,可以将代理流量伪装成正常的 HTTPS 流量,增强隐蔽性。
  • 跨平台:支持 Linux、Windows、macOS、Android、iOS 等多种操作系统。
  • 开源与活跃社区:代码开源,社区活跃,持续更新迭代。

2. 准备工作

在开始安装 V2Ray 之前,请确保满足以下条件:

  1. 一台运行 Ubuntu 的设备:可以是本地虚拟机、物理机,或者是一台 VPS(虚拟专用服务器)。推荐使用较新的 Ubuntu LTS 版本(如 20.04, 22.04)。
  2. sudo 权限:安装和配置 V2Ray 需要管理员权限。
  3. 稳定的网络连接:用于下载安装脚本和 V2Ray 程序。
  4. (可选,服务器端)公网 IP 地址:如果您要搭建 V2Ray 服务器供外部访问,需要一个公网 IP。
  5. (可选,服务器端)域名:如果希望使用 TLS 加密(强烈推荐),需要一个域名并将其解析到服务器的公网 IP。
  6. 文本编辑器:熟悉使用 nano, vim 或其他命令行文本编辑器,用于修改配置文件。

3. V2Ray 安装

V2Ray 官方提供了一个便捷的安装脚本,可以自动完成下载、安装和设置系统服务。这是在 Linux 系统上安装 V2Ray 的推荐方式。

打开 Ubuntu 终端,执行以下命令下载并运行官方安装脚本:

bash
sudo apt update && sudo apt install curl wget unzip -y
bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)

命令解释

  • sudo apt update && sudo apt install curl wget unzip -y:更新软件包列表,并安装 curlwgetunzip 工具,这些是执行安装脚本和后续操作可能需要的依赖。
  • bash <(curl -L ...):通过 curl 下载官方安装脚本 (install-release.sh),并通过 bash 直接执行。-L 参数让 curl 跟随重定向。

脚本执行过程

该脚本会自动执行以下操作:

  1. 检测系统架构:判断是 x86_64, arm64 还是其他架构。
  2. 下载最新稳定版 V2Ray:从 GitHub Releases 下载对应架构的 V2Ray 压缩包。
  3. 解压文件:将 V2Ray 可执行文件 (v2ray) 和 GeoIP/GeoSite 数据文件 (geoip.dat, geosite.dat) 等解压到指定目录。根据 FHS (Filesystem Hierarchy Standard) 标准,主要文件通常安装在:
    • 可执行文件: /usr/local/bin/v2ray
    • 配置文件目录: /usr/local/etc/v2ray/
    • 数据文件: /usr/local/share/v2ray/
    • 日志文件目录: /var/log/v2ray/
    • Systemd 服务文件: /etc/systemd/system/v2ray.service
  4. 创建配置文件:在 /usr/local/etc/v2ray/ 目录下生成一个默认的 config.json 文件(内容比较简单,需要后续修改)。
  5. 创建日志目录:创建 /var/log/v2ray/ 并设置权限。
  6. 设置 Systemd 服务:创建并配置 v2ray.service 文件,使 V2Ray 可以通过 systemctl 命令进行管理(如启动、停止、开机自启)。
  7. 启动 V2Ray 服务:安装完成后,默认会尝试启动 V2Ray 服务。

安装成功后,您应该会看到类似 “V2Ray installed.” 的提示信息。

验证安装

可以通过检查 V2Ray 版本来验证安装是否成功:

“`bash
/usr/local/bin/v2ray –version

或者如果 /usr/local/bin 在你的 PATH 中

v2ray –version
“`

如果看到 V2Ray 的版本信息输出,则表示安装成功。


4. V2Ray 服务器端配置 (以 VMess + TCP 为例)

V2Ray 的核心在于其配置文件 config.json。默认安装后,配置文件位于 /usr/local/etc/v2ray/config.json。我们需要根据自己的需求对其进行修改。

重要提示:JSON 格式对语法要求严格,任何一个逗号、括号的错误都可能导致 V2Ray 无法启动。修改前建议备份原始文件,修改后可以使用 v2ray -test -config /path/to/config.json 命令检查语法。

配置目标:搭建一个使用 VMess 协议、TCP 传输的 V2Ray 服务器。

步骤

  1. 备份默认配置
    bash
    sudo cp /usr/local/etc/v2ray/config.json /usr/local/etc/v2ray/config.json.bak

  2. 编辑配置文件:使用你喜欢的文本编辑器打开配置文件。例如,使用 nano
    bash
    sudo nano /usr/local/etc/v2ray/config.json

  3. 修改配置内容:将文件内容替换为以下示例配置,并根据注释进行修改。

    json
    {
    // 日志配置
    "log": {
    "access": "/var/log/v2ray/access.log", // 访问日志路径
    "error": "/var/log/v2ray/error.log", // 错误日志路径
    "loglevel": "warning" // 日志级别:debug, info, warning, error, none
    },
    // 入站连接配置 (接收来自客户端的连接)
    "inbounds": [
    {
    "port": 10086, // 服务器监听的端口,可以自定义,确保未被占用且防火墙允许
    "protocol": "vmess", // 使用 VMess 协议
    "settings": {
    "clients": [
    {
    "id": "YOUR_UUID_HERE", // 用户的 UUID,必须与客户端配置一致,强烈建议生成一个新的 UUID
    "alterId": 64, // AlterID,建议保持 64 或更低,与客户端一致
    "security": "auto" // 加密方式,推荐 auto (会优先使用 AEAD 加密)
    }
    // 可以添加更多 client 对象来支持多个用户
    ],
    "disableInsecureEncryption": false // 对于旧客户端兼容性,可以设为 false,但新设置推荐 true
    },
    "streamSettings": {
    "network": "tcp", // 使用 TCP 传输
    "tcpSettings": {
    "header": {
    "type": "none" // 不使用 TCP 头部伪装
    }
    }
    },
    "sniffing": {
    "enabled": true, // 开启流量嗅探,用于识别目标地址
    "destOverride": ["http", "tls"] // 根据嗅探结果覆盖目标地址,改善访问国内网站的体验
    }
    }
    ],
    // 出站连接配置 (将处理后的流量发送出去)
    "outbounds": [
    {
    "protocol": "freedom", // 直连协议,将流量直接发送到目标服务器
    "settings": {}
    },
    {
    "protocol": "blackhole", // 黑洞协议,用于阻止特定流量(如下面的路由规则中会用到)
    "settings": {},
    "tag": "blocked" // 设置一个标签,方便路由规则引用
    }
    ],
    // (可选) 路由配置
    "routing": {
    "domainStrategy": "AsIs", // 域名解析策略
    "rules": [
    // 示例:阻止 BT 流量 (需要 geosite:private 数据)
    // {
    // "type": "field",
    // "outboundTag": "blocked",
    // "domain": ["geosite:private"]
    // },
    // 示例:阻止广告 (需要 geosite:category-ads-all 数据)
    // {
    // "type": "field",
    // "outboundTag": "blocked",
    // "domain": ["geosite:category-ads-all"]
    // }
    ]
    }
    // (可选) DNS 配置
    // "dns": {
    // "servers": [
    // "https://dns.google/dns-query", // DoH (DNS over HTTPS)
    // "1.1.1.1", // Cloudflare DNS
    // "8.8.8.8", // Google DNS
    // "localhost"
    // ]
    // }
    }

  4. 重要参数解释与修改

    • port: 服务器监听的端口号。选择一个不常用的端口(如 10000 以上),并确保服务器的防火墙(如 ufw)允许此端口的 TCP 入站连接。例如,如果使用 ufw
      bash
      sudo ufw allow 10086/tcp
      sudo ufw reload
    • id (UUID): 这是用户的唯一标识符,极其重要。必须替换 "YOUR_UUID_HERE"。你可以使用在线 UUID 生成器,或者在 Linux 终端中使用 uuidgen 命令生成:
      bash
      uuidgen

      将生成的 UUID 粘贴到配置文件中。这个 UUID 需要提供给客户端使用
    • alterId: 用于增加 Vmess 连接的随机性,对抗探测。服务器和客户端必须一致。一般保持 64 或默认值即可。
    • network: 传输协议,这里是 tcp。后续可以改为 ws (WebSocket), h2 (HTTP/2) 等实现伪装。
    • log: 配置日志级别和路径,有助于排查问题。warning 是一个比较均衡的选择。
    • outbounds: 定义了流量如何从 V2Ray 发出。freedom 表示直接连接目标网站。blackhole 用于配合路由规则丢弃特定流量。
    • routing: 高级功能,可以实现分流。上面的示例注释掉了广告屏蔽和私有地址屏蔽规则。如果需要启用,取消注释并确保 /usr/local/share/v2ray/geosite.dat 文件存在且最新。
    • dns: 可以指定 V2Ray 使用的 DNS 服务器,避免 DNS 污染。
  5. 检查配置文件语法:修改完成后,保存文件。然后执行检查命令:
    bash
    sudo /usr/local/bin/v2ray -test -config /usr/local/etc/v2ray/config.json

    如果看到 Configuration OK. 表示配置文件语法正确。如果有错误,会提示具体位置和原因,请仔细检查 JSON 格式。

  6. 重启 V2Ray 服务:应用新的配置。
    bash
    sudo systemctl restart v2ray

  7. 检查服务状态:确认 V2Ray 服务是否正常运行。
    bash
    sudo systemctl status v2ray

    如果看到 active (running) 字样,说明服务器端已成功启动并运行。按 q 退出状态查看。

至此,V2Ray 服务器端已基本配置完成。记下你设置的 服务器 IP 地址端口号 (port)UUID (id)AlterID (alterId),这些信息将在配置客户端时用到。


5. V2Ray 客户端配置 (Ubuntu 桌面环境)

现在,我们需要在另一台 Ubuntu 设备(或者同一台设备的不同配置,但不常见)上配置 V2Ray 客户端,以连接到刚刚设置好的服务器。

安装 V2Ray

客户端同样需要安装 V2Ray 核心程序。使用与服务器端相同的安装方法:

bash
sudo apt update && sudo apt install curl wget unzip -y
bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)

配置客户端 config.json

客户端的配置文件同样位于 /usr/local/etc/v2ray/config.json。我们需要修改它,使其连接到服务器。

  1. 备份并编辑
    bash
    sudo cp /usr/local/etc/v2ray/config.json /usr/local/etc/v2ray/config.json.client.bak
    sudo nano /usr/local/etc/v2ray/config.json

  2. 修改配置内容:将文件内容替换为以下客户端配置示例,并根据你的服务器信息进行修改。

    json
    {
    // 日志配置 (可选,主要用于调试)
    "log": {
    "access": "/var/log/v2ray/access.log", // 访问日志路径 (确保目录存在且有权限,或改用 stdout)
    "error": "/var/log/v2ray/error.log", // 错误日志路径
    "loglevel": "warning" // 日志级别
    },
    // 入站连接配置 (本地代理接口)
    "inbounds": [
    {
    "port": 10808, // 本地 SOCKS 代理端口,应用程序将通过此端口连接 V2Ray
    "listen": "127.0.0.1", // 只监听本地回环地址,确保安全
    "protocol": "socks", // 提供 SOCKS5 代理
    "settings": {
    "auth": "noauth", // 不需要认证
    "udp": true, // 允许 UDP 转发 (如果服务器支持且需要)
    "ip": "127.0.0.1"
    }
    },
    {
    "port": 10809, // 本地 HTTP 代理端口 (可选)
    "listen": "127.0.0.1",
    "protocol": "http", // 提供 HTTP 代理
    "settings": {}
    }
    ],
    // 出站连接配置 (连接到 V2Ray 服务器)
    "outbounds": [
    {
    "protocol": "vmess", // 使用 VMess 协议连接服务器
    "settings": {
    "vnext": [
    {
    "address": "YOUR_SERVER_IP_OR_DOMAIN", // 你的 V2Ray 服务器 IP 地址或域名
    "port": 10086, // 你的 V2Ray 服务器端口 (与服务器端 inbounds 配置一致)
    "users": [
    {
    "id": "YOUR_UUID_HERE", // 你的 V2Ray 服务器 UUID (与服务器端 clients.id 一致)
    "alterId": 64, // AlterID (与服务器端 clients.alterId 一致)
    "security": "auto" // 加密方式 (与服务器端 clients.security 匹配)
    }
    ]
    }
    ]
    },
    "streamSettings": {
    "network": "tcp", // 使用 TCP 传输 (与服务器端 streamSettings.network 一致)
    "tcpSettings": {
    "header": {
    "type": "none" // (与服务器端 tcpSettings.header.type 一致)
    }
    }
    },
    "tag": "proxy" // 设置一个标签,方便路由规则引用
    },
    {
    "protocol": "freedom", // 直连协议
    "settings": {},
    "tag": "direct" // 标签:直连
    },
    {
    "protocol": "blackhole", // 黑洞协议
    "settings": {},
    "tag": "block" // 标签:阻止
    }
    ],
    // (可选) 路由配置 (客户端常用,实现分流)
    "routing": {
    "domainStrategy": "IPIfNonMatch", // 如果域名不匹配任何规则,则解析其 IP 进行匹配
    "rules": [
    // 规则 1: 直连中国大陆 IP (需要 geoip:cn 数据)
    {
    "type": "field",
    "outboundTag": "direct",
    "ip": ["geoip:cn", "geoip:private"] // 国内 IP 和私有地址直连
    },
    // 规则 2: 直连中国大陆域名 (需要 geosite:cn 数据)
    {
    "type": "field",
    "outboundTag": "direct",
    "domain": ["geosite:cn"] // 国内域名直连
    },
    // 规则 3: 阻止广告 (需要 geosite:category-ads-all 数据)
    // {
    // "type": "field",
    // "outboundTag": "block",
    // "domain": ["geosite:category-ads-all"]
    // },
    // 规则 4: 其他所有流量走代理 (默认)
    {
    "type": "field",
    "outboundTag": "proxy",
    "network": "tcp,udp" // 匹配 TCP 和 UDP 流量
    }
    ]
    }
    // (可选) DNS 配置
    // "dns": {
    // "servers": [
    // "https://dns.google/dns-query",
    // "1.1.1.1",
    // "8.8.8.8",
    // "localhost"
    // ]
    // }
    }

  3. 重要参数解释与修改

    • inbounds.port (10808): 这是 V2Ray 在本地监听的 SOCKS5 代理端口。你的应用程序(如浏览器、下载工具)需要配置使用 127.0.0.1:10808 这个代理。你可以根据需要修改端口号。
    • inbounds.port (10809): 这是可选的本地 HTTP 代理端口。
    • outbounds.settings.vnext.address: 必须修改为你的 V2Ray 服务器的公网 IP 地址或已解析的域名。
    • outbounds.settings.vnext.port: 必须修改为你的 V2Ray 服务器监听的端口(示例中是 10086)。
    • outbounds.settings.vnext.users.id: 必须修改为你在服务器端配置的 UUID。
    • outbounds.settings.vnext.users.alterId: 必须与服务器端配置的 alterId 一致。
    • outbounds.streamSettings.network: 必须与服务器端配置的传输方式一致(示例中是 tcp)。
    • routing: 客户端的路由配置非常有用。上述示例实现了:
      • 国内 IP (geoip:cn) 和私有地址 (geoip:private) 直连 (direct)。
      • 国内域名 (geosite:cn) 直连。
      • (可选)屏蔽广告域名 (block)。
      • 其他所有流量都通过代理 (proxy) 出去。
      • 要使路由规则生效,需要确保 /usr/local/share/v2ray/geoip.dat/usr/local/share/v2ray/geosite.dat 文件存在且是最新版本。可以使用官方脚本更新:
        bash
        sudo bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-dat-release.sh)
  4. 检查配置文件语法
    bash
    sudo /usr/local/bin/v2ray -test -config /usr/local/etc/v2ray/config.json

    确保显示 Configuration OK.

  5. 重启 V2Ray 服务
    bash
    sudo systemctl restart v2ray

  6. 检查服务状态
    bash
    sudo systemctl status v2ray

    确认服务 active (running)

现在,V2Ray 客户端核心服务已经在后台运行,并在本地 127.0.0.110808 端口提供了 SOCKS5 代理服务,10809 端口提供了 HTTP 代理服务。


6. 运行与管理 V2Ray 服务

通过 systemctl 命令可以方便地管理 V2Ray 服务(无论是服务器端还是客户端):

  • 启动 V2Ray 服务
    bash
    sudo systemctl start v2ray
  • 停止 V2Ray 服务
    bash
    sudo systemctl stop v2ray
  • 重启 V2Ray 服务(应用新配置后使用):
    bash
    sudo systemctl restart v2ray
  • 查看 V2Ray 服务状态
    bash
    sudo systemctl status v2ray

    这会显示服务是否正在运行、运行时间、主进程 ID 以及最近的日志条目。
  • 设置开机自启
    bash
    sudo systemctl enable v2ray
  • 取消开机自启
    bash
    sudo systemctl disable v2ray
  • 查看实时日志 (有助于调试):
    bash
    sudo journalctl -u v2ray -f

    Ctrl+C 退出查看。也可以直接查看配置文件中指定的日志文件:
    bash
    sudo tail -f /var/log/v2ray/error.log
    sudo tail -f /var/log/v2ray/access.log

手动运行 V2Ray (用于调试)

如果 systemctl 启动失败,可以尝试手动在前台运行 V2Ray 以获取更详细的错误输出:

bash
sudo /usr/local/bin/v2ray -config /usr/local/etc/v2ray/config.json

这将直接在终端打印日志信息。按 Ctrl+C 停止。


7. 客户端系统代理设置

仅仅运行 V2Ray 客户端服务是不够的,还需要配置你的应用程序(如浏览器)或整个系统来使用 V2Ray 提供的本地代理。

方法一:配置系统全局代理 (GNOME 桌面环境)

适用于 Ubuntu 默认的 GNOME 桌面环境。

  1. 打开 “设置” (Settings)。
  2. 导航到 “网络” (Network) 或 “Wi-Fi”/”有线连接” (Wired Connection) 部分。
  3. 找到当前连接的网络,点击旁边的齿轮图标⚙️进行设置。
  4. 切换到 “网络代理” (Network Proxy) 标签页。
  5. 选择 “手动” (Manual) 模式。
  6. 在 “SOCKS 主机” (SOCKS Host) 字段中,填入 127.0.0.1
  7. 在其旁边的 “端口” (Port) 字段中,填入 V2Ray 客户端配置中 inbounds 设置的 SOCKS 端口(示例中是 10808)。
  8. (可选) 如果你配置了 HTTP 代理 (端口 10809),也可以在 “HTTP 代理” 和 “HTTPS 代理” 字段中填入 127.0.0.110809。但通常只配置 SOCKS 就足够了,因为它能代理更多类型的流量。
  9. 点击 “应用” (Apply) 或关闭窗口保存设置。

现在,支持系统代理设置的应用程序(如 Firefox、Chrome/Chromium、系统更新等)应该会通过 V2Ray 连接网络。

方法二:配置终端代理 (环境变量)

如果你希望在当前终端会话中使用代理(例如使用 curl, wget, apt 等命令):

“`bash

配置 HTTP 和 HTTPS 代理 (如果 V2Ray 提供 HTTP 代理)

export http_proxy=”http://127.0.0.1:10809″
export https_proxy=”http://127.0.0.1:10809″

或者配置 SOCKS5 代理 (更通用)

export ALL_PROXY=”socks5://127.0.0.1:10808″

有些程序可能只认 http/https proxy,或者只认 all_proxy,或者需要 socks5h:// (让代理服务器解析域名)

export ALL_PROXY=”socks5h://127.0.0.1:10808″

验证 curl 是否通过代理

curl ipinfo.io

取消代理

unset http_proxy https_proxy ALL_PROXY
``
这种方法只对当前终端会话有效。要使其永久生效,可以将
export命令添加到~/.bashrc~/.zshrc文件末尾,然后运行source ~/.bashrcsource ~/.zshrc`。但全局设置环境变量代理可能影响系统某些内部通信,需谨慎。

方法三:使用 proxychains-ng (推荐用于终端)

proxychains-ng 是一个工具,可以强制特定命令通过代理运行,而无需设置全局环境变量。

  1. 安装 proxychains-ng
    bash
    sudo apt update
    sudo apt install proxychains-ng -y
  2. 配置 proxychains-ng:编辑其配置文件 /etc/proxychains.conf
    bash
    sudo nano /etc/proxychains.conf

    找到文件末尾的 [ProxyList] 部分。注释掉默认的 socks4 127.0.0.1 9050,添加你的 V2Ray SOCKS5 代理信息:
    ini
    [ProxyList]
    # add proxy here ...
    # meanwile
    # defaults set to "tor"
    # socks4 127.0.0.1 9050
    socks5 127.0.0.1 10808

    确保 proxy_dns 选项没有被注释掉(或根据需要配置),以通过代理进行 DNS 查询。保存文件。

  3. 使用 proxychains-ng 运行命令:
    bash
    proxychains4 curl ipinfo.io
    proxychains4 apt update # 通过代理更新 apt
    proxychains4 wget https://example.com/file.zip

    命令 proxychains4 后跟上你想要通过代理运行的任何命令。

方法四:配置浏览器代理 (推荐使用扩展)

虽然系统代理可以影响浏览器,但使用浏览器扩展(如 SwitchyOmega)可以提供更灵活的控制(例如,根据域名自动切换代理)。

  1. 在你的浏览器(Chrome/Firefox)中安装 SwitchyOmega 扩展。
  2. 打开 SwitchyOmega 选项。
  3. 创建一个新的代理配置(例如,命名为 “V2Ray”)。
  4. 选择代理协议为 SOCKS5。
  5. 服务器填入 127.0.0.1,端口填入 V2Ray 的 SOCKS 端口(如 10808)。
  6. 保存配置。
  7. 通过点击浏览器工具栏上的 SwitchyOmega 图标,选择你创建的 “V2Ray” 配置即可启用代理。选择 “直接连接” (Direct) 或 “系统代理” (System Proxy) 可禁用扩展控制的代理。
  8. (可选) 配置 SwitchyOmega 的自动切换模式,根据 GFWList 等规则列表自动判断哪些网站需要走代理。

8. 验证 V2Ray 连接

配置好客户端代理后,需要验证是否成功通过 V2Ray 服务器访问网络。

最简单的方法是查询你的公网 IP 地址:

  1. 不使用代理时,在终端运行:
    bash
    curl ipinfo.io

    或者在浏览器中访问 https://ipinfo.io 或类似网站。记下显示的 IP 地址,这应该是你的本地网络的公网 IP。

  2. 启用 V2Ray 代理后(通过系统设置、环境变量、proxychains 或浏览器扩展),再次运行:
    “`bash
    # 如果使用了环境变量或系统代理
    curl ipinfo.io

    如果使用了 proxychains-ng

    proxychains4 curl ipinfo.io

    或者在配置了代理的浏览器中访问 https://ipinfo.io

    “`
    如果 V2Ray 连接正常,这次查询到的 IP 地址应该是你的 V2Ray 服务器的公网 IP 地址

如果 IP 地址变成了服务器的 IP,恭喜你,V2Ray 已经成功运行并为你代理流量了!如果 IP 地址没变,或者访问超时/出错,请检查以下几点:

  • V2Ray 服务器和客户端是否都已启动并正常运行 (systemctl status v2ray)?
  • 客户端配置中的服务器地址、端口、UUID、AlterID 是否与服务器端完全一致?
  • 服务器防火墙是否已放行 V2Ray 监听的端口?
  • 客户端的代理设置是否正确指向了 V2Ray 监听的本地端口(如 127.0.0.1:10808)?
  • 服务器和客户端的时间是否同步?(时间差异过大可能导致 VMess 认证失败)

9. 进阶话题(简介)

V2Ray 功能强大,远不止于基础的 VMess + TCP。以下是一些常见的进阶配置方向:

  • TLS 加密:在服务器端配置 TLS,可以将 V2Ray 流量加密并伪装成标准的 HTTPS 流量,大大提高安全性与抗检测能力。通常需要一个域名,并使用 Nginx/Caddy 等 Web 服务器反向代理 V2Ray 端口,或者让 V2Ray 直接处理 TLS。
  • WebSocket (WS) 传输:将 V2Ray 流量承载于 WebSocket 协议之上。常与 TLS 结合(即 VMess + WS + TLS),可以更好地穿透防火墙,因为流量看起来就像普通的网页 WebSocket 通信。需要在服务器端配置 Web 服务器(如 Nginx)来处理 WebSocket 路径转发。
  • HTTP/2 (h2) 传输:类似 WebSocket,使用 HTTP/2 协议承载 V2Ray 流量,也需要配合 TLS 和 Web 服务器。
  • mKCP 传输:基于 KCP 协议,优化了 UDP 传输,在网络丢包严重的环境下可能有更好的速度表现,但 UDP 流量本身可能更容易被 QoS 或阻断。
  • 路由规则 (Routing):V2Ray 强大的路由功能可以实现非常精细的流量控制,如:
    • 国内直连,国外走代理。
    • 屏蔽广告、跟踪器。
    • 指定特定应用或网站走特定出口。
    • 负载均衡或故障转移(配置多个出站代理)。
  • 动态端口 (Dynamic Port):服务器端可以监听一个主端口和一系列动态端口,客户端连接时会协商使用一个动态端口,增加连接的隐蔽性。
  • 透明代理 (Transparent Proxy):在网关设备(如路由器)上配置 V2Ray,使局域网内所有设备的流量自动通过 V2Ray 处理,无需在每个设备上单独配置代理。配置较为复杂,通常需要结合iptables。
  • 图形化客户端 (GUI):虽然本教程基于命令行,但 Ubuntu 上也有一些图形化的 V2Ray 客户端,如 Qv2ray (需要 V2Ray core)、V2RayA 等,它们提供了更友好的界面来管理配置和切换服务器。

探索这些进阶功能需要更深入地理解 V2Ray 的配置文件结构和相关网络知识。


10. 常见问题与故障排查

  • 无法连接服务器
    • 检查服务器 IP、端口、UUID、AlterID 是否完全匹配。
    • 检查服务器防火墙是否放行端口。
    • 检查服务器 V2Ray 服务是否运行 (systemctl status v2ray)。
    • 检查服务器 /var/log/v2ray/error.log 日志有无报错。
    • 检查客户端 /var/log/v2ray/error.log 日志有无报错。
    • 尝试 ping 服务器 IP 是否可达。
    • 尝试用 telnet YOUR_SERVER_IP YOUR_SERVER_PORT 测试端口是否开放。
  • 配置文件语法错误
    • 使用 v2ray -test -config /path/to/config.json 检查。
    • 仔细核对 JSON 格式,特别是逗号、括号、引号。
    • 使用在线 JSON 校验工具辅助检查。
  • 连接后无法上网
    • 检查服务器端 outbounds 是否配置正确(通常应有 freedom 出口)。
    • 检查服务器 DNS 是否工作正常(可在服务器上 curl google.com 测试)。
    • 检查客户端路由规则是否配置错误,导致所有流量被 block 或错误路由。
    • 检查客户端系统或应用的代理设置是否正确。
  • VMess 认证失败 (常见于日志中)
    • 确认 UUID、AlterID 完全一致。
    • 检查服务器与客户端的系统时间是否同步! 时间差过大(默认超过 90 秒)会导致认证失败。使用 NTP 服务同步时间 (sudo apt install ntp && sudo systemctl start ntp)。
  • 路由规则不生效
    • 确认 geoip.datgeosite.dat 文件存在于 /usr/local/share/v2ray/ 且是最新版本。使用 install-dat-release.sh 脚本更新。
    • 检查路由规则的 outboundTag 是否与 outbounds 中定义的 tag 匹配。
    • 检查规则顺序,V2Ray 按顺序匹配规则。

11. 卸载 V2Ray

如果不再需要 V2Ray,可以使用官方脚本进行卸载:

bash
sudo bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh) --remove

注意:执行卸载命令前,请确保已停止 V2Ray 服务 (sudo systemctl stop v2ray)。

该命令会执行以下操作:

  1. 停止并禁用 V2Ray 服务。
  2. 删除 V2Ray 的可执行文件、配置文件目录、数据文件、日志目录和 Systemd 服务文件。

卸载后,建议手动检查相关目录(/usr/local/bin/v2ray, /usr/local/etc/v2ray/, /usr/local/share/v2ray/, /var/log/v2ray/, /etc/systemd/system/v2ray.service)是否已被完全移除。


12. 总结

V2Ray 是一个功能强大且配置灵活的网络代理工具。通过本教程,您应该已经掌握了在 Ubuntu 系统上安装 V2Ray、配置服务器端(以 VMess + TCP 为例)、配置客户端、管理服务以及设置系统代理的基本流程。

虽然初次配置可能稍显复杂,但 V2Ray 提供的稳定性和高级功能(如流量伪装、精细路由)使其成为应对复杂网络环境的有力武器。建议从基础配置开始,逐步探索 TLS、WebSocket 等进阶用法,以获得更好的安全性和连接体验。

请记住,熟悉 V2Ray 的配置文件结构 (config.json) 是精通 V2Ray 的关键。多参考官方文档 (v2fly.org) 和社区资源,不断实践和调试,您将能够充分发挥 V2Ray 的潜力。

最后,再次强调,请在遵守法律法规的前提下,负责任地使用 V2Ray。祝您网络体验愉快!


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部