Closed Benjamin1919 closed 1 year ago
SOCKS协议直接转发域名的,不需要解析DNS。
SOCKS协议直接转发域名的,不需要解析DNS。
感谢解答~请问socks和redirect在性能上有差异吗?
我自己找到答案了,原来在sockopt里可以自己设置解析策略; 另外对于WARP的proxy模式(或称为client模式),貌似只能通过socks方式使用,freedom里的redirect并不能将数据包传递给WARP。 socks出站代码示例:
{
"protocol": "socks",
"settings": {
"servers": [
{
"address": "127.0.0.1",
"port": 40000,
"users": []
}
]
},
"tag": "WARP",
"streamSettings": {
"sockopt": {
"tcpFastOpen": true,
"tcpcongestion": "bbr",
"domainStrategy": "UseIPv4"
}
}
}
论完整地看一遍文档的重要性
学习了
楼主你好,我和你遇到同样的问题,我的需求是在我的双栈VPS上 对ChatGPT网站的访问走Warp的Socks5 代理。但是Warp之后它总是走IPv4,去掉Warp后就能走IPv6,我像你这样的设置,把"domainStrategy": "UseIPv4"这里改为了UseIPv6,但没有效果。这是什么原因呢?https://chat.openai.com/cdn-cgi/trace 我是这里看的,里面的ip在不加Warp的时候是IPv6访问,加了Warp后变成一个IPv4地址了。
我做了很多测试: 1,不是Warp的问题,因为Connect成功后,双栈的IP都是warp后的IP了(测试方法如下)
curl -4 ip.gs -x socks5://127.0.0.1:4000 curl -6 ip.gs -x socks5://127.0.0.1:4000
2,不是浏览器的问题,因为不加Warp的时候就是IPv6 3,不是VPS的问题,因为用curl https://chat.openai.com/cdn-cgi/trace --proxy socks5://127.0.0.1:40000,也是成功使用Warp的IPv6
所以问题只能是Xray这里,我搜了很久找到你这里了,但按你的配置修改无效。这该怎么办呢?
我自己找到答案了,原来在sockopt里可以自己设置解析策略; 另外对于WARP的proxy模式(或称为client模式),貌似只能通过socks方式使用,freedom里的redirect并不能将数据包传递给WARP。 socks出站代码示例:
{ "protocol": "socks", "settings": { "servers": [ { "address": "127.0.0.1", "port": 40000, "users": [] } ] }, "tag": "WARP", "streamSettings": { "sockopt": { "tcpFastOpen": true, "tcpcongestion": "bbr", "domainStrategy": "UseIPv4" } } }
mark 学习下
我自己找到答案了,原来在sockopt里可以自己设置解析策略; 另外对于WARP的proxy模式(或称为client模式),貌似只能通过socks方式使用,freedom里的redirect并不能将数据包传递给WARP。 socks出站代码示例:
{ "protocol": "socks", "settings": { "servers": [ { "address": "127.0.0.1", "port": 40000, "users": [] } ] }, "tag": "WARP", "streamSettings": { "sockopt": { "tcpFastOpen": true, "tcpcongestion": "bbr", "domainStrategy": "UseIPv4" } } }
我想要在一个 socks5 里,指定 a/b/c 网站 使用 socks5 的 ipv4,d/e/f 网络 使用 socks5 的ipv6 ,没有指定的其余全部使用原生的网络出口,请问配置文件应该如何呢?
你路由规则里,从上到下,第1组是abc走socksv5 第2组是def走v6
出站规则中,把默认出站排1位。没命中路由规则的,剩下的部分,就是走第1个出站。
现在我是这样使用的,但看 ExQzMeDeadpool 兄弟的用到 "streamSettings" 和 "sockopt",所以好奇这个方式比下面我正在使用的链式要好,在这基础上同时使用 warp-v4 和 warp-v6 又是如何处理的?
{
"outbounds":[
{
"tag":"warp",
"protocol":"socks",
"settings":{
"servers":[
{
"address":"127.0.0.1",
"port":40000
}
]
}
},
{
"tag":"WARP-socks5-v4",
"protocol":"freedom",
"settings":{
"domainStrategy":"UseIPv4"
},
"proxySettings":{
"tag":"warp"
}
},
{
"tag":"WARP-socks5-v6",
"protocol":"freedom",
"settings":{
"domainStrategy":"UseIPv6"
},
"proxySettings":{
"tag":"warp"
}
}
],
"routing":{
"rules":[
{
"type":"field",
"domain":[
"openai",
"ai.com",
"ip.gs"
],
"outboundTag":"WARP-socks5-v4"
},
{
"type":"field",
"domain":[
"p3terx.com",
"netflix"
],
"outboundTag":"WARP-socks5-v6"
}
]
}
}
ExQzMeDeadpool 兄弟的用到 "streamSettings" 和 "sockopt",
我查了下他用法,文档写的用那参数,要求使用(有)xray内置dns,你要在配置中加下,我还没试。你写模板我建议你就用链式代理形式,不然怕别人搞不懂。
{
"protocol": "freedom",
"tag": "direct"
},
你把这段放在最前,是出站第1个,实现你的目的
没有指定的其余全部使用原生的网络出口
{ "protocol": "freedom", "tag": "direct" },
你把这段放在最前,是出站第1个,实现你的目的
没有指定的其余全部使用原生的网络出口
他的顺序不是从上到下逐一匹配规则的啊?而是把默认的放第一条,然后下面第N条命中,就走第N条,如果都不命中,就走第一条,是这样吧?那我的模板还要改一下。
{ "protocol": "freedom", "tag": "direct" },
你把这段放在最前,是出站第1个,实现你的目的
没有指定的其余全部使用原生的网络出口
他的顺序不是从上到下逐一匹配规则的啊?而是把默认的放第一条,然后下面第N条命中,就走第N条,如果都不命中,就走第一条,是这样吧?那我的模板还要改一下。
是这逻辑,我以为你一直知道,指南看这
https://xtls.github.io/Xray-docs-next/document/level-1/routing-lv1-part1.html
出站是。路由模块里的规则也是从上到下匹配,没命中的走第1个出间。
我以为你懂这些
我以为你懂这些
有一说一,不懂的,之前都是抄你的模板为主,包括现在我也不会改 sing-box
现在改为这个完美了
{
"outbounds":[
{
"protocol":"freedom"
},
{
"tag":"warp",
"protocol":"socks",
"settings":{
"servers":[
{
"address":"127.0.0.1",
"port":40000 // 填写你的 socks5 端口
}
]
}
},
{
"tag":"WARP-socks5-v4",
"protocol":"freedom",
"settings":{
"domainStrategy":"UseIPv4"
},
"proxySettings":{
"tag":"warp"
}
},
{
"tag":"WARP-socks5-v6",
"protocol":"freedom",
"settings":{
"domainStrategy":"UseIPv6"
},
"proxySettings":{
"tag":"warp"
}
}
],
"routing":{
"rules":[
{
"type":"field",
"domain":[
"openai",
"ai.com",
"ip.gs"
],
"outboundTag":"WARP-socks5-v4"
},
{
"type":"field",
"domain":[
"p3terx.com",
"netflix"
],
"outboundTag":"WARP-socks5-v6"
}
]
}
}
看了没有问题的。 sing-box的在这 ,一样的思路。
话说我想起来我试过,下面这段加在Wireguard里是生不了效的。但是它对你用出站为scoks楼主测了有效。sing-box那边我没进一步研究了。就现在这链式代理吧,挺方便,用的也不用懂太多,一看也明白思路。
"streamSettings": {
"sockopt": {
"tcpFastOpen": true,
"tcpcongestion": "bbr",
"domainStrategy": "UseIPv4"
}
}
我当时还看了你warp-go的脚本,学了下脚本思路,把手动安warp-go接管全局方式学会了。互相学习。
需求:建立一个outbound指向监听本地某端口的代理,并指定其解析为IPv4或IPv6。 目前用的是Socks出站,但我发现:
你也可以试试 Client 的 WARP 模式的,与 PROXY 模式在本地创建一个 socks5 代理不同,WARP 模式是在本地创建一个 CloudflareWARP 的网络接口。然后 xray 里通过网络接口名来分流,同样可以区分开 V4 , V6。之前简单做了个速度对比测试仅供参考: https://github.com/fscarmen/warp_unlock/issues/13#issuecomment-1113898629
建议你给的示例,用geosite里面的openai分类,有人定时维护,挺方便,比写单一域名的形式的话。
"domain": [
"geosite:openai"
],
需求:建立一个outbound指向监听本地某端口的代理,并指定其解析为IPv4或IPv6。 目前用的是Socks出站,但我发现:
你也可以试试 Client 的 WARP 模式的,与 PROXY 模式在本地创建一个 socks5 代理不同,WARP 模式是在本地创建一个 CloudflareWARP 的网络接口。然后 xray 里通过网络接口名来分流,同样可以区分开 V4 , V6。之前简单做了个速度对比测试仅供参考: fscarmen/warp_unlock#13 (comment)
这模式我用你的warp-go脚本里看到了,我还试了下,看了个怎么实现的只用warp-go创建虚拟网卡不全局接管流量。
只是我平时也用得少,没花时间再去学什么。
这模式我用你的warp-go脚本里看到了,我还试了下,看了个怎么实现的只用warp-go创建虚拟网卡不全局接管流量。
只是我平时也用得少,没花时间再去学什么。
是的,一样的处理手法 , wgcf 也可以的,只要把 wgcf 的配置文件 wgcf.conf
下面的 AllowedIPs = 0.0.0.0/0, ::/0
去掉(注释掉),再加一样的路由规则可以。不过由于 menu.sh 脚本的非全局方案太丰富了,分别有 wireproxy / client proxy mode / client warp mode / dnsmasq + ipset / xray 配置文件放 warp 的链式代理 ,而且 warp-go 做了非全局了,所以 wgcf 就没有做了。
建议你给的示例,用geosite里面的openai分类,有人定时维护,挺方便,比写单一域名的形式的话。
"domain": [ "geosite:openai" ],
用了 "geosite:openai" 就不用 "domain:openai.com" 和 "domain:ai.com"了吗? 我还看到有 "domain:p3terx.com" ,这样与直接 "p3etx.com" 有什么区别呢?
{
"outbounds": [
{
"tag": "direct-out",
"protocol": "freedom"
},
{
"tag": "socks-out",
"protocol": "socks",
"settings": {
"servers": [
{
"address": "127.0.0.1",
"port": 4000
}
]
},
"streamSettings": {
"sockopt": {
"domainStrategy": "UseIPv4"
}
}
},
{
"tag": "socks6-out",
"protocol": "socks",
"settings": {
"servers": [
{
"address": "127.0.0.1",
"port": 4000
}
]
},
"streamSettings": {
"sockopt": {
"domainStrategy": "UseIPv6"
}
}
}
],
"routing": {
"rules": [
{
"type": "field",
"outboundTag": "socks-out",
"domain": [
"a.com",
"b.com",
"c.com"
]
},
{
"type": "field",
"outboundTag": "socks6-out",
"domain": [
"d.com",
"e.com",
"f.com"
]
},
{
"type": "field",
"outboundTag": "direct-out"
}
]
}
}
用了 "geosite:openai" 就不用 "domain:openai.com" 和 "domain:ai.com"了吗?
opem分类中包含的域名你在这看 https://github.com/v2fly/domain-list-community/blob/master/data/openai
我还看到有 "domain:p3terx.com" ,这样与直接 "p3etx.com" 有什么区别呢?
区别文档链接 https://www.v2fly.org/config/routing.html#ruleobject
纯字符串:当此字符串匹配目标域名中任意部分,该规则生效。比如 sina.com 可以匹配 sina.com、sina.com.cn、sina.company 和 www.sina.com,但不匹配 sina.cn。
子域名(推荐):由 domain: 开始,余下部分是一个域名。当此域名是目标域名或其子域名时,该规则生效。例如 domain:v2ray.com 匹配 www.v2ray.com、v2ray.com,但不匹配 xv2ray.com。
看上面的解释应该没太大区别。
{ "outbounds": [ { "tag": "direct-out", "protocol": "freedom" }, { "tag": "socks-out", "protocol": "socks", "settings": { "servers": [ { "address": "127.0.0.1", "port": 4000 } ] }, "streamSettings": { "sockopt": { "domainStrategy": "UseIPv4" } } }, { "tag": "socks6-out", "protocol": "socks", "settings": { "servers": [ { "address": "127.0.0.1", "port": 4000 } ] }, "streamSettings": { "sockopt": { "domainStrategy": "UseIPv6" } } } ], "routing": { "rules": [ { "type": "field", "outboundTag": "socks-out", "domain": [ "a.com", "b.com", "c.com" ] }, { "type": "field", "outboundTag": "socks6-out", "domain": [ "d.com", "e.com", "f.com" ] }, { "type": "field", "outboundTag": "direct-out" } ] } }
我傍晚也是这样设置的,一直运行失败才发问的,经过一大轮测试,发现不要最后的 direct-out 的 routing 就成功了,而且能实现例外的都走原生出口,具体还需要大家给予讲解一下 运行日志
root@saopaulo2:~# /etc/argox/xray run -c /etc/argox/config.json
Xray 1.7.5 (Xray, Penetrates Everything.) Custom (go1.20 linux/amd64)
A unified platform for anti-censorship.
2023/06/22 22:25:27 [Info] infra/conf/serial: Reading config: /etc/argox/config.json
Failed to start: main: failed to create server > app/router: this rule has no effective fields
改为这样就成功了
{
"outbounds":[
{
"protocol":"freedom"
},
{
"tag":"socks-out",
"protocol":"socks",
"settings":{
"servers":[
{
"address":"127.0.0.1",
"port":4000
}
]
},
"streamSettings":{
"sockopt":{
"domainStrategy":"UseIPv4"
}
}
},
{
"tag":"socks6-out",
"protocol":"socks",
"settings":{
"servers":[
{
"address":"127.0.0.1",
"port":4000
}
]
},
"streamSettings":{
"sockopt":{
"domainStrategy":"UseIPv6"
}
}
}
],
"routing":{
"rules":[
{
"type":"field",
"outboundTag":"socks-out",
"domain":[
"a.com",
"b.com",
"c.com"
]
},
{
"type":"field",
"outboundTag":"socks6-out",
"domain":[
"d.com",
"e.com",
"f.com"
]
/*
},
{
"type":"field",
"outboundTag":"direct-out"
*/
}
]
}
}
用了 "geosite:openai" 就不用 "domain:openai.com" 和 "domain:ai.com"了吗?
opem分类中包含的域名你在这看 https://github.com/v2fly/domain-list-community/blob/master/data/openai
谢谢,我将加到我的 argox 的 README.md 里去
我还看到有 "domain:p3terx.com" ,这样与直接 "p3etx.com" 有什么区别呢?
区别文档链接 https://www.v2fly.org/config/routing.html#ruleobject
纯字符串:当此字符串匹配目标域名中任意部分,该规则生效。比如 sina.com 可以匹配 sina.com、sina.com.cn、sina.company 和 www.sina.com,但不匹配 sina.cn。
子域名(推荐):由 domain: 开始,余下部分是一个域名。当此域名是目标域名或其子域名时,该规则生效。例如 domain:v2ray.com 匹配 www.v2ray.com、v2ray.com,但不匹配 xv2ray.com。
看上面的解释应该没太大区别。
我看你的说明,我是这样理解的 "p3terx.com" 是属于纯字符串,只要域名字符串里有,并且是连着的就能匹配,比如 "project.xrayp3terx.com.x.net" 是可以匹配到的 而 "domain:p3terx.com" 是属于子域名,按域名后缀的规则,能匹配 "project.p3terx.com",但不能匹配 "project.xrayp3terx.com" 和 "p3terx.com.x.net" 即是前者都不是按域名规则处理了,只要访问的域名里有符合的字符串,就会匹配成功。后者是前者的真子集,符合后者的一定符合前者,反之则不然
{ "outbounds": [ { "tag": "direct-out", "protocol": "freedom" }, { "tag": "socks-out", "protocol": "socks", "settings": { "servers": [ { "address": "127.0.0.1", "port": 4000 } ] }, "streamSettings": { "sockopt": { "domainStrategy": "UseIPv4" } } }, { "tag": "socks6-out", "protocol": "socks", "settings": { "servers": [ { "address": "127.0.0.1", "port": 4000 } ] }, "streamSettings": { "sockopt": { "domainStrategy": "UseIPv6" } } } ], "routing": { "rules": [ { "type": "field", "outboundTag": "socks-out", "domain": [ "a.com", "b.com", "c.com" ] }, { "type": "field", "outboundTag": "socks6-out", "domain": [ "d.com", "e.com", "f.com" ] }, { "type": "field", "outboundTag": "direct-out" } ] } }
我傍晚也是这样设置的,一直运行失败才发问的,经过一大轮测试,发现不要最后的 direct-out 的 routing 就成功了,而且能实现例外的都走原生出口,具体还需要大家给予讲解一下 运行日志
root@saopaulo2:~# /etc/argox/xray run -c /etc/argox/config.json Xray 1.7.5 (Xray, Penetrates Everything.) Custom (go1.20 linux/amd64) A unified platform for anti-censorship. 2023/06/22 22:25:27 [Info] infra/conf/serial: Reading config: /etc/argox/config.json Failed to start: main: failed to create server > app/router: this rule has no effective fields
改为这样就成功了
{ "outbounds":[ { "protocol":"freedom" }, { "tag":"socks-out", "protocol":"socks", "settings":{ "servers":[ { "address":"127.0.0.1", "port":4000 } ] }, "streamSettings":{ "sockopt":{ "domainStrategy":"UseIPv4" } } }, { "tag":"socks6-out", "protocol":"socks", "settings":{ "servers":[ { "address":"127.0.0.1", "port":4000 } ] }, "streamSettings":{ "sockopt":{ "domainStrategy":"UseIPv6" } } } ], "routing":{ "rules":[ { "type":"field", "outboundTag":"socks-out", "domain":[ "a.com", "b.com", "c.com" ] }, { "type":"field", "outboundTag":"socks6-out", "domain":[ "d.com", "e.com", "f.com" ] /* }, { "type":"field", "outboundTag":"direct-out" */ } ] } }
1,最后你脚本里用的哪种,是链式代理还是这种sockopt?速度上有区别么? 2,另外,我个人感觉还是proxy模式更灵活一些,不用接管全栈的流量,也安全一些。(相比warp模式或者wgcf的那种,还要小心添加路由表以防止vps失联),我之前在你那里也反馈过这个问题的需求,我当时同样的需求,用proxy解决不了,最后换wgcf搞好了。看到你们最近的讨论,发现proxy又可以了,那我后面打算再试一试换回来。 3,但有一个问题:相比wgcf,warp-cli的内存占用好像不小(我之前只用proxy模式内存都非常高)
1,最后你脚本里用的哪种,是链式代理还是这种sockopt?速度上有区别么?
我使用 https://github.com/XTLS/Xray-core/issues/1653#issuecomment-1602750109 下面的那个啊,应该是属于后者吧。速度区别我就没有试了。
2,另外,我个人感觉还是proxy模式更灵活一些,不用接管全栈的流量,也安全一些。 3,但有一个问题:相比wgcf,warp-cli的内存占用好像不小(我之前只用proxy模式内存都非常高)
我也挺喜欢client方案的,同时你可试试菜单14 那基于Client 的 Warp 模式,速度远远大于 proxy 模式。最近脚本处理了,让两者都很好的适配双栈了,但 Client 正如你第3点所说的,缺点是资源占用大,内存时不时大于100MB,去到200多MB的
(相比warp模式或者wgcf的那种,还要小心添加路由表以防止vps失联)
至于 vps 失联是由于配置文件错误,手动的时候没有注意好容易出问题,脚本的话自动检测好,发生的机率应该不高。
1,最后你脚本里用的哪种,是链式代理还是这种sockopt?速度上有区别么?
我使用 #1653 (comment) 下面的那个啊,应该是属于后者吧。速度区别我就没有试了。
2,另外,我个人感觉还是proxy模式更灵活一些,不用接管全栈的流量,也安全一些。 3,但有一个问题:相比wgcf,warp-cli的内存占用好像不小(我之前只用proxy模式内存都非常高)
我也挺喜欢client方案的,同时你可试试菜单14 那基于Client 的 Warp 模式,速度远远大于 proxy 模式。最近脚本处理了,让两者都很好的适配双栈了,但 Client 正如你第3点所说的,缺点是资源占用大,内存时不时大于100MB,去到200多MB的
(相比warp模式或者wgcf的那种,还要小心添加路由表以防止vps失联)
至于 vps 失联是由于配置文件错误,手动的时候没有注意好容易出问题,脚本的话自动检测好,发生的机率应该不高。
我今天早上重新配置了一边,,依旧无效:无法让路由里指定的域名走socks5的ipv6出站。和我当时在你那里提问的结果一样。
"rules": [
{
"type":"field",
"outboundTag":"socks6-out",
"domain":[
"domain:ip.sb",
"domain:test-ipv6.com",
"geosite:openai"
]
},
.....
"outbounds": [
{
"protocol": "freedom",
"tag": "direct"
},
{
"protocol": "blackhole",
"tag": "block"
},
{
"tag":"socks6-out",
"protocol":"socks",
"settings":{
"servers":[
{
"address":"127.0.0.1",
"port":40000
}
]
},
"streamSettings":{
"sockopt":{
"domainStrategy":"UseIPv6"
}
}
}
],
把test-ipv6.com加入路由后,访问之后,结果如下:
你的公网 IPv4 地址是 xxxx---这里显示的是Cloudflare的IPv4地址
你的公网 IPv6 地址是 xxxx---这里显示的是Cloudflare的IPv6地址
你的运营商(ISP)是 CLOUDFLARENET
你已接入 IPv6,因此我们增加了一个标签页,显示你能否访问其他 IPv6 网站。[更多信息]
你已经有 IPv6 地址了,但你的浏览器不太愿意用,这一点比较令人担心。 [更多信息]
你的 DNS 服务器(可能由运营商提供)已经接入 IPv6 互联网了。
IPv6 状况评分
10/10 此分数表示你的系统对 IPv6 的支持程度和稳定性
点击查看 测试数据
2个ip地址都已经是warp后的地址了,但最终的结果就是浏览器访问时,是ipv4优先落地,达不到我希望ipv6的warp访问指定域名的目的。
再描述的清楚一点:我本身vps就是双栈机器,如果不用warp,直接访问都是ipv6优先访问目标网站。但套了warp后按上述配置后就不行了。
不是有了warp的ipv6地址就ok,要真正用它落地才算成功,你可以用这些来测试: https://chat.openai.com/cdn-cgi/trace http://ip6.me/ https://test-ipv6.com/
反正。在我这里无效。放弃。
1,最后你脚本里用的哪种,是链式代理还是这种sockopt?速度上有区别么?
我使用 #1653 (comment) 下面的那个啊,应该是属于后者吧。速度区别我就没有试了。
2,另外,我个人感觉还是proxy模式更灵活一些,不用接管全栈的流量,也安全一些。 3,但有一个问题:相比wgcf,warp-cli的内存占用好像不小(我之前只用proxy模式内存都非常高)
我也挺喜欢client方案的,同时你可试试菜单14 那基于Client 的 Warp 模式,速度远远大于 proxy 模式。最近脚本处理了,让两者都很好的适配双栈了,但 Client 正如你第3点所说的,缺点是资源占用大,内存时不时大于100MB,去到200多MB的
(相比warp模式或者wgcf的那种,还要小心添加路由表以防止vps失联)
至于 vps 失联是由于配置文件错误,手动的时候没有注意好容易出问题,脚本的话自动检测好,发生的机率应该不高。
我今天早上重新配置了一边,,依旧无效:无法让路由里指定的域名走socks5的ipv6出站。和我当时在你那里提问的结果一样。
"rules": [ { "type":"field", "outboundTag":"socks6-out", "domain":[ "domain:ip.sb", "domain:test-ipv6.com", "geosite:openai" ] }, ..... "outbounds": [ { "protocol": "freedom", "tag": "direct" }, { "protocol": "blackhole", "tag": "block" }, { "tag":"socks6-out", "protocol":"socks", "settings":{ "servers":[ { "address":"127.0.0.1", "port":40000 } ] }, "streamSettings":{ "sockopt":{ "domainStrategy":"UseIPv6" } } } ],
把test-ipv6.com加入路由后,访问之后,结果如下:
你的公网 IPv4 地址是 xxxx---这里显示的是Cloudflare的IPv4地址 你的公网 IPv6 地址是 xxxx---这里显示的是Cloudflare的IPv6地址 你的运营商(ISP)是 CLOUDFLARENET 你已接入 IPv6,因此我们增加了一个标签页,显示你能否访问其他 IPv6 网站。[更多信息] 你已经有 IPv6 地址了,但你的浏览器不太愿意用,这一点比较令人担心。 [更多信息] 你的 DNS 服务器(可能由运营商提供)已经接入 IPv6 互联网了。 IPv6 状况评分 10/10 此分数表示你的系统对 IPv6 的支持程度和稳定性 点击查看 测试数据
2个ip地址都已经是warp后的地址了,但最终的结果就是浏览器访问时,是ipv4优先落地,达不到我希望ipv6的warp访问指定域名的目的。
再描述的清楚一点:我本身vps就是双栈机器,如果不用warp,直接访问都是ipv6优先访问目标网站。但套了warp后按上述配置后就不行了。
不是有了warp的ipv6地址就ok,要真正用它落地才算成功,你可以用这些来测试: https://chat.openai.com/cdn-cgi/trace http://ip6.me/ https://test-ipv6.com/
反正。在我这里无效。放弃。
socks出站看你填的socks代理的地址,如果是ip地址,那么domainStrategy会被忽略,如果是域名需要解析,那么domainStrategy才会生效。另外,socks客户端传递的是域名,走v4还是走v6是服务端决定的,和Xray无关。你可以另外设一个warp为纯ipv6或ipv6优先,然后在xray里面填它。 xray出站的domainStrategy只影响xray自身对外连接的地址类型。比如用v4还是v6地址连接socks服务器。socks服务器服务器怎么连接与其无关。
socks出站看你填的socks代理的地址,如果是ip地址,那么domainStrategy会被忽略,如果是域名需要解析,那么domainStrategy才会生效。另外,socks客户端传递的是域名,走v4还是走v6是服务端决定的,和Xray无关。你可以另外设一个warp为纯ipv6或ipv6优先,然后在xray里面填它。 xray出站的domainStrategy只影响xray自身对外连接的地址类型。比如用v4还是v6地址连接socks服务器。socks服务器服务器怎么连接与其无关。
问题就在这里“socks客户端传递的是域名,走v4还是走v6是服务端决定的,和Xray无关”
我在vps上执行 curl ip6.me/api/ 返回的是VPS的IPv6地址
执行 curl -x "socks5://127.0.0.1:40000" ip6.me/api/ 返回的是Warp的IPv6地址
但到了Xray里就变IPv4了。我的Xray都是默认设置没有任何DNS策略(意思也就是交给系统),系统都能做对,但到了xray就不对了。
我始终没有用办法用proxy模式搞定后来才换了wgcf。看到上面你们的方案居然成功了,不知道是怎么成功的。你最终测过那路由指定的网站的落地IP么?
https://chat.openai.com/cdn-cgi/trace http://ip6.me/ https://test-ipv6.com/
把这几个加进去验证下? 看看是不是真的成功了,还是说只是显示有warp的V6地址(不要用ip.sb 它不会告诉你你优先用那个ip访问它的)
要么是我错了,要么是你们错了。
https://github.com/XTLS/Xray-core/pull/2043 建议等这pr合了再试
2043 建议等这pr合了再试
好的 谢谢。我的vps实际上是可以使用chatgpt的,我就是向再套一层,做ip保护稳定使用。这个是我的初衷。
不过我现在发现套了warp(目前是走ipv4出去,用geosite:openai),打开的chatgpt总是有些问题,比如页面某些东西加载不出来。或者无法使用。
不知道什么原因,猜测是要么是域名策略不完整,有漏掉的,要么就是ip不干净CF的ip被针对了
不是一个稳定的好办法。
socks出站看你填的socks代理的地址,如果是ip地址,那么domainStrategy会被忽略,如果是域名需要解析,那么domainStrategy才会生效。另外,socks客户端传递的是域名,走v4还是走v6是服务端决定的,和Xray无关。你可以另外设一个warp为纯ipv6或ipv6优先,然后在xray里面填它。 xray出站的domainStrategy只影响xray自身对外连接的地址类型。比如用v4还是v6地址连接socks服务器。socks服务器服务器怎么连接与其无关。
问题就在这里“socks客户端传递的是域名,走v4还是走v6是服务端决定的,和Xray无关”
我在vps上执行 curl ip6.me/api/ 返回的是VPS的IPv6地址
执行 curl -x "socks5://127.0.0.1:40000" ip6.me/api/ 返回的是Warp的IPv6地址
但到了Xray里就变IPv4了。我的Xray都是默认设置没有任何DNS策略(意思也就是交给系统),系统都能做对,但到了xray就不对了。
我始终没有用办法用proxy模式搞定后来才换了wgcf。看到上面你们的方案居然成功了,不知道是怎么成功的。你最终测过那路由指定的网站的落地IP么?
https://chat.openai.com/cdn-cgi/trace http://ip6.me/ https://test-ipv6.com/
把这几个加进去验证下? 看看是不是真的成功了,还是说只是显示有warp的V6地址(不要用ip.sb 它不会告诉你你优先用那个ip访问它的)
要么是我错了,要么是你们错了。
我这边各种测试都OK,是CF的IPv6地址。
socks出站看你填的socks代理的地址,如果是ip地址,那么domainStrategy会被忽略,如果是域名需要解析,那么domainStrategy才会生效。另外,socks客户端传递的是域名,走v4还是走v6是服务端决定的,和Xray无关。你可以另外设一个warp为纯ipv6或ipv6优先,然后在xray里面填它。 xray出站的domainStrategy只影响xray自身对外连接的地址类型。比如用v4还是v6地址连接socks服务器。socks服务器服务器怎么连接与其无关。
问题就在这里“socks客户端传递的是域名,走v4还是走v6是服务端决定的,和Xray无关” 我在vps上执行 curl ip6.me/api/ 返回的是VPS的IPv6地址 执行 curl -x "socks5://127.0.0.1:40000" ip6.me/api/ 返回的是Warp的IPv6地址 但到了Xray里就变IPv4了。我的Xray都是默认设置没有任何DNS策略(意思也就是交给系统),系统都能做对,但到了xray就不对了。 我始终没有用办法用proxy模式搞定后来才换了wgcf。看到上面你们的方案居然成功了,不知道是怎么成功的。你最终测过那路由指定的网站的落地IP么? https://chat.openai.com/cdn-cgi/trace http://ip6.me/ https://test-ipv6.com/ 把这几个加进去验证下? 看看是不是真的成功了,还是说只是显示有warp的V6地址(不要用ip.sb 它不会告诉你你优先用那个ip访问它的) 要么是我错了,要么是你们错了。
我这边各种测试都OK,是CF的IPv6地址。
谢谢反馈!那就是能实现。但我目前找不到我这里不成功的原因。
我发现有的地方 warp ipv4 可以,有的ipv6才行,所以要试试,也不知道是否能像奈飞那样换 ip 就可以,如果是,我弄到 warp 解锁那个项目处。
谢谢反馈!那就是能实现。但我目前找不到我这里不成功的原因。
我这边所有的Xray,不论本地软路由还是VPS上的,配置里面都没有写domainStrategy,无论VPS还是WARP其实都是IPv6优先的。 只要Xray的入站开了域名嗅探,基本不会出现v4优先的情况。
边所有的Xray,不论本地软路由还是VPS上的,配置里面都没有写domainStrategy,无论VPS还是WARP其实都是IPv6
我看了下我的,这样设置的
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls",
"quic"
]
}
对么?
另外我的xray是1.8.3 用的是-beta参数安装的 最新的
边所有的Xray,不论本地软路由还是VPS上的,配置里面都没有写domainStrategy,无论VPS还是WARP其实都是IPv6
我看了下我的,这样设置的
"sniffing": { "enabled": true, "destOverride": [ "http", "tls", "quic" ] }
对么?
我下面发了一个完整的一次请求chat.openai.com/cdn-cgi/trace的日志,你可以和你自己的Xray日志对比一下哪部分有区别。 我的WARP是直接用Xray的wireguard协议配置的。
root@OWRT /root [25]# curl -Lkx socks5://127.0.0.1:8081 -H 'Host: chat.openai.com' '0.0.0.0/cdn-cgi/trace'
fl=466f106
h=chat.openai.com
ip=2a09:bac5:654c:1246::1d2:6a
ts=1687765648.688
visit_scheme=http
uag=curl/8.1.1
colo=SJC
sliver=none
http=http/1.1
loc=US
tls=off
sni=off
warp=on
gateway=off
rbi=off
kex=none
#路由器 xray_access.log
2023/06/26 15:47:28 tcp:127.0.0.1:56750 accepted tcp:0.0.0.0:80 [socks-in -> vps-reality]
#路由器 xray_error.log
2023/06/26 15:47:28 [Info] [1385509037] proxy/socks: TCP Connect request to tcp:0.0.0.0:80
2023/06/26 15:47:28 [Info] [1385509037] app/dispatcher: sniffed domain: chat.openai.com
2023/06/26 15:47:28 [Info] [1385509037] app/dispatcher: taking detour [vps-reality] for [tcp:chat.openai.com:80]
2023/06/26 15:47:28 [Info] [1385509037] transport/internet/tcp: dialing TCP to tcp:[VPS]:433
2023/06/26 15:47:28 [Info] [1385509037] proxy/vless/outbound: tunneling request to tcp:chat.openai.com:80 via [VPS]:433
2023/06/26 15:47:28 [Info] [1385509037] proxy/vless/encoding: XtlsPadding 91 59 0
2023/06/26 15:47:28 [Info] [1385509037] proxy/vless/encoding: Xtls Unpadding new block0 16 content 554 padding 189 0
2023/06/26 15:47:29 [Info] [1385509037] app/proxyman/inbound: connection ends > proxy/socks: connection ends > context canceled
#VPS xray_access.log
2023/06/26 03:47:28 [CLIENT]:54458 accepted tcp:chat.openai.com:80 [tcp_reality >> wireguard]
#VPS xray_error.log
2023/06/26 03:47:28 [Info] [3519833748] proxy/vless/inbound: firstLen = 227
2023/06/26 03:47:28 [Info] [3519833748] proxy/vless/inbound: received request for tcp:chat.openai.com:80
2023/06/26 03:47:28 [Info] [3519833748] proxy/vless/encoding: Xtls Unpadding new block0 16 content 91 padding 59 0
2023/06/26 03:47:28 [Info] [3519833748] app/dispatcher: sniffed domain: chat.openai.com
2023/06/26 03:47:28 [Info] [3519833748] app/dispatcher: default route for tcp:chat.openai.com:80
2023/06/26 03:47:28 [Info] [3519833748] proxy/vless/encoding: XtlsPadding 554 189 0
2023/06/26 03:47:30 [Info] [3519833748] app/proxyman/inbound: connection ends > proxy/vless/inbound: connection ends > context canceled
ng detour [vps-reality] for [tcp:chat.ope
谢谢。原来你和我的warp方案不同,我之前用wgcf也ok的,我只是用warp-cli客户端的proxy模式不行。我奇怪的是上面那几位说 用proxy可以。
ng detour [vps-reality] for [tcp:chat.ope
谢谢。原来你和我的warp方案不同,我之前用wgcf也ok的,我只是用warp-cli客户端的proxy模式不行。我奇怪的是上面那几位说 用proxy可以。
实际我之前也用的proxy,后来xray直接支持了就改用xray了,两者用起来没区别,还更方便了.
socks出站看你填的socks代理的地址,如果是ip地址,那么domainStrategy会被忽略,如果是域名需要解析,那么domainStrategy才会生效。另外,socks客户端传递的是域名,走v4还是走v6是服务端决定的,和Xray无关。你可以另外设一个warp为纯ipv6或ipv6优先,然后在xray里面填它。 xray出站的domainStrategy只影响xray自身对外连接的地址类型。比如用v4还是v6地址连接socks服务器。socks服务器服务器怎么连接与其无关。
问题就在这里“socks客户端传递的是域名,走v4还是走v6是服务端决定的,和Xray无关”
我在vps上执行 curl ip6.me/api/ 返回的是VPS的IPv6地址
执行 curl -x "socks5://127.0.0.1:40000" ip6.me/api/ 返回的是Warp的IPv6地址
但到了Xray里就变IPv4了。我的Xray都是默认设置没有任何DNS策略(意思也就是交给系统),系统都能做对,但到了xray就不对了。
我始终没有用办法用proxy模式搞定后来才换了wgcf。看到上面你们的方案居然成功了,不知道是怎么成功的。你最终测过那路由指定的网站的落地IP么?
https://chat.openai.com/cdn-cgi/trace http://ip6.me/ https://test-ipv6.com/
把这几个加进去验证下? 看看是不是真的成功了,还是说只是显示有warp的V6地址(不要用ip.sb 它不会告诉你你优先用那个ip访问它的)
要么是我错了,要么是你们错了。
使用内核WireGuard,IPv4出站和IPv6出站是分开的。 用下面的Routing配置在访问ip6.me/api/ - Dual stack IPv6 and IPv4 (preference depends on your OS/client)的时候显示的是IPv6地址。但是访问https://chat.openai.com/cdn-cgi/trace的时候显示是IPv4。
{
"type": "field",
"user": ["VLESS_warp"],
"ip": ["2::/3"],
"outboundTag": "warp-IPv6-out"
},
{
"type": "field",
"user": ["VLESS_warp"],
"ip": ["0.0.0.0/0"],
"outboundTag": "warp-IPv4-out"
}
搞定了,最后用链式代理的方法实现了,通过warp的proxy模式分流指定域名走ipv6的流量出站
路由规则如下:
{
"type":"field",
"outboundTag":"WARP-socks5-v6",
"domain":[
"domain:ip.sb",
"domain:test-ipv6.com",
"domain:ip6.me",
"geosite:openai"
]
},
出站写法,增加一个freedom协议的出站设置它再走代理:
{
"tag":"warp",
"protocol":"socks",
"settings":{
"servers":[
{
"address":"127.0.0.1",
"port":40000
}
]
}
},
{
"tag":"WARP-socks5-v6",
"protocol":"freedom",
"settings":{
"domainStrategy":"UseIPv6"
},
"proxySettings":{
"tag":"warp"
}
}
需求:建立一个outbound指向监听本地某端口的代理,并指定其解析为IPv4或IPv6。 目前用的是Socks出站,但我发现:
一、官方文档中Socks貌似不支持将domainStrategy设置为UseIP/UseIPv4/UseIPv6/AsIs,后续能否支持?
二、才发现Freedom出站有redirect功能,跟Socks一样没有加密、能同时传输TCP和UDP数据,请问Freedom中的redirect和Socks有什么区别呢?哪个性能更好一些? 如果Socks确实无法自定义domainStrategy,那我是否可以用Freedom中的redirect来实现我的需求?