基于Proxifier和V2/Ray的嵌套代理方案

这篇具有很好参考价值的文章主要介绍了基于Proxifier和V2/Ray的嵌套代理方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

最近遇到了一个比较奇怪的需求:我的电脑只能访问到局域网内的服务器A,而服务器A可以访问到服务器B国内网络,
服务器B可以访问到国外网络。

当电脑简单地使用服务器A进行代理的时候,就可以变成正常的家庭网络了(只能访问国内网络);
但我此时需要使用服务器B进行代理以访问github的时候,发现系统代理已经被设置了。
这时我想起用Proxifier解决这个问题。

工具介绍

Proxifier

Proxifier通过对R0层劫持过滤驱动实现对所有软件都几乎透明的代理。

使用这个软件的原因除了可以更方便地处理路由之外,还是为了让不走系统代理的应用也可以走代理。
此外,实现嵌套代理也离不开它。

V2/Ray (Core)

V2/Ray是当前主流的代理软件之一,功能很强大、灵活。

但缺点是现在常见的V2/Ray可视化客户端(如V2/RayN)都无法实现V2/Ray的全部功能,
为了更好地指定路由,我使用V2/Ray Core(以下简称V2/Ray)来实现需要的功能。

梳理流程

  1. 当访问国内网络时,我们只需要像普通代理一样使用服务器A:

    主机 --> 服务器A --> 国内网站

  2. 当访问国外网络时,我们需要经过A、B两个服务器:

    主机 --> 服务器A --> 服务器B --> 国外网站

为了写成Proxifier需要的格式,我们需要进一步简化,将其简化为“原本目标;转发目标”:

  1. 当发送请求给国内网站时,转发给服务器A的本地代理

  2. 当发送请求给国外网站时,转发给服务器B的本地代理

  3. 当请求发送给服务器A时,直接发送(不转发)

  4. 当发送请求给服务器B时,转发给服务器A的本地代理

由于服务器A、B是被包含在国内(外)网站里的,所以我们要提升它们优先级,即按34、12的顺序排序。
这些规则应该写在Proxifier的Proxification Rules页面里。

分辨国内外网站

谈论理论觉得很容易,但真正上手写的时候会发现有不少问题,如:如何分辨国内外的网站?

V2/Ray软件自带geoip、geosite文件,包含的网站已经足够日常使用了,但我没找到方法让Proxifier读取这个文件。
所以我用V2/Ray的路由功能。

打开服务器B本地代理的配置文件(config.json),此处以绕过大陆的配置为例,节选outboundsrouting部分:

"outbounds": [
    {
        "tag": "proxy",
        // ...
    },
    {
        "tag": "direct",
        "protocol": "freedom",
        "settings": {}
    },
    {
        "tag": "block",
        "protocol": "blackhole",
        "settings": {
            "response": {
                "type": "http"
            }
        }
    }
]
"routing": {
    "domainStrategy": "AsIs",
    "rules": [
        {
            "type": "field",
            "inboundTag": [
                "api"
            ],
            "outboundTag": "api"
        },
        {
            "type": "field",
            "outboundTag": "block",
            "domain": [
                "geosite:category-ads-all"
            ]
        },
        {
            "type": "field",
            "outboundTag": "direct",
            "domain": [
                "geosite:cn"
            ]
        },
        {
            "type": "field",
            "outboundTag": "direct",
            "ip": [
                "geoip:private",
                "geoip:cn"
            ]
        },
        {
            "type": "field",
            "port": "0-65535",
            "outboundTag": "proxy"
        }
    ]
}

关于V2/Ray的配置可以参考这两个文档[1][2]

outbounds应该包含了三个最基础的配置,分别是代理、直连、拦截。
然后routing的规则将国内流量引到直连,其他的流量默认走代理。

所以我的思路是修改直连的逻辑,替换为服务器A的outbounds中的proxy项,但它的tag字段仍为direct不要修改。
如果仍有真正direct需求,可以再加一个actualdirect项。

此时Proxifier的路由规则也简化为了:

  1. 当请求发送给服务器A时,直接发送(不转发)

  2. 当发送请求给服务器B时,转发给服务器A的本地代理

  3. 当发送请求给国内外网站时,转发给服务器B的本地代理

简化掉服务器A的本地代理

看完上一段后,大家肯定会觉得,为什么还需要保留服务器A的本地代理,直接让服务器B的本地代理的路由处理了不就好了?

我也是这么认为的,但在实践的过程中遇到了问题:

  • Proxifier自动域名解析

    查看Proxifier的日志时,可以发现接受到的对服务器B的请求还是域名的形式,而在服务器A的本地代理日志中就变成了IP形式。
    就算关闭了Proxifier的名字解析器(Name Resolution)还是如此。

  • 通过V2/Ray端口筛选路由

    我尝试通过端口筛选出对服务器B访问流量,虽然已经在日志中看到了对应条目,但还是连不上。

