Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

4.x后利用分流实现之前PAC效果的方案 #1366

Closed
ghost opened this issue Feb 20, 2021 · 31 comments
Closed

4.x后利用分流实现之前PAC效果的方案 #1366

ghost opened this issue Feb 20, 2021 · 31 comments

Comments

@ghost
Copy link

ghost commented Feb 20, 2021

1. 替换自带geoip.dat和geosite.dat文件

替换方式以及文件可以参考Repo@Loyalsoldier/v2ray-rules-dat

2. 在V2RayN设置中启用高级路由高能

具体:设置-路由设置-勾选启用高级路由功能。

3. 导入gfw规则集

  • 首先复制以下一种配置内容:
    带广告屏蔽的:
    [
      {
        "outboundTag": "block",
        "domain": [
          "geosite:category-ads-all",
          "geosite:win-spy"
        ]
      },
      {
         "outboundTag": "proxy",
         "ip": [
           "geoip:telegram"
         ],
         "domain": [
           "geosite:gfw"
        ]
      },
      {
        "port": "0-65535",
        "outboundTag": "direct"
      }
    ]
    不带广告屏蔽
    [
      {
         "outboundTag": "proxy",
         "ip": [
           "geoip:telegram"
         ],
         "domain": [
           "geosite:gfw"
        ]
      },
      {
        "port": "0-65535",
        "outboundTag": "direct"
      }
    ]
  • 接着在路由设置页面设置:高级功能-添加规则集-导入规则-从剪贴板中导入规则,别名自己设置一个。

设置geoip.dat和geosite.dat文件不跟随core更新

在参数设置-V2rayN设置中勾选
image

4. 全局规则集

添加方式与条目3相同

[
  {
    "outboundTag": "proxy",
    "port": "0-65535",
  }
]

5. 切换规则集

image

@k-fire
Copy link

k-fire commented Feb 20, 2021

这样设置的话,如何自定义添加走代理或者直连的域名?

@ghost
Copy link
Author

ghost commented Feb 20, 2021

这样设置的话,如何自定义添加走代理或者直连的域名?

可以点进规则集里面编辑规则
代理就在proxy添加
直连就在direct添加
只是添加域名的话就是domain:xxxxxx
还有正则什么的具体语法可以参考官网
image

@btstream
Copy link

这个方法虽然效果类似GFWlist+PAC,但是还是建议恢复PAC模式,V2ray的路由模式相当于全部流量经过V2ray转发,区别是在与是否V2ray转发的时候经过V2ray的proxy server。这个方式有种戴tt的感觉。。。。。。。

@Hinlavic
Copy link

很有启发 之前看别人的教程 都分不清geo文件和规则集的区别

@ghost
Copy link
Author

ghost commented Feb 20, 2021

这个方法虽然效果类似GFWlist+PAC,但是还是建议恢复PAC模式,V2ray的路由模式相当于全部流量经过V2ray转发,区别是在与是否V2ray转发的时候经过V2ray的proxy server。这个方式有种戴tt的感觉。。。。。。。

我并不是开发者,只是做个分享。

@btstream
Copy link

这个方法虽然效果类似GFWlist+PAC,但是还是建议恢复PAC模式,V2ray的路由模式相当于全部流量经过V2ray转发,区别是在与是否V2ray转发的时候经过V2ray的proxy server。这个方式有种戴tt的感觉。。。。。。。

我并不是开发者,只是做个分享。

我也是用的这个方法。发这个建议也是希望让开发者能看到

@ghost
Copy link
Author

ghost commented Feb 20, 2021

我也是用的这个方法。发这个建议也是希望让开发者能看到

其实也无所谓吧,之前PAC是由系统代理对流量进行分流,现在全部由V2ray接管,感觉也没差,不过希望能不能自定义dat来源以及更新。

@btstream
Copy link

我也是用的这个方法。发这个建议也是希望让开发者能看到

其实也无所谓吧,之前PAC是由系统代理对流量进行分流,现在全部由V2ray接管,感觉也没差,不过希望能不能自定义dat来源以及更新。

用起来倒没啥区别,心理上有种不爽的感觉:)

@ycdm
Copy link

ycdm commented Feb 20, 2021

以前pac的逻辑是非pac列表都直连。还能自动更新pac列表。
现在是不是要全手动了。

@ycdm
Copy link

ycdm commented Feb 20, 2021

以前pac的逻辑是非pac列表都直连。还能自动更新pac列表。
现在是不是要全手动了。

不管是所谓的黑名单还是白名单的逻辑,路由都可以实现,自动更新不是内核的问题,是软件可以加上的功能,只是一个下载功能而已

https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/proxy-list.txt
我现在是从这里面拷贝到代理列表的,然后还要在前加入domain:
手动操作虽说可以批量实现,但还是麻烦。

另外请教下,我怎么才“能非列表都直连”

@ycdm
Copy link

ycdm commented Feb 20, 2021

以前pac的逻辑是非pac列表都直连。还能自动更新pac列表。
现在是不是要全手动了。

