diff --git a/README.md b/README.md index 76ef91e..c786fe5 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,8 @@ easyProxy是一款轻量级、高性能、功能最为强大的**内网穿透** * [热更新支持](#热更新支持) * [获取用户真实ip](#获取用户真实ip) * [客户端地址显示](#客户端地址显示) +* [web API](#web API) + *[] ## 安装 @@ -270,6 +272,7 @@ mode | 运行模式 vkey | 验证密钥 tcpport | 服务端与客户端通信端口 httpport | http代理连接端口 +authip | 免验证ip,适用于web api - 客户端 @@ -323,21 +326,14 @@ httpport | http代理连接端口 ### 站点保护 -由于所有客户端共用一个 http 服务端口,任何知道你的域名和 url 的人都能访问到你部署在内网的 web 服务,但是在某些场景下需要确保只有限定的用户才能访问。 +域名代理模式所有客户端共用一个http服务端口,在知道域名后任何人都可访问,一些开发或者测试环境需要保密,所以可以设置用户名和密码,easyProxy将通过 Http Basic Auth 来保护,访问时需要输入正确的用户名和密码。 -easyProxy支持通过 HTTP Basic Auth 来保护你的 web 服务,使用户需要通过用户名和密码才能访问到你的服务。 -目前支持使用tcp协议的web站点保护,命令行运行时可设置 -``` --u=user -p=password -``` - -- web管理中也可配置 +- web管理中可配置 ### host修改 - -通常情况下本代理不会修改转发的任何数据。但有一些后端服务会根据 http 请求 header 中的 host 字段来展现不同的网站,例如 nginx 的虚拟主机服务,启用 host-header 的修改功能可以动态修改 http 请求中的 host 字段。该功能仅限于域名代理模式。 +由于内网站点需要的host可能与公网域名不一致,域名代理支持host修改功能,即修改request的header中的host字段。 **使用方法:在web管理中设置** @@ -361,7 +357,7 @@ easyProxy支持通过 HTTP Basic Auth 来保护你的 web 服务,使用户需 ### 获取用户真实ip -目前只有域名模式的代理支持这一功能,可以通过用户请求的 header 中的 X-Forwarded-For 和 X-Real-IP 来获取用户真实 IP。 +在域名代理模式中,可以通过request请求 header 中的 X-Forwarded-For 和 X-Real-IP 来获取用户真实 IP。 **本代理前会在每一个请求中添加了这两个 header。** @@ -377,3 +373,224 @@ easyProxy支持通过 HTTP Basic Auth 来保护你的 web 服务,使用户需 ### 连接池 easyProxy会预先和后端服务建立起指定数量的连接,每次接收到用户请求后,会从连接池中取出一个连接和用户连接关联起来,避免了等待与后端服务建立连接时间。 +## web API + +### 客户端 + +#### 添加客户端 +``` +POST /client/add/ +``` +参数 | 含义 +---|--- +remark | 备注 +u | 用户名 +p | 密码 +compress | 压缩(snappy或空) +crypt | 是否加密(1或者0) +mux | 是否TCP复用(1或者0) +rate_limit|带宽限制 +flow_limit|流量限制 + +#### 添加客户端 +``` +POST /client/edit/ +``` +参数 | 含义 +---|--- +id | id +remark | 备注 +u | 用户名 +p | 密码 +compress | 压缩(snappy或空) +crypt | 是否加密(1或者0) +mux | 是否TCP复用(1或者0) +rate_limit|带宽限制 +flow_limit|流量限制 + +#### 更改状态 +``` +POST /client/changestatus/ +``` +参数 | 含义 +---|--- +id | id +status|1或0 + +#### 删除客户端 +``` +POST /client/del/ +``` +参数 | 含义 +---|--- +id | id +#### 获取单个客户端 +``` +POST /client/getclient/ +``` +参数 | 含义 +---|--- +id | id +#### 获取客户端列表 +``` +POST /client/list/ +``` + +参数 | 含义 +---|--- +start | 开始 +length | 长度 + +### 域名代理 + +#### 添加域名代理 + +``` +POST /index/addhost/ +``` + +参数 | 含义 +---|--- +host | 域名 +target | 内网目标地址 +header | header修改 +hostchange | host修改 +remark | 备注 +client_id | 客户端id +#### 删除域名代理 +``` +POST /index/delhost/ +``` + +参数 | 含义 +---|--- +host | 域名 + +#### 修改域名代理 +``` +POST /index/edithost/ +``` + +参数 | 含义 +---|--- +nhost | 修改后的域名 +host | 修改之前的域名 +target | 内网目标地址 +header | header修改 +hostchange | host修改 +remark | 备注 +client_id | 客户端id + +#### 获取域名代理列表 +``` +POST /index/hostlist/ +``` + +参数 | 含义 +---|--- +start | 开始 +length | 长度 +client_id | 客户端id(为空获取所有) +#### 获取单个host +``` +POST /index/gethost/ +``` + +参数 | 含义 +---|--- +host|域名 + + +### 其他代理 + +#### 获取隧道列表 + +``` +POST /index/gettunnel/ +``` + +参数 | 含义 +---|--- +client_id|客户端id(为空则忽略客户端限制) +type|类型(udpServer、tunnelServer、socks5Server、httpProxyServer,为空则忽略类型限制) +start|开始 +length|长度 + +#### 添加 + +``` +POST /index/add/ +``` + +参数 | 含义 +---|--- +port|监听端口 +type|类型(udpServer、tunnelServer、socks5Server、httpProxyServer) +start|开始 +u|验证用户名 +p|验证密码 +compress|压缩(空或snappy) +crypt|是否加密(1或0) +mux|是否tcp复用(1或0) +use_client|是否使用客户端配置(1或0) +remark|备注 +client_id|客户端id + +#### 修改 + +``` +POST /index/edit/ +``` + +参数 | 含义 +---|--- +id|id +port|监听端口 +type|类型(udpServer、tunnelServer、socks5Server、httpProxyServer) +start|开始 +u|验证用户名 +p|验证密码 +compress|压缩(空或snappy) +crypt|是否加密(1或0) +mux|是否tcp复用(1或0) +use_client|是否使用客户端配置(1或0) +remark|备注 +client_id|客户端id + +#### 停止隧道 + +``` +POST /index/stop/ +``` + +参数 | 含义 +---|--- +id|id + +#### 删除隧道 + +``` +POST /index/del/ +``` + +参数 | 含义 +---|--- +id|id +#### 开始隧道 + +``` +POST /index/start/ +``` + +参数 | 含义 +---|--- +id|id +#### 获取单条隧道详细 + +``` +POST /index/getonetunnel/ +``` + +参数 | 含义 +---|--- +id|id \ No newline at end of file