10.2 V2Ray 配置
本节介绍 V2Ray 和 Xray-core 在 FreeBSD 系统中的安装与配置方法。V2Ray 和 Xray-core 的配置基本相同,配置文档可以在各自的官方文档中找到,Xray 完全可以参考 V2Ray 的配置方法,二者在架构设计和配置语法上保持高度兼容性。
安装 V2Ray
V2Ray 是一款常用的代理软件,以下是其安装方法。FreeBSD 提供了两种标准的软件安装途径:pkg 二进制包管理和 Ports 源码编译系统。
安装 V2Ray
使用 pkg 安装 V2Ray,这是最便捷的二进制安装方式:
# pkg install v2ray或者使用 Ports 安装 V2Ray,适用于需要自定义编译选项的场景:
# cd /usr/ports/net/v2ray/
# make install clean安装 Xray-core
Xray-core 是 V2Ray 的一个分支,以下是其安装方法。Xray-core 在保持 V2Ray 核心功能的基础上,进行了性能优化和功能扩展。
也可使用 pkg 安装 Xray-core:
# pkg install xray-core或者使用 Ports 安装 Xray-core:
# cd /usr/ports/security/xray-core/
# make install clean启动代理软件
安装完成后,需要启动代理软件。如果事先已有代理客户端,可以将客户端节点配置导出并复制到 FreeBSD 系统中,例如使用 Windows 版本的 V2RayN 导出配置文件,假设导出的文件名为 config.json,然后执行以下命令。这种跨平台配置迁移方法利用了 JSON 配置文件的平台无关性。
使用指定的配置文件启动 V2Ray,通过
-c参数显式指定配置文件路径:
使用指定的配置文件启动 Xray,其命令行语法与 V2Ray 保持一致:
此时,代理软件应已成功启动,可通过日志输出或进程状态进行验证。
配置代理参数
代理软件启动后,需要对相关软件进行代理参数配置。此时可打开 config.json,找到对应的 inbounds 属性。inbounds 是一个数组,其中的每个元素表示一项入站接口配置,包括监听地址、端口号和代理协议类型。这种入站-出站的架构设计是 V2Ray/Xray 的核心特点,实现了流量的灵活路由。在需要使用代理的软件中,将代理服务器地址和端口号设置为此处对应的值。
配置浏览器使用代理(以 Firefox 为例)
浏览器是最常用的网络访问工具,即使代理软件在后台成功运行,浏览器仍需手动指向代理端口,因为浏览器默认采用系统直连方式访问网络。
1. 查找端口:
打开配置文件 config.json,在 inbounds 字段下确认端口号。通常 Windows 导出的配置中,SOCKS5 端口为 10808,HTTP 端口为 10809,这是主流客户端的默认端口分配。
例如,其中一个入站接口的 protocol 为 http,listen 为 127.0.0.1,port 为 10809,这表示该入站接口在本地环回地址的 10809 端口监听 HTTP 代理请求。
2. Firefox 设置:
打开设置 → 网络设置 → 代理服务器
选择“手动代理配置”
对于 HTTP 代理:将地址设置为
127.0.0.1,端口设置为 10809对于 SOCKS 代理:将 SOCKS 主机填写为
127.0.0.1,端口填写为 10808重要: 勾选底部的“使用 SOCKS v5 时代理 DNS”(Proxy DNS when using SOCKS v5),这一步对绕过 DNS 污染至关重要,因为它将域名解析请求也通过代理服务器转发
配置终端命令行程序
除了浏览器,终端命令行程序也是常用的网络访问工具。不同软件的代理设置方式差异较大,整体较为分散。对于桌面软件,通常需要在各自的设置界面中手动配置对应的代理服务器。对于终端命令行程序,如需使用代理,配置过程相对简单。大多数终端命令会读取 HTTP_PROXY、HTTPS_PROXY 和 ALL_PROXY 这三个环境变量,并根据其取值自动使用相应的代理,这是 Unix-like 系统中命令行工具的标准配置机制。
下面的命令适用于 sh、bash、zsh,这些 Bourne 系列 Shell 使用相同的环境变量设置语法:
设置完成后,可在 Firefox 浏览器中访问网页,并观察 V2Ray 输出的日志,即可确认浏览器流量已通过代理转发。终端命令同样会通过代理访问网络,但部分命令对环境变量的支持方式不同,请根据具体软件查阅其代理配置方法,因为并非所有命令行工具都遵循这一环境变量约定。
代理流量分流
为了提高网络访问效率,部分网址并不需要通过代理服务器访问,例如境内网站或本地网络资源。此时需要对网络流量进行分流处理,使一部分流量通过代理转发,另一部分流量采用直连方式访问。这种分流机制是代理系统的核心功能之一,旨在优化网络访问性能和资源利用。
打开 config.json 文件,找到对应的 routing 属性,其中的 rules 子属性用于配置 V2Ray 的流量分流规则。在 rules 中可以配置多条分流规则,每条规则通常包含 ip 或 domain 等匹配条件。代理流量通常包含域名和 IP 地址信息。当 IP 或域名匹配到某条规则时,V2Ray 会根据 outboundTag 属性,将流量转发到对应的 outbounds 出站配置中,例如标签为 proxy(代理)、direct(直连)或 block(拦截)的出站。这种基于规则的路由机制提供了高度的灵活性。因此,只需将需要分流处理的域名或 IP 地址配置到相应的规则中即可。相关配置细节可参考 V2Ray 官方文档。实际上,在 V2Ray 客户端中导出配置文件时,通常已包含默认的流量分流规则。
V2Ray 还预置了 geosite.dat 和 geoip.dat 两个资源文件,其中 geosite.dat 按分类保存各类域名信息,geoip.dat 按分类保存各类 IP 地址信息。这两个资源文件实现了基于地理位置和域名分类的高效匹配。资源文件路径可通过设置环境变量 V2RAY_LOCATION_ASSET 指定,V2Ray 会自动在该路径下查找 geosite.dat 和 geoip.dat 文件。对于 Xray,则使用 XRAY_LOCATION_ASSET 环境变量来指定资源文件路径,二者在环境变量命名上保持一致的前缀约定。
例如,在直连规则中可以配置 geosite 中的 cn 域名走直连,这是一种典型的基于域名分类的分流策略:
V2Ray 社区提供的 cn 域名直连规则覆盖范围有限,分类也相对较少。可自行在 GitHub 上查找由社区维护的 geosite 和 geoip 文件,其中通常对“白名单模式”和“黑名单模式”的配置方式也有较为详细的说明。这两种模式代表了分流策略的两种基本范式:白名单模式仅允许特定流量通过代理,黑名单模式则仅拦截特定流量。
故障排除与未竟事宜
解决 Xray 资源文件加载失败(geosite.dat/geoip.dat)
在使用 Xray 时,可能会遇到资源文件加载失败的问题。FreeBSD 系统中,xray-core 的 pkg 安装的资源文件位于 /usr/local/share/xray-core/,但程序默认会在可执行文件同级目录 /usr/local/bin/ 查找。这一行为差异源于不同操作系统对资源文件默认路径的约定不同。若启动时报 open /usr/local/bin/geosite.dat: no such file or directory 错误,可采用以下两种方案:
方案一:终端临时运行或用户级配置
临时运行:
通过环境变量指定资源路径,这种方式适用于单次运行或测试场景:
注意:若想在后台持续运行,可在命令末尾添加 &,使进程脱离当前终端会话。
持久化配置:
根据所使用的 Shell,选择适合的方式进行持久化配置,使环境变量在每次登录时自动生效:
Shell 配置路径
不同 Shell 的配置文件路径有所不同,以下是常见 Shell 对应的配置文件路径及需要写入的配置组,这反映了 Unix 生态中不同 Shell 的设计差异:
sh:~/.profile 写入 A 组配置
bash:~/.bash_profile 或 ~/.profile 写入 A 组配置
csh:~/.cshrc 写入 B 组配置
A 组(sh/bash)
对于 sh 或 bash,需要在配置文件中添加以下环境变量设置,使用 Bourne Shell 标准的 export 语法:
B 组(csh)
对于 csh 或 tcsh,需要使用 setenv 命令进行配置,这是 C Shell 系列特有的环境变量设置方式:
配置完成后,请源化配置文件以使更改立即生效,例如,对于 sh 或 bash:source ~/.profile;对于 csh:source ~/.cshrc,或注销并重新登录。源化操作使当前 Shell 会话立即读取更新后的配置文件。对于系统服务运行方式,如 rc.conf,无需此配置,因为它通过 sysrc 注入环境变量,这是 FreeBSD 系统服务管理的标准机制。
创建符号链接
建立软链接,使 Xray 无论从何处启动都能找到资源文件,这种方式通过文件系统层面的重定向解决路径问题:
方案二:系统服务运行
这是最符合 FreeBSD 规范的方法,支持开机自启和统一管理,遵循了 FreeBSD 的 rc.d 服务管理框架。
1. 放置配置文件:
首先,将配置移动到系统默认目录并修正权限,确保服务进程能够正确读取配置文件:
FreeBSD 的
security/xray-core没有创建独立的xray用户/组,而是沿用net/v2ray的v2ray:v2ray,这是为了保持用户权限管理的一致性。
注意:若 /usr/local/etc/xray-core/ 目录下存在其他 .json 样例文件,建议将其移走或删除,避免配置冲突,因为 Xray 可能会扫描目录下的所有 JSON 文件。
2. 配置 rc.conf:
执行以下命令开启服务并注入环境,使用 sysrc 工具是 FreeBSD 中修改 rc.conf 的推荐方式:
3. 服务管理:
启动:
service xray start停止:
service xray stop临时禁用自启:在
/etc/rc.conf中注释掉xray_enable="YES"永久禁用自启:使用
service xray disable,此命令会自动在/etc/rc.conf中将xray_enable="YES"修改为xray_enable="NO",从而永久取消开机自启(直到手动重新启用)。注意,xray_enable="YES"仅控制开机自启动,而不影响手动启动或停止命令的执行;即使自启被禁用,仍可以使用service xray start和service xray stop来管理服务的运行状态。如果想重新启用自启,可使用service xray enable(这会将xray_enable改为"YES")。
最后更新于