spp是一个简单强大的网络代理工具。
功能支持的协议:tcp、udp、可靠udp(rudp)、可靠icmp(ricmp)、kcp支持的类型:正向代理、反向代理、socks5正向代理、socks5反向代理协议和类型可以自由组合外部代理协议和内部转发协议可以自由组合使用服务器启动server,假设服务器ip是www.server.com,监听端口8888#./spp-typeserver-prototcp-listen:8888也可以同时监听其他类型的端口与协议#./spp-typeserver-prototcp-listen:8888-protorudp-listen:9999-protoricmp-listen0.0.0.0也可以使用docker#dockerrun--namemy-server-d--restart=always--networkhostesrrhs/spp./spp-prototcp-listen:8888 客户端启动tcp正向代理,将www.server.com的8080端口映射到本地8080,这样访问本地的8080就相当于访问到了www.server.com的8080#./spp-name"test"-typeproxy_client-serverwww.server.com:8888-fromaddr:8080-toaddr:8080-proxyprototcp启动tcp反向代理,将本地8080映射到www.server.com的8080端口,这样访问www.server.com的8080就相当于访问到了本地的8080#./spp-name"test"-typereverse_proxy_client-serverwww.server.com:8888-fromaddr:8080-toaddr:8080-proxyprototcp启动tcp正向socks5代理,在本地8080端口开启socks5协议,通过server访问server所在的网络#./spp-name"test"-typesocks5_client-serverwww.server.com:8888-fromaddr:8080-proxyprototcp启动tcp反向socks5代理,在www.server.com的8080端口开启socks5协议,通过client访问client所在的网络#./spp-name"test"-typereverse_proxy_client-serverwww.server.com:8888-fromaddr:8080-toaddr:8080-proxyprototcp其他代理协议,只需要修改client的proxyproto参数即可,例如代理udp#./spp-name"test"-typeproxy_client-serverwww.server.com:8888-fromaddr:8080-toaddr:8080-proxyprotoudp代理可靠udp#./spp-name"test"-typeproxy_client-serverwww.server.com:8888-fromaddr:8081-toaddr:8081-proxyprotorudp代理可靠icmp#./spp-name"test"-typeproxy_client-serverwww.server.com:8888-fromaddr:8082-toaddr:8082-proxyprotoricmp同时代理上述三种#./spp-name"test"-typeproxy_client-serverwww.server.com:8888-fromaddr:8080-toaddr:8080-proxyprotoudp-fromaddr:8081-toaddr:8081-proxyprotorudp-fromaddr:8082-toaddr:8082-proxyprotoricmpclient和server之间的内部通信,也可以修改为其他协议,外部协议与内部协议之间自动转换。例如代理tcp,内部用可靠udp协议转发#./spp-name"test"-typeproxy_client-serverwww.server.com:8888-fromaddr:8080-toaddr:8080-proxyprototcp-protorudp代理tcp,内部用可靠icmp协议转发#./spp-name"test"-typeproxy_client-serverwww.server.com-fromaddr:8080-toaddr:8080-proxyprototcp-protoricmp代理udp,内部用tcp协议转发#./spp-name"test"-typeproxy_client-serverwww.server.com:8888-fromaddr:8080-toaddr:8080-proxyprotoudp-prototcp也可以使用docker#dockerrun--namemy-client-d--restart=always--networkhostesrrhs/spp./spp-name"test"-typeproxy_client-serverwww.server.com:8888-fromaddr:8080-toaddr:8080-proxyprototcp 性能测试使用benchmark/local_tcp目录的iperf脚本,在单机测试,在cpu跑满的情况下,测试最大带宽速度。代理协议是tcp,采用各种中转协议转发的结果如下:代理方式速度直连3535MBytes/sectcp转发663MBytes/sectcp转发(加密)225MBytes/sectcp转发(加密压缩)23.4MBytes/secrudp转发5.15MBytes/secrudp转发(加密)5.81MBytes/secrudp转发5.05MBytes/secricmp转发3.34MBytes/secricmp转发(加密)3.25MBytes/secricmp转发3.46MBytes/seckcp转发18.2MBytes/seckcp转发(加密)18.6MBytes/seckcp转发(加密压缩)14.7MBytes/sec使用benchmark/remote_tcp目录的iperf脚本,在多机测试,服务器位于腾讯云,客户端位于本地,测试最大带宽速度。代理协议是tcp,采用各种中转协议转发的结果如下:代理方式速度直连2.74MBytes/sectcp转发3.81MBytes/sectcp转发(加密)3.90MBytes/sectcp转发(加密压缩)4.02MBytes/secrudp转发3.33MBytes/secrudp转发(加密)3.41MBytes/secrudp转发3.58MBytes/secricmp转发3.21MBytes/secricmp转发(加密)2.95MBytes/secricmp转发3.17MBytes/seckcp转发3.58MBytes/seckcp转发(加密)3.58MBytes/seckcp转发(加密压缩)3.75MBytes/sec注:测试数据是centos.iso,已经被压缩过了,所以压缩转发的效果不明显如果想直接测试下网络的各协议带宽,使用多协议带宽测试工具connperf点击空白处退出提示
评论