docs/usage/first/index.html
手册和项目中使用了一部分的名词,它们本身的含义和在goproxy的专有含义是不一样的,所以前言中对这些名词做了解释,不然直接看具体手册章节必然会出现理解偏差,导致不能正确的使用goproxy。
goproxy的很多功能都使用了相同的核心技术,比如底层传输:tcps传输协议,ws协议,kcp参数,黑白名单,认证等,它们的用法是一样的。 为了手册的简洁,相同的功能的说明,就放在这里统一说明,不在每个地方重复的说明。
proxy功能很多,往往你想要用的只是其中一个功能,那么不要被手册其它功能内容吓到和干扰,你只需要看前言和你需要用到的功能的手册部分即可!
本站包括项目手册,如果没有特殊说明:
goproxy,proxy,均指本项目:https://github.com/snail007/goproxy 。
本地,均指需要使用代理的应用程序直接连接的代理,一般是你日常使用的机器,也可能是一个服务器。
代理链,指多个相连的代理组成的一个代理链条,一个代理链中至少有两个上下相连的代理,链条中的每一个代理不一定都是proxy提供的,可以是第三方标准代理。
本级,均指链条中,任意一个代理。
上级,父级,parent,均指:本级代理连接的上一级代理,可以是proxy提供的代理也可以是第三方标准代理。
goproxy数据流动架构,主要分为两层。
上层是我们熟悉的各种标准服务:socks5代理,http(s)代理,sps代理(ss+http(s)+socks5),tcp代理,udp代理,dns代理,内网穿透。
下层也就是底层,负责数据传输,传输的协议和有很多,比如:tcp,tcps,ws,tls,wss,tou,kcp,不同的协议使用的基础协议也是不一样的,
由于代理示例用到各种IP,示例中统一用IP_X,X是机器名词代号,比如A,B,这样的形式表示一个机器的IP;你在复制命令后实际使用前,记得一定要根据自己情况替换IP_X为你自己的实际IP地址。如果示例中提到了机器A,那么默认它的IP地址就是IP_A,不再重复声明。
proxy命令格式是:proxy 功能名称 参数1 参数2 参数n…,proxy功能名称和功能介绍如下:
http http(s)代理
socks socks5代理
sps http(s)+socks5+ss综合代理,一个端口同时支持3种代理
tcp tcp代理,tcp端口转发
udp udp代理,udp端口转发
dns dns代理,dns服务器,dns转发
bridge 多路复用版内网穿透的bridge端
client 多路复用版内网穿透的client端
server 多路复用版内网穿透的server端
tbridge 多链接版内网穿透的bridge端
tclient 多链接版内网穿透的client端
tserver 多链接版内网穿透的server端
由于每个功能参数众多,有的很少用,默认值就能很好工作,手册只是介绍了高频的参数的使用,未提及的参数可以通过 proxy help 功能名称 ,查看到功能相关所有的参数。
如果你想深入了解和掌握proxy每个功能的用法,那么动起手来试试每个参数吧,去体会,去感受就能深刻理解并熟练掌握它。
很多功能的底层传输协议都支持kcp,kcp参数都是以--kcp开头,可以通过proxy help 功能名称 ,比如:proxy help http,去查看所有的参数,包括kcp参数。
虽然参数很多,但是proxy针对大众情况,设置了一波默认值,如果发现默认参数不合你口味,那么你就需要自己搜索kcp每个参数的意思和用法,资料很多,本手册不再赘述。
当然最简单的用法就是设置一个kcp密码即可,KCP协议需要–kcp-key参数设置一个密码用于加密解密数据。
为了安全很多功能都可以使用底层tls传输协议加密传输数据,tls需要一个proxy.crt证书文件和一个私钥proxy.key文件。
这两个文件可以通过命令:proxy keygen proxy 生成。
另外,tls证书只需要在一个proxy端生成,其它端复制过去即可,要保证所有端证书一样。