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

请求添加新功能: wireguard出站设置v4或v6优先 #1842

Closed
Weltolk opened this issue Mar 22, 2023 · 17 comments
Closed

请求添加新功能: wireguard出站设置v4或v6优先 #1842

Weltolk opened this issue Mar 22, 2023 · 17 comments

Comments

@Weltolk
Copy link

Weltolk commented Mar 22, 2023

https://xtls.github.io/config/outbounds/wireguard.html

https://xtls.github.io/document/level-2/warp.html

@chika0801
Copy link
Contributor

#1385 (comment)

我之前测过,是不能v6优先的,隔壁平台程序似乎也是这样的情况。

@Weltolk
Copy link
Author

Weltolk commented Mar 22, 2023

#1385 (comment)

我之前测过,是不能v6优先的,隔壁平台程序似乎也是这样的情况。

对,没有这个选项,而且和顺序无关

@chika0801
Copy link
Contributor

要实现v6优先,我的做法是warp-go 或 wgcf,注册好后,全局接管。

@Weltolk
Copy link
Author

Weltolk commented Mar 22, 2023

要实现v6优先,我的做法是warp-go 或 wgcf,注册好后,全局接管。

用wireguard接管所有流量吗?

@Weltolk
Copy link
Author

Weltolk commented Mar 22, 2023

要实现v6优先,我的做法是warp-go 或 wgcf,注册好后,全局接管。

请问这样还能实现分流吗(指定域名才走warp,其他从服务端直连

@chika0801
Copy link
Contributor

用wireguard接管所有流量吗?

是的。

请问这样还能实现分流吗(指定域名才走warp,其他从服务端直连

不能了,我的解决方法是找台 vps b 全局接管,你连的是vps a,在a上设置 rule 规则,把要用warp的网址,出站 发到 vps b 去(我开ss2022协议)

@Weltolk
Copy link
Author

Weltolk commented Mar 22, 2023

用wireguard接管所有流量吗?

是的。

请问这样还能实现分流吗(指定域名才走warp,其他从服务端直连

不能了,我的解决方法是找台 vps b 全局接管,你连的是vps a,在a上设置 rule 规则,把要用warp的网址,出站 发到 vps b 去(我开ss2022协议)

感谢分享,我等xray支持(

@rui0572
Copy link
Contributor

rui0572 commented Mar 22, 2023

请问这样还能实现分流吗(指定域名才走warp,其他从服务端直连

参见 https://xtls.github.io/Xray-docs-next/document/level-2/redirect.html

@chika0801
Copy link
Contributor

这方法我记得用 https://github.com/fscarmen/warp 这里面的warp-go脚本,可以用非全局接管的选项。且创建了一个虚拟网卡。所以你可以看看上面的指定出站用哪一个网卡,能不能成功。

@Weltolk
Copy link
Author

Weltolk commented Mar 22, 2023

这方法我记得用 https://github.com/fscarmen/warp 这里面的warp-go脚本,可以用非全局接管的选项。且创建了一个虚拟网卡。所以你可以看看上面的指定出站用哪一个网卡,能不能成功。

另外请问你用本身v4 v6双栈的机器试过wgcf+xray的wireguard吗?我这边这样配置的话,如果wireguard出站携带了wgcf生成的v6 ip,则出站无法连接,只有纯v4 ip出站才可以

@chika0801
Copy link
Contributor

我没有在原生有v4 v6的vps,按你说的方法测试了。

@RPRX
Copy link
Member

RPRX commented Mar 22, 2023

这个 issue 我还没看,不过我想借楼回答一下:为什么 Xray 的 WireGuard 出站性能差?

其实 Xray-core 和 sing-box 用的是完全相同的库,所以有没有一种可能,由于 VR 把 Go 当成 Java 来写,写 v2ray 时过度追求各种设计模式,导致架构异常繁杂(我看代码都很费劲),一个 UDP 包要经过 N 个流程,所以 *ray 处理 UDP 的性能就是很差。

之前我只修了 FullCone 相关的问题,没修性能,毕竟打游戏不需要那么大流量,但你要用来测速就不一样了,所以以后会修性能。

当然 TCP 的性能是小修过的,主要是全开 ReadV 和增大 buffer,所以 sing-box 文档那里 v2 的性能数据无法代表 Xray 的数据。

对于“增大 buffer”有人觉得只是改了个数字,不算什么,这就像别人一锤修好了你的机器,你觉得不值钱的那个故事一样,没有前期大量研究、计算,知道锤哪吗?我们也是控制变量做了大量研究、测试,才找到瓶颈在哪,无非是开源出来,你一 diff 就知道了。

举个例子,很多军工技术也是投入大量资源研究,但研究结果一看就会,比如战斗机的外形曲线,宁愿炸毁也不愿被别人捡到。

@chika0801
Copy link
Contributor

chika0801 commented Mar 22, 2023

我测的情况是同一台vps,优化线路, xray-core 用wireguard出站,对比 sing-box 用wireguard出站。

客户端用v2rayn,连上vps(协议是vision tls)。客户端上用浏览器,进speedtest.net的网页版,选多线程,vps所在地区的测试节点。

xray约 70-80Mbps sing-box约 300-400Mbps。

群友说xray的性能差(慢)估计是大家跑speedtest测速观察的。

@RPRX
Copy link
Member

RPRX commented Mar 22, 2023

提升性能的核心就在于减少处理流程,尤其是 copy 次数,sing-box 有个预留头部挺好的,毕竟之前我也想这么干,后来搞 XTLS 了

因为性能不足设备通常是 Linux,比如 7621,XTLS 可以直接 Splice,和软件架构、什么语言都无关了,所以 Rust 计划都不紧急了

@nekohasekai
Copy link
Collaborator

@RPRX 你说的对,但是 Xray 没给直连写 splice(

@RPRX
Copy link
Member

RPRX commented Mar 22, 2023

@RPRX 你说的对,但是 Xray 没给直连写 splice(

那下个版本就加

@kdurov
Copy link

kdurov commented Apr 18, 2023

看到这里有讨论wireguard出站速度慢的。
试了下 1.8x,貌似没有改善,是要到1.9x才会解决么?

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

7 participants