pcap2socks
pcap2socks 是一个以 Rust 语言撰写的,通过 pcap 重定向流量到 SOCKS 代理的代理。
效果图(图一乐,具体效果还得看线路):
特性
- 将 TCP/UDP 流量重定向到 SOCKS 代理
- 利用了代理 ARP 应答指定 IP 地址的请求,实现将自身作为网关处理来自指定 IP 地址的网络流量(也就是类似市面上的加速器,将主机的 IP 地址与网关设为网络环境中不存在的值,由加速器来处理流量)
- 跨平台、Full Cone NAT 、开源……
如何使用
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 https://github.com/zhxie/pcap2socks
文章评论
感谢
tql