分享自己用 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 条回复
wafm
2020-06-21 15:14:57 +08:00
可惜现在的国内加速器厂商好像都做了壁垒?

比如要同为一个加速器的朋友才能好好玩耍了
Sketch
2020-06-21 15:27:44 +08:00
@wafm 虽然有听朋友说起过,但我感觉这些都只是他们自己的 bug
wafm
2020-06-21 15:54:12 +08:00
@Sketch 不是的,我亲测过,某 U 就是这样,我最后还是妥协冲了一个 妥妥的就行了
Sketch
2020-06-21 15:58:17 +08:00
@wafm 挺微妙。不过你想,如果加速器有壁垒,那么不就相当于变成游戏局域网了吗,即使你用着电信宽带有着原生的 Full Cone NAT,也不能和好友游戏
LPeJuN6lLsS9
2020-06-21 17:42:25 +08:00
还能用 arp 搞,长见识了。比起 tun/tap 有什么优势和劣势呢
LPeJuN6lLsS9
2020-06-21 17:46:02 +08:00
@hantsuki 看样子不能自己代理自己,没仔细读说明。还是继续用 tun2socks 了
Sketch
2020-06-21 17:55:26 +08:00
@hantsuki 是的,不能自己代理自己。真要说优势的话,大概就是能很方便的代理局域网中的其它设备(这也是目的)。
XanderChen
2020-06-21 18:37:35 +08:00
很强,

向大佬学习。
xwhxbg
2020-06-21 18:43:03 +08:00
呃,proxychains 了解一下?
Sketch
2020-06-21 19:04:59 +08:00
@xwhxbg 稍微看了一下,实现的目的其实不太一样?
wafm
2020-06-21 23:15:57 +08:00
@Sketch 当时确实是的,我开始用自己的路由器直接走海外的,NAT 也显示为 A,开始还玩的可以速度也很快,自从猛男树枝出一些问题后,某 U 就开始有这方面的动作了
wafm
2020-06-21 23:16:48 +08:00
@Sketch 当时裸连也是不行,用 XUN 游也不行,最后实在没办法冲了个 U
ssshooter
2020-06-22 08:43:05 +08:00
看起来不错,放假试试
ragnaroks
2020-06-22 09:08:36 +08:00
一人血书代理本机
Sketch
2020-06-22 09:13:17 +08:00
@ragnaroks 这个需求的项目还是挺多的吧,比如 #6 提到的
ragnaroks
2020-06-22 09:53:14 +08:00
@Sketch 因为代理本机操作起来最无脑最符合直接需求
march1993
2020-06-22 09:55:49 +08:00
Linux iptables redirect 不香吗
Sketch
2020-06-22 09:59:29 +08:00
@march1993 很香,但是 Windows 和 macOS 似乎无解
tkwl
2020-06-22 10:28:11 +08:00
如你所说,加速器优质的是低延时线路。。。还是赞一个
littlespider89
2020-06-22 11:36:31 +08:00
使用的时候显示

Cannot determine interface. Available interfaces are listed below, use -i <INTERFACE> to designate:

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

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

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

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

© 2021 V2EX