最终我选择了保留服务器A的本地代理,如果有大佬知道解决方案请告诉我x。


  1. V2/Ray官方文档 ↩︎

  2. V2/Ray白话文教程 ↩︎文章来源地址https://www.toymoban.com/news/detail-837674.html

到了这里,关于基于Proxifier和V2/Ray的嵌套代理方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ARM,X64等ubuntu v2ray安装

    下载地址,安装和自己系统适配的版本,ARM就选ARM的,X64就选X64的 启动 v2rayA 设置开机自动启动 http://localhost:2017 网页进去,选择节点提示 检测到 geosite.dat, geoip.dat 文件或 v2ray-core 可能未正确安装 ,原因是没有安装v2ray-core github上下载对应的版本下载地址 下载完之后将其解压

    2024年04月13日
    浏览(27)
  • v2ray 搭建的服务器连接后出现超时

     原因是有防火墙存在,需要临时关闭防火墙才可以连接 指令我放这里 service iptables stop 关闭防火墙 是临时关闭的,重启服务器也会自动开启的 还有就是需要修改服务器时间与现实时间标准 date -s 时:分:秒 指令修改时间就可以连接了

    2024年02月12日
    浏览(33)
  • 内网代理的系列二:frp(socks5)+Proxifier

    环境搭建: 1台Win08虚拟机 1台Win07虚拟机 1台VPS 1台主机 网关设置 Win08虚拟机 关闭防火墙 Win07虚拟机 这种网络场景也是我们日常渗透中最常见的一种 通常我们都是socks5代理 , 实现能够访问内网主机上开放的web站点 https://github.com/fatedier/frp/releases/tag/v0.44.0 VPS: ./frps -c frps.ini

    2024年02月07日
    浏览(26)
  • V2ray状态,一直显示未运行(无论重启,开启)在查看状态还是未运行

            在putty中安装v2ray由于一开始出现了错误,我在网上找了一堆命令进行安装v2ray可能装了太多版本,也可能是服务器系统的原因(服务器系统是centos),最终的问题就是无论我怎么启动v2ray,其状态都是未在运行。   关于这个问题我也搜了好多: 第一种:装的v2ra

    2024年02月11日
    浏览(37)
  • 联合抓包burp+charles&burp+Proxifier&burp+代理服务器

    charles开启时会自动开启代理服务器 在抓取微信小程序包时,设置  可将charles抓取的数据包传到127.0.01:8080,此时在burp设置此代理可抓取charles抓取的包,相当于charles抓取的包传到burp上来分析。 Proxifier配置 如上图配置代理可让配置127.0.0.1:8080的burp抓到微信小程序数据包 这种

    2024年02月08日
    浏览(37)
  • Qv2ray在Ubuntu22.04系统中代理命令行终端(全局代理)方法 (解决终端上无法使用git clone,下载github文件慢的问题)

     在打开的bashrc文件最后面输入以下内容( 注意后面的8889和1089端口号必须和Ubuntu,Qv2ray上面的端口一致。 ): 如下图所示: 输入完成后, 按Ctrl+O ,然后 按回车键 确认保存, 按Ctrl+X 退出文本编辑,最后 重启电脑。 返回下图为代理成功: 至此终端上使用git clone  ,下载

    2024年04月14日
    浏览(74)
  • 基于Prism框架的WPF前端框架开发《知产代理数字化解决方案》

    最近新开发了一套WPF前端界面框架,叫《知产代理数字化解决方案》,采用了时下流行的Prism框架作为整个系统的基础架构,演示了Prism中的IRegionManager区域管理器、IDialogAware对话框、IDialogService对话框服务、IContainerExtension容器等用法。 系统对常用的控件进行了模板和样式开发

    2024年01月19日
    浏览(47)
  • pytorch基于ray和accelerate实现多GPU数据并行的模型加速训练

    在pytorch的DDP原生代码使用的基础上,ray和accelerate两个库对于pytorch并行训练的代码使用做了更加友好的封装。 以下为极简的代码示例。 ray.py acc.py

    2024年02月11日
    浏览(32)
  • 基于Ray和vLLM构建70B+模型的开源RLHF全量训练框架

    背景 ChatGPT 已经问世一年+了,在训练 ChatGPT 中必不可少的一环是 RLHF 训练,目前开源社区已经有了不少 RLHF 训练框架比如,TRL, DeepSpeedChat 或者最近热门的 LLaMA Factory。这些框架往往是基于 ZeRO 等并行方式,将 RLHF 算法中的四个模型切片后放到同一个 GPU 上。在模型规模越来越

    2024年01月22日
    浏览(44)
  • 现代 CSS 解决方案:原生嵌套(Nesting)

    很早之前,就写过一篇与原生嵌套相关的文章 -- CSS 即将支持嵌套,SASS/LESS 等预处理器已无用武之地?,彼时 CSS 原生嵌套还处于工作草案 Working Draft (WD) 阶段,而今天(2023-09-02),CSS 原生嵌套 Nesting 终于成为了既定的规范! 在之前,只有在 LESS、SASS 等预处理器中,我们才

    2024年02月09日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包