前几天去不图床离线了两个小时,本以为又是服务器受到攻击,结果是 frp 出了问题。本来想换成 nps,结果做了一下测试,发现其性能不如 frp,借此杜老师分别对四款内网穿透工具做了测试,对比结果详见正文。
问题说明
查询了服务端运行状态,提示是 too many open files,意思是打开了太多文件,这是 Linux 内核的限制。修复方式就是修改内核配置,但会影响系统的稳定性。查看了官方 Issues,听说可以用 Docker 的版本解决该问题,目前去不图床使用 Docker 版本 frp 实现内网穿透:
TCP 协议的转发
这里给出四款内网穿透工具在 TCP 协议转发性能对比「内网服务器为北京联通,上行 50M 下行 500M。外网服务器为内蒙古云主机,上下行对等 100M」
工具 | 平均延迟 | 吞吐速率 |
---|---|---|
frp | 27.935ms | 3.94MB/s |
gost | 14.942ms | 5.08MB/s |
nps | 40.902ms | 2.05MB/s |
ssh-tunnel | 19.023ms | 4.96MB/s |
HTTP 协议的转发
这里给出四款内网穿透工具在 HTTP 协议转发性能对比「内网服务器为北京联通,上行 50M 下行 500M。外网服务器为内蒙古云主机,上下行对等 100M」
工具 | 平均延迟 | 吞吐速率 | 成功几率 |
---|---|---|---|
frp | 104.92ms | 13.03MB/s | 100% |
gost | 55.02ms | 12.07MB/s | 100% |
nps | 390.01ms | 2.951MB/s | 91.9% |
ssh-tunnel | 61.91ms | 9.93MB/s | 98.7% |
配置复杂及安全稳定性
配置复杂程度是按配置文件行数确定,行数越多则越复杂「不按单行配置项的数量」安全性则考虑是否支持通信加密,即加密的级别;稳定性则是在 2H4G 的 CentOS7 系统上运行,通过压测运行结果:
工具 | 配置复杂 | 安全性能 | 稳定性能 |
---|---|---|---|
frp | 中等 | 中上 | 高等 |
gost | 中等 | 中等 | 中上 |
nps | 最低 | 最低 | 低等 |
ssh-tunnel | 低等 | 中下 | 中等 |
条评论