ikago 和 pcap2socks 使用体验
参考文章:分享自己用 Go 写的游戏加速器 IkaGo - V2EX
从 Newlearner の自留地 了解到的游戏加速软件。
后来发现作者还写了一个 pcap2socks 的项目,同样用于游戏加速。
区别在于,
- ikago 是完整的一套游戏加速方案;
- pcap2socks 只保留了旁路由的功能,还需搭配 socks 代理使用。
和很多专攻 pc 代理的加速器不同,这类型加速器的加速原理是旁路由,常见于给各种游戏主机加速。用过各种游戏加速器 pc 客户端主机加速的都应该有印象:在 pc 这边开好主机加速,再在游戏机那一段设置好 ip 配置,正确设置的话 pc 加速器这边会显示已成功加速。而这俩加速器的使用步骤也差不多是这样。
当然,自建加速器和大厂加速器的取舍我已经在另一篇文章里提过了,这里只谈这种方案在技术上对普通加速器的优势:
各个大厂的游戏加速器的主机加速功能只能为一台设备加速,而且这台设备还有平台限制;而自建加速器想加速多少设备就加速多少设备;只要你想,加速 pc 、手机也可以。
当然了,旁路由加速要求加速设备和被加速设备不能是同一个设备,用过大厂游戏加速器主机加速的人也应该对此深有体会,自己想玩主机却还要一直开着电脑?大厂们也知道这点,于是就趁机贩卖起能够更为小巧省电,独立运行器加速器的主机盒;以及我在另一篇文章中谈到那些能安装加速器插件的路由器。其实原理都并没有脱离 arp 劫持 + 代理流量的旁路由模式。自建就更灵活了:只要你的设备能跑起 go,就能运行。各类软路由,甚至手机上的 termux,都可以达成要求,这里就不详细阐述了。
ikago
下载
server 和 client 端运行平台是 linux 或者 windows 的,直接下载对应 release。或者按文档给的方法,安装 go 并 git clone 项目后使用 go run 运行,适合其他平台。
服务端配置
vps 这边新建一个 server.json,假设就放在 /root 下吧
| 1 | { | 
可以改的几个地方:
- monitor 是和 web 监控端链接的接口。不过 monitor 这个接口在 client 端开就足够了,不一定要在 server 端这里再开一个。
- verbose,详情,设为 true 日志会变得更详细。
- log。日志输出位置。但后续我们会用 supervisor 开启自启的同时去输出日志,所以没必要开这个。
- port。远程端口。
看起来可以调但其实不能调的地方:
- mode。文档写可选 tcp 和 faketcp,但实际上用 tcp 的话不能开启加密,即 method 那里只能填 none,否则连不通。
- kcp。kcp 设为打开的话,client 端平台不能是 windows,否则也连不通,会报错 network layer type not support。
这俩应该是 bug 吧(前者在项目的 Known Issues 中有提到)。。。不过看作者项目好久没动,我也不好意思提 issue 去了(又不是不能用)。
假设咱的 release 版 server 端二进制文件放在 /root/ikago 下吧,启动看看:
| 1 | /root/ikago/ikago-server -c /root/ikago/server.json | 
大概效果是这样的:

客户端配置
以 windows 为例,新建 client.json:
| 1 | { | 
- monitor 和 verbose,和 server 那边含义一致。client 这边建议都开启。
- sources:劫持并监听的本地 ip,即要加速的设备在路由器下的本地 ip。
- publish:除了使用 arp 或者到路由器中获取需要加速设备的 ip 并填入 sources 中,更推荐的方法是单独做一个网段,用过加速器主机加速的各位应该都不陌生。作者选用的方法是模仿 tx 加速器的网段设置,被加速主机 ip 填 10.6.0.1,网关填 10.6.0.2,前者写到 sources 中,后者写到 publish 中,我个人又多加了一个 ip,这样如果还有另一个加速的设备就不用回来再修改了。
启动
| 1 | .\ikago-client.exe -c .\client.json | 
效果差不多是这样的:

开始使用
被加速设备改用手动获取 ip 地址,publish 处的地址填入网关一项中;sources 处的其中一个地址填入 ip 一项中,子网掩码为 255.255.255.0,dns 一项填入 8.8.8.8。
打开 ikago-web,可以选择拉取项目 zhxie/ikago-web: IkaGo Web is a front-end interface for IkaGo. 在本地打开或者自搭,也可以使用作者搭建的 web 页面。
点击 configure,path 改成 localhost:9400。正确设置的话,status 处会显示为 active,并且左下角显示有已经加速上的设备。
服务端设置自启(可选)
- 安装 supervisor - 1 - apt install supervisorctl -y 
- 新建一个 - ikago.conf,内容如下- 1 
 2
 3
 4
 5
 6
 7- [program:ikago] 
 user=root
 command=/root/ikago/ikago-server -c /root/ikago/server.json
 autostart=true
 redirect_stderr = true
 stdout_logfile_maxbytes = 1MB
 stdout_logfile = /tmp/ikago.log- 把这个文件放进 - /etc/supervisor/conf.d。
- 运行 - 1 - supervisorctl reload - 后续直接通过 - 1 - tail -f /tmp/ikago.log - 查看日志。 
其他问题
- 有时虽然配置正确了,被加速设备在 web 面板中却未出现,且被加速设备也连接不上网络。尝试重启笔记本和路由器,还有可能是某些路由器本身系统因素导致出现问题,我曾经就遭遇过加速设备在主路由(ac86u,梅林改,本身就不算稳定的系统)加速不上,挂上一个刷入小米路由器的联想 newifi mini 并让加速和被加速设备连上后加速成功的例子。 - 另一种情况是我一开始习惯把网关设为 - .1为结尾的地址,因此 publish 处我填了- 10.6.0.1,sources 处填了- 10.6.0.2,而被加速设备处也进行相应顺序上的调换,结果发现加速不上;换回来就成功了。这就比较玄学了。。。后面的 pcapsocks 也出现过这样的问题。
- 我在前一篇文章中写过不太推荐这个加速器,原因就在于,我运行后也没在使用,但五六天后我的探针给我报警了,回来一查:  - 摊手( 
pcap2socks 和 pcap2socks-gui
和 ikago 略有差异,pcap2socks 隧道的工作交给 socks5 了,只需要一个放在本地的二进制文件即可。假设 socks 开在 1080 端口,则:
| 1 | .\pcap2socks.exe -s 10.6.0.1 -p 10.6.0.2 -d 127.0.0.1:1080 | 
这里的 -s 和 -p 在上面的 ikago client 配置中都有对应项,还不熟悉的可以返回去看。
这时多半会报错
| 1 | error: Cannot determine the interface. Available interfaces are listed below, and please use -i <INTERFACE> to designate: | 
然后底下这些就是设备列表,找到你的上网网卡的设备,复制前面那一长串 \Device\NPF_{xxx},在命令用 -i 参数带上,即再次输入:
| 1 | .\pcap2socks.exe -s 10.6.0.1 -p 10.6.0.2 -d 127.0.0.1:1080 -i '\Device\NPF_{xxx}' | 
主机端参考 ikago 那边的设置就行了。
这个我还是不推荐用。。。因为有时运行一段时间就报错:
| 1 | warning: receive from proxy: TCP: xxx:443 -> 0: 你的主机中的软件中止了一个已建立的连接。 (os error 10053) | 
但其 gui 版本经过我实验表现相对稳定,也不用考虑网卡那串长长的 CLSID,甚至有 tx/uu 加速器默认的 ip 方案可直接选用,推荐使用。(这都喂到嘴里了,应该不用教了吧,gui 教程还要截图挺累的)

(唯一的缺点也许是不能在软路由上用 gui 版。不过软路由直接设置成旁路由然后全局代理他不香嘛?)
不过这里还是有个小问题,某些设备(特别是 windows 20H2)打开这个 gui 看到的是一片空白,我排查了一下,应该是新版 edge 的锅,有这么几种解决方案:
- (优先使用)作者在项目中底下写的,启用 loopback 。以管理员权限运行 powershell,输入: - 1 - CheckNetIsolation.exe LoopbackExempt -a -n="Microsoft.Win32WebViewHost_cw5n1h2txyewy" 
- 安装 chromium edge dev。可以从 Microsoft Edge Insider Channels 下载。也可以直接用 chocolatey 安装。 - 1 - choco install microsoft-edge-insider-dev -y 
- 嫌 chromium edge dev 太臃肿?也可以只下 runtime:Webview2 - Microsoft Edge Developer。下载安装里面的 x64 版「常青版独立安装程序」(卧槽这翻译和坐和放宽有的一拼)。 
- (并不是正确的解决方法,但我潜意识感觉后续可能会有用,记录一下)更新 - WebView2Loader.dll。
 安装 nuget- 1 - choco install NuGet.CommandLine -y - 安装 NuGet Gallery | Microsoft.Web.WebView2 1.0.705.50: - 1 - nuget install Microsoft.Web.WebView2 - 提取 - WebView2Loader.dll,可利用 everything 搜索,一般在- C:\Windows\System32\Microsoft.Web.WebView2.1.0.705.50\build\x64\下,everything 可能会搜索到其他几个 x64 目录下也有- WebView2Loader.dll,应该都是同一个文件。pcap2socks 自带的- WebView2Loader.dll应该包含了几个平台的依赖,大小 400 多 k,我们提取的 x64 版只有 133k。(这年头不会还有用 x86 的吧?用 x86 寨板跑加速?)- 然后把提取到的文件覆盖进 pcap2socks 目录内就行。 - (21.4.2 更新) netch 已于上个月加入 pcapsocks 功能。我试了一下,好用。除了代理地址定义起来没有原版 pcap2socks 简单,以及界面不够好看,应该没啥缺点。