不管是所谓的黑名单还是白名单的逻辑,路由都可以实现,自动更新不是内核的问题,是软件可以加上的功能,只是一个下载功能而已

Loyalsoldier/v2ray-rules-dat@release/proxy-list.txt (raw)
我现在是从这里面拷贝到代理列表的,然后还要在前加入domain:
手动操作虽说可以批量实现,但还是麻烦。
另外请教下,我怎么才“能非列表都直连”

image
替换这俩文件即可
.dat文件里面有无数个分类,比如中国的域名和IP都在 geosite:cngeoip:cn 里,
广告域名在 geosite:category-ads-all 里,国外域名在 geosite:geolocation-!cn 里,本地IP在 geoip:private里,还有一千多种分类细分,比如 geosite:steam geosite:google 等,

gfwlist的网址(也就是经典的PAC)都在 geosite:gfw

非列表都直连也就是你把路由规则最后一行改成所有端口流量的outbound都走direct,也就是proxy在上面,direct在下面
整个路由过程描述一下就是一个网址,从上到下过滤,命中了一条规则就不往下走了,就到那个规则指定的outbound去了(outbound有直连、代理、阻断等)

我Qv2ray用的比较多,我就拿这个截图你看看就好了,写法就和说的一样,geosite:xxx 或者是 domain:xxx 或者直接写网址和IP
image

https://www.v2fly.org/config/routing.html#%E9%A2%84%E5%AE%9A%E4%B9%89%E5%9F%9F%E5%90%8D%E5%88%97%E8%A1%A8
文档里都说得很清楚的,主要是这里的人没人去看
image
image

谢谢大佬,我现在弄成这样:

[
{
"outboundTag": "proxy",
"ip": [
"geoip:telegram"
],
"domain": [
"geosite:gfw",
"geosite:greatfire",
"geosite:google"
]
},
{
"port": "0-65535",
"outboundTag": "direct",
"ip": [
"geoip:cn",
"geoip:private"
],
"domain": [
"geosite:cn"
]
}
]

@idealwlt
Copy link

请问大佬,要全局代理路由要怎么写?

@ycdm
Copy link

ycdm commented Feb 20, 2021

请问大佬,要全局代理路由要怎么写?

添加一个新的规则集,然后导入这个:
[
{
"port": "0-65535",
"outboundTag": "proxy"
}
]

@ycdm
Copy link

ycdm commented Feb 20, 2021

@ycdm 主楼那个就行啊,你的规则的后面的direct不用加任何规则的,不加规则就是上面代理的筛选完就掉下来到direct直连了,主楼telegram特别设置了一下,因为TG桌面端是IP直连

[
  {
     "outboundTag": "proxy",
     "ip": [
       "geoip:telegram"
     ],
     "domain": [
       "geosite:gfw",
       "geosite:greatfire"
    ]
  },
  {
    "port": "0-65535",
    "outboundTag": "direct"
  }
]

添加网址的话就在domain里加,或者你图形界面直接加就好了,一个逗号一个网址,不要按回车,就横着写,写完保存会自动给你排版的

明白了

@idealwlt
Copy link

请问大佬,要全局代理路由要怎么写?

添加一个新的规则集,然后导入这个:
[
{
"port": "0-65535",
"outboundTag": "proxy"
}
]

明白了,谢谢

@fittiger
Copy link

在官方提供的绕开大陆策略里直接就可以改的,这又多一道操作没必要吧。

@Jie-Qiao
Copy link

Jie-Qiao commented Feb 22, 2021

推荐采用一楼没有广告拦截的作为默认设置。如果要加广告拦截,我个人建议加个direct的选项(否则,亲测会错误地block掉一些正常的网站,比如腾讯视频无法观看):

[
  {
    "outboundTag": "direct",
    "domain": [
      "geosite:cn"
    ]
  },
  {
    "outboundTag": "block",
    "domain": [
      "geosite:category-ads-all"
    ]
  },
  {
    "outboundTag": "proxy",
    "ip": [
      "geoip:telegram"
    ],
    "domain": [
      "geosite:gfw",
      "geosite:greatfire"
    ]
  },
  {
    "port": "0-65535",
    "outboundTag": "direct"
  }
]

@Loyalsoldier
Copy link

⚠️ 请注意,这是错误写法:

  {
    "outboundTag": "proxy",
    "ip": [
      "geoip:telegram"
    ],
    "domain": [
      "geosite:gfw",
      "geosite:greatfire"
    ]
  }

正确写法(ipdomain 分开成两部分):

{
  "outboundTag": "proxy",
  "domain": [
    "geosite:gfw",
    "geosite:greatfire"
  ]
},
{
  "outboundTag": "proxy",
  "ip": [
    "geoip:telegram"
  ]
}

@ghost
Copy link
Author

ghost commented Feb 23, 2021

⚠️ 请注意,这是错误写法:

  {
    "outboundTag": "proxy",
    "ip": [
      "geoip:telegram"
    ],
    "domain": [
      "geosite:gfw",
      "geosite:greatfire"
    ]
  }

正确写法(ipdomain 分开成两部分):

