使 tproxy 支持本机 docker 容器
使 tproxy 模式支持 docker 容器由于默认情况下 docker 加载的 iptables 网桥模块并不被 tproxy 所支持,v2rayA 在 tproxy 模式下会添加一条规则跳过 docker 容器的代理。而根据 springzfx/cgproxy#10 ,如果你不需要避免 hairpin nat 问题,可通过一些操作使得 tproxy 模式重新支持代理 docker 容器。 下面介绍利用透明代理生命周期钩子修改 iptables 规则使得 tproxy 支持 docker 容器。生命周期钩子的介绍见 生命周期钩子 一节。 编写如下脚本,将其存储于 /etc/v2raya/tproxy-hook.sh : 1234567891011121314151617181920212223242526272829303132333435363738394041#!/bin/bash# parse the argumentsfor i in "$@"; do case $i in --transparent-type=*) TY ...
v2rayA 生命周期钩子
使用 v2rayA 的 --transparent-hook 参数以及对应的环境变量 V2RAYA_TRANSPARENT_HOOK 可在透明代理启动前、启动后,停止前、停止后运行用户提供的程序,用户可在自定义程序中添加、删除或修改 iptables 规则、sysctl 规则或执行任意其他命令,以达成高级用法。v2rayA 参数的传递请参考 环境变量和命令行参数 一节中的说明。与其对应的,--core-hook 可在 v2ray-core 启动前、启动后,停止前、停止后运行用户提供的程序。 除了用户需要给 v2rayA 提供的一个参数外,v2rayA 还会在执行用户自定义程序时传入参数以告知上下文信息。用户可在自定义程序中解析传入的参数,以判断当前 v2rayA 的透明代理类型 (tproxy, redirect, system_proxy),以及当前所处阶段 (pre-start, post-start, pre-stop, post-stop)。 下表表示了 v2rayA 对应钩子类型在运行用户自定义程序时支持传入的参数。 钩子类型/参数 –stage –tra ...
将 v2rayA 部署于前缀路径中
Nginx下面例子中将 v2rayA 部署到 http://example.com:8080/v2raya 。注意,例中未包含 TLS 相关配置,建议添加 TLS 相关配置。 1234567891011121314151617181920212223http { map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 8080; server_name example.com; location ^~ /v2raya { proxy_pass http://bla:2017/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_se ...
群晖实现透明代理
安装也是采用Docker的方式,所以首先确认你的群晖系统是否支持Docker 补齐缺失的iptables模块按照 Docker安装 之后,启用redirect或tproxy透明代理模式,类似旁路由模式,就会遇到iptables缺失相关的报错。群晖系统是一个定制版Linux系统,透明代理需要的iptables相关模块并没有包含,所以解决方案就是补齐缺失的iptables模块,具体参考 syno-iptables 下载安装预编译模块或者自编译。 加载缺失的模块并启动容器在v2rayA启动时,为了确保所需的内核模块已经加载,可以覆盖默认的entrypoint为一个脚本,负责加载模块然后启动v2rayA,以下为docker run示例。 1234567891011docker run -d \ --restart=always \ --privileged \ --network=host \ --name v2raya \ -e V2RAYA_ADDRESS=0.0.0.0:2017 \ -v /lib/modules:/lib/modules \ -v /etc/re ...
如何编译v2rayA
准备构建环境确保你的系统上安装了 yarn、nodejs、git 和 golang。 Windows从 scoop 安装: 1scoop install yarn nodejs-lts go 如果你是在刚刚安装 scoop 之后运行该命令,那么你还需要安装 git 或 mingit。 建议安装 PowerShell Core,,如此 scoop 将能更好地工作(尤其是在旧版本 Windows 系统中)。可以从 GitHub 或 Microsoft Store 下载 PowerShell Core。 Arch Linux 及其衍生版1sudo pacman -S git yarn go 其它 Linux 部分发行版可能提供了 NodeJS 与 Go 语言的安装包,下面的安装方法主要以手动安装为主。 安装 Git:Debian / Ubuntu 1sudo apt install git RedHat / Alma Linux / Rocky Linux /Fedora 1sudo dnf install git openSUSE 1s ...
v2rayA FAQ
v2rayA 会有 Electron 版本吗?A: v2rayA 变成 Electron 是可能的,但是官方不会去做,因为大家的 PC 上有太多的 Chromium 了,我们不想让这个世界上再多一个 Chromium 的新皮肤。 开发组提供付费服务吗?A: 不提供任何付费服务,如果你愿意支持我们,提交代码是一个非常好的选择。 旁路由需要注意什么?A: 需要注意网关的层次,不能“互指”,同时建议开启“允许 IP 转发”以启用 Linux 系统的 IP Forwarding 功能。除此之外,DNS 查询也需要让 v2rayA 本身或者 v2rayA 所在主机的 DNS 查询软件接管,否则很可能无法避免 DNS 污染问题。 v2rayA 开发者都是哪里人?A: 我们都是 100% 的地球人,相信我,我们中间没有外星人或机器人。 为啥快捷方式/桌面图标打开来是空白的网页?A: 桌面上的图标、菜单里面的图标的本质都是试图打开 http://localhost:2017 这个网页,即 v2rayA 默认监听的端口。你需要使用 systemctl 或 brew services 、 / ...
v2rayA 高级 DNS 设置
常规用法默认的防止 DNS 污染规则通常使用预设的 DNS 公共服务器,高级用户可使用高级 DNS 设置进行自定义。 规则如下: 123tcp://223.5.5.5 -> direct119.29.29.29 -> directhttps://dns.google -> proxy 通常使用第一条规则进行 DNS 查询,当查询失败时将使用第二条,其后亦然。 使用 TCP 方式查询时应注意 DNS 是否支持 TCP 查询。 箭头右方的“出站名”表示使用左侧的 DNS 进行查询时使用的出站出口。 使用其他 DNS 客户端有时我们希望使用其他 DNS 客户端,例如 AdGuard 的 dnsproxy 接管本机的 DNS 请求。本节介绍如何做到这点。本节默认你已开启透明代理。 当使用 redirect 模式时当“透明代理实现方式”使用 redirect 时,将“防止DNS污染”设为关闭即可。 将“防止DNS污染”设为关闭后,v2ray-core 将不会设置 DNS 入站,从而避免 DNS 冲突。 redirect 模式下 UDP 流量不会经过 v2ray-core, ...
HTTP/Socks 带密码的入站
设置带密码的 HTTP/Socks5 入站v2rayA 利用 RoutingA 可以自由开启 HTTP/Socks5 入站,并设置密码。但即使设置了密码,HTTP/Socks5 仍不适合作为公网传输,也不适合在不信任的内网环境中使用,请仅在安全的内网环境下使用它们。 将“规则端口的分流模式”选为“RoutingA”。 在 RoutingA 设置中,在靠前位置插入如下规则: 123inbound: httpauthin = http(address: 0.0.0.0, port: 1081, user: user1, pass: user1pass, user:user2, pass:user2pass)inbound: socksauthin = socks(address: 0.0.0.0, port: 1082, udp:true, user: 123, pass: 123)inbound: sockslocalin = socks(address: 127.0.0.1, udp:true, port: 1080) 注意,不要将此处的端口和预 ...
v2rayA 多节点分流
介绍v2rayA 支持设置多个出站组(outbound),通过 RoutingA 可以设置根据不同的入站、源地址、目的地址等选择不同的出站,以实现各种复杂功能。 流媒体分流流媒体分流即访问不同的流媒体时,使用不同的服务器节点。例如观看奈非时使用可观看奈非的服务器节点,而正常冲浪时使用更快速的 IPLC 节点,BT 下载时使用流量更多的荷兰服务器节点。 下面以 Netflix 和 Disney 为例讲述分流方法: 在 v2rayA 的左上方新增两个出站,名为 Netflix 和 Disney。此时我们有三个出站:proxy、Netflix、Disney。 依次选择出站,在每个出站的界面中连接特定的服务器节点。 将“透明代理”选为“与规则端口所选模式一致”;将“规则端口的分流模式”选为“RoutingA”。 如果你不使用透明代理则无需设置透明代理,只需将“规则端口的分流模式”选为“RoutingA”即可。而后使用规则端口进行代理上网。 在 RoutingA 设置中,在靠前位置插入如下规则: 12domain(geosite: netflix) -> Netflixdo ...
无 ROOT 权限运行 v2rayA
以非 ROOT 权限运行 v2rayA 将无法使用部分功能,例如透明代理。 然而如果你希望以 ROOT 权限运行,且已拥有 ROOT 权限而 v2rayA 判断错误,可使用 --passcheckroot 跳过 root 权限检查。 一般地,使用环境变量 V2RAYA_LITE 或命令行参数 --lite 以使用非 ROOT 权限启动 v2rayA。 如果你使用 systemd,可通过控制用户服务 v2raya-lite.service 以本用户运行,例如: 1systemctl --user enable --now v2raya-lite.service 注意,该服务启动后,v2rayA 默认占据 2017 端口。因此如果已有其他实例在 2017 监听,需要先将其关闭,例如: 1systemctl disable --now v2raya.service