V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  SunBK201  ›  全部回复第 1 页 / 共 2 页
回复总数  37
1  2  
@SunBK201 或者 go run . -m TPROXY --rewrite-mode GLOBAL --include-lan-routes --bpf-offload
@macscsbf 更正下命令,应该使用命令 go run . -m TPROXY --rewrite-mode DIRECT --include-lan-routes --bpf-offload
@macscsbf 虚拟机没问题,我就是用的 UTM 复现的
@macscsbf 需求是用 eBPF 加速 socket 铰接转发,主要是用在 TCP socket 代理上,从一个 socket 上读到数据并写到另一个 socket 上,现在主流做法是用 splice 来做,我想试试 eBPF redirect 能够加速,理论上除了能够零拷贝还能节省系统调用带来的用户态与内核态之间的上下文切换开销。

如果要测试可以参考下我的代码:
1. eBPF 程序 https://github.com/SunBK201/UA3F/blob/v3.3.0/src/internal/bpf/sockmap/sockmap.c
2. 核心就是保存 2 个 socket 的 cookie 到 SOCKHASH ,然后用 `bpf_sk_redirect_hash` 转发
3. 可以在本机使用 iperf3 或者 netperf 做吞吐测试
4. 如果要完整复现可能比较麻烦,因为我还用到了 TPORXY ,可以直接用我的项目试试 https://github.com/SunBK201/UA3F ,`go run . -m TPROXY --include-lan-routes`。这个命令会接管本机的所有 TCP 连接并进行代理,然后在本机使用 iperf3 请求到另一台机器即可。
@swananan 感谢回复。其实我之前就是用 splice 做的,用 eBPF 就是想看看能不能再把转发性能提升一些,目前测试看来对于发送时延和 CPU 负载都能有 20% 到 30% 的优化提升,不过目前看来可能只适用于网络接口带宽收发对等的场景。
2 月 20 日
回复了 sxmad 创建的主题 macOS Mac 上好用的 markdown 预览插件
c3VuYmsyMDFnbUBnbWFpbC5jb20= 感谢
2025 年 12 月 11 日
回复了 SunBK201 创建的主题 宽带症候群 nftables 如何匹配的 TCP 中存在 Payload 数据包?
@unused 这个方法刚刚我也发现了,但是 ih 似乎需要比较新的 nftables 版本,旧版本不支持🥲
2025 年 12 月 11 日
回复了 SunBK201 创建的主题 宽带症候群 nftables 如何匹配的 TCP 中存在 Payload 数据包?
@birdvdsk 我也有想到,但是只用 flag 可能有漏报吧
2025 年 12 月 11 日
回复了 SunBK201 创建的主题 宽带症候群 nftables 如何匹配的 TCP 中存在 Payload 数据包?
@luojiyin87 似乎有语法错误? Error: syntax error, unexpected hdrlength, expecting ')'
2025 年 12 月 11 日
回复了 SunBK201 创建的主题 宽带症候群 nftables 如何匹配的 TCP 中存在 Payload 数据包?
@birdvdsk 我需要使用 nftables 把包含 payload 的 TCP 数据包 hook 到用户态的 nfqueue 进行处理,之前的做法是对全部的 TCP 数据包进行 hook ,但是性能损耗太大,所以想要加一层过滤。
2025 年 11 月 11 日
回复了 SunBK201 创建的主题 分享创造 UA3F: 透明重写 HTTP Header
@whileFalse 只修改 http ,https 直接放行
2024 年 2 月 27 日
回复了 SunBK201 创建的主题 问与答 Mac 上支持 4K 60FPS 录制的采集卡
@weak 请问具体是什么型号呢?
2023 年 5 月 15 日
回复了 inhzus 创建的主题 程序员 左耳朵耗子于周六晚突发心梗去世
R.I.P.
2022 年 9 月 17 日
回复了 bigxianyu 创建的主题 问与答 怎样定制 youtube 的首页,只保留一个搜索栏功能 ?
Userscript
ltrace
strace
"同一时间,调用 rand()" 可能是 srand() 的精度不够高,可以提升至纳秒级别:
struct timespec seed;
clock_gettime(CLOCK_REALTIME, &seed);
srand(seed.tv_sec + seed.tv_nsec);
randnum = rand();
2022 年 9 月 11 日
回复了 river010 创建的主题 Apple 在国内用原生邮件客户端收发各种邮件属实让人抓狂
@terencehan @Love4Taylor @luckykong
iCloud Mail 在国内的 imap 服务器应该是存在某些 Bug ,所以我们可以绕过国内云上贵州的服务器直接使用 Apple 美国的服务器,操作方法是:将 p*-imap.mail.icloud.com.cn 映射到 imap.mail.icloud.com ,p*-smtp.mail.icloud.com.cn 映射到 smtp.mail.icloud.com
2022 年 9 月 3 日
回复了 lujiangwen 创建的主题 MacBook Pro 2017 MBP Wi-Fi 6 兼容性疑问
40Mhz 太窄了,换成 80Mhz 。
1  2  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2444 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 09:00 · PVG 17:00 · LAX 02:00 · JFK 05:00
♥ Do have faith in what you're doing.