{
  "outboundTag": "proxy",
  "domain": [
    "geosite:gfw",
    "geosite:greatfire"
  ]
},
{
  "outboundTag": "proxy",
  "ip": [
    "geoip:telegram"
  ]
}

这是用于导入规则的配置文件,并不是最终v2ray-core使用的配置,导入后软件会在config.json中自动生成正确的路由配置,两者不是一回事。

@ghost
Copy link
Author

ghost commented Feb 23, 2021

确实,IP和domain写一起的话是取交集,IP和域名同时成立的才生效规则
应该是要写开的

这是用于导入规则的配置文件,并不是最终v2ray-core使用的配置,导入后软件会在config.json中自动生成正确的路由配置,两者不是一回事。

@ghost
Copy link
Author

ghost commented Feb 23, 2021

好吧,没细看wiki🤣,不对呀,wiki也没写

可以对照看一下config.json文件

@ghost ghost closed this as completed Feb 27, 2021
@nomadic08
Copy link

流量全部经过软件代理后分流,总感觉多此一举。以前的代理模式为啥要取消呢。

@lbbboy
Copy link

lbbboy commented Mar 3, 2021

识别有问题,国内域名有的还是被代理了。

@liang-zhe
Copy link

请问系统代理是选择 自动配置系统代理 还是 不改变系统代理

@ghost
Copy link

ghost commented Mar 20, 2021

我想问一下,

AsIs(默认): 使用core 接收到的地址(可能是域名,也可能是 IP)匹配
IPOnDemand : 只要rules里面有匹配 IP 的规则,都先解析一次
IPIfNonMatch : 如果根据域名没有匹配到规则,则调用内置 DNS 执行一次解析后,再根据 IP 匹配

IOD是不是大陆模式,又称白名单模式?

@Jieoz
Copy link

Jieoz commented Mar 22, 2021

怀疑为什么要故意改的这么麻烦,人为的制造技术壁垒?以前的pac有什么特殊原因一定要抛弃?

@sowhateve
Copy link

以前pac的逻辑是非pac列表都直连。还能自动更新pac列表。
现在是不是要全手动了。

不管是所谓的黑名单还是白名单的逻辑,路由都可以实现,自动更新不是内核的问题,是软件可以加上的功能,只是一个下载功能而已

https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/proxy-list.txt
我现在是从这里面拷贝到代理列表的,然后还要在前加入domain:
手动操作虽说可以批量实现,但还是麻烦。

另外请教下,我怎么才“能非列表都直连”

你好,请问怎么手动操作可以批量导入这些域名呢

@dalu-test
Copy link

1. 替换自带geoip.dat和geosite.dat文件

替换方式以及文件可以参考Repo@Loyalsoldier/v2ray-rules-dat

2. 在V2RayN设置中启用高级路由高能

具体:设置-路由设置-勾选启用高级路由功能。

3. 导入gfw规则集

  • 首先复制以下一种配置内容:
    带广告屏蔽的:

    [
      {
        "outboundTag": "block",
        "domain": [
          "geosite:category-ads-all",
          "geosite:win-spy"
        ]
      },
      {
         "outboundTag": "proxy",
         "ip": [
           "geoip:telegram"
         ],
         "domain": [
           "geosite:gfw"
        ]
      },
      {
        "port": "0-65535",
        "outboundTag": "direct"
      }
    ]

    不带广告屏蔽

    [
      {
         "outboundTag": "proxy",
         "ip": [
           "geoip:telegram"
         ],
         "domain": [
           "geosite:gfw"
        ]
      },
      {
        "port": "0-65535",
        "outboundTag": "direct"
      }
    ]
  • 接着在路由设置页面设置:高级功能-添加规则集-导入规则-从剪贴板中导入规则,别名自己设置一个。

设置geoip.dat和geosite.dat文件不跟随core更新

在参数设置-V2rayN设置中勾选
image

4. 全局规则集

添加方式与条目3相同

[
  {
    "outboundTag": "proxy",
    "port": "0-65535",
  }
]

5. 切换规则集

image

谢谢,终于重新上网了

@happyTonakai
Copy link

这个方法虽然效果类似GFWlist+PAC,但是还是建议恢复PAC模式,V2ray的路由模式相当于全部流量经过V2ray转发,区别是在与是否V2ray转发的时候经过V2ray的proxy server。这个方式有种戴tt的感觉。。。。。。。

直连流量不会经过服务器,PAC的时候是经过windows内部的闭源运作,路由的时候是经过v2ray.exe这个程序,直连流量不会发送给服务器,他是一个本地的过程,断网了也是分流的
PAC消耗的内存更大,需要搭建一个本地网页来提供Windows使用PAC

问一下当前版本可以实现之前的http代理吗,只接管http代理而不修改系统代理

@Fie-Claussell
Copy link

感谢您的分享,在此有个小疑问想请教一下。
我使用了您提供的gfw规则集后,访问taobao确实已经变回了大陆。但我如何知道一些客户端是通过代理还是直连(例如战网等国内客户端)

@ltynaive
Copy link

感谢感谢!!之前一直不习惯新版这个设置,所以一直没升级,今天照着你这个操作搞定了~

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests