分享自己用 Rust 写的可以直接利用 SOCKS 代理的游戏加速器

2020-06-21 15:10:55 +08:00
 Sketch

之前分享了一款自己用 Go 写的游戏加速器 IkaGo,但是我也在文章中多次提到,加速器最重要的是线路而不是技术。为了能更好的利用好手上的一些优质的众所周知的 SOCKS 代理,我又开发了一款加速器(或者说,半个加速器)……

pcap2socks

pcap2socks 是一个以 Rust 语言撰写的,通过 pcap 重定向流量到 SOCKS 代理的代理。

效果图(图一乐,具体效果还得看线路):

特性

如何使用

pcap2socks -s <需要代理的设备的 IP 地址> -p <需要代理的设备上所填写的网关> -d <SOCKS 代理,如 127.0.0.1:1080>


// 比如 Nintendo Switch 的 IP 地址填写为 10.6.0.1,网关填写为 10.6.0.2,自己的 SOCKS 代理在 127.0.0.1:1080,那么
pcap2socks -s 10.6.0.1 -p 10.6.0.2 -d 127.0.0.1:1080

与市面上的加速器的比较

一些不得不提的话

pcap2socks 的实现相较 IkaGo 简单得多,也复杂得多。简单在略去了很多功能的实现,如代理、多路复用、监控网络流量等(以后可能会加回一部分),复杂在实现转发 TCP/UDP 到 SOCKS 的过程实际上是实现了一遍 TCP/UDP 栈,以及 Rust 函数式编程的编程范型与复杂的语法。开发的全过程也算是复习了一遍计算机网络,同时把自己的编程思想给更新了……

pcap2socks 相较 IkaGo 在体量上也小很多,使用其它软件实现的代理也就不需要在服务器上部署 pcap2socks 的服务端。而且 pcap2socks 只是充当被代理设备的流量到 SOCKS 流量转换的角色,因此在代理的下方也可以接各种各样不同的服务,无论是 Udp2raw-tunnel,还是 kcptun,相较 IkaGo 也多了份自由。

因为没有 macOS 的设备,而 WSL 上的 Linux 无法使用 pcap,因此目前仅在 Windows 上测试通过(理论上各平台适用)。

项目地址


希望 pcap2socks 也能帮助到需要解决联机游戏问题的你 😊

13616 次点击
所在节点    分享创造
44 条回复
Dyminas
2020-12-20 16:06:55 +08:00
试着用了一下,给 switch 加速 nat 类型是 a,和我路由器插件开游戏模式效果一样。膜拜大佬,感谢。
thetbw
2021-10-31 14:12:16 +08:00
想问下楼主这个是什么情况呢 interface 指的是什么呢
![]( https://i.loli.net/2021/10/31/PXmHokJylWzjC2Z.png)
stephenyin
2022-05-16 12:20:58 +08:00
问下大概的原理是不是这样:
1.通过 arp 欺骗冒充游戏机的网关
2.收到游戏机 TCP/UDP 数据后,封装成 sock5 协议并转发到本机 sock5 监听端口
3.下行流量是 sock5 转 TCP/UDP 再通过局域网 IP 地址转给游戏机
请问下怎么保证 arp 欺骗总是生效的?
MeteorVIP
2022-09-06 11:01:26 +08:00
大神,原来你在这.pcap2socks 简直是出差旅行打游戏必备神器~看到 natA 的时候我都惊呆了!
我现在使用:root 安卓开热点,vpnhotspot 搭配 ssr 加速 switch,nat 只能到 B.联机稳定.
有热点加速到 A 的方案吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/683486

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX