|
@@ -29,6 +29,11 @@ go语言编写,无第三方依赖,各个平台都已经编译在release中
|
|
|
* [release安装](#release安装)
|
|
|
* [web管理](#web管理模式)(多隧道时推荐)
|
|
|
* [启动](#启动)
|
|
|
+ * [服务端测试](#服务端测试)
|
|
|
+ * [服务端启动](#服务端启动)
|
|
|
+ * [web管理](#web管理)
|
|
|
+ * [客户端启动](#客户端启动)
|
|
|
+ * [服务端停止或重启](#服务端停止或重启)
|
|
|
* [配置文件说明](#服务端配置文件)
|
|
|
* [详细使用说明](#详细说明)
|
|
|
* [http|https域名解析](#域名解析)
|
|
@@ -54,6 +59,8 @@ go语言编写,无第三方依赖,各个平台都已经编译在release中
|
|
|
* [自定义404页面](#404页面配置)
|
|
|
* [流量限制](#流量限制)
|
|
|
* [带宽限制](#带宽限制)
|
|
|
+ * [负载均衡](#负载均衡)
|
|
|
+ * [守护进程](#守护进程)
|
|
|
* [相关说明](#相关说明)
|
|
|
* [流量统计](#流量统计)
|
|
|
* [热更新支持](#热更新支持)
|
|
@@ -81,9 +88,9 @@ go语言编写,无第三方依赖,各个平台都已经编译在release中
|
|
|
- 安装源码(另有snappy、beego包)
|
|
|
> go get github.com/cnlh/easyProxy
|
|
|
- 编译
|
|
|
-> go build cmd/proxy_server/proxy_server.go
|
|
|
+> go build cmd/server/proxy_server.go
|
|
|
|
|
|
-> go build cmd/proxy_client/proxy_client.go
|
|
|
+> go build cmd/client/proxy_client.go
|
|
|
|
|
|
## web管理模式
|
|
|
|
|
@@ -98,22 +105,32 @@ go语言编写,无第三方依赖,各个平台都已经编译在release中
|
|
|
### 启动
|
|
|
|
|
|
|
|
|
-- 服务端
|
|
|
-
|
|
|
+#### 服务端测试
|
|
|
```
|
|
|
- ./proxy_server
|
|
|
+ ./proxy_server test
|
|
|
```
|
|
|
-
|
|
|
-- 客户端
|
|
|
+如有错误请及时修改配置文件,无错误可继续进行下去
|
|
|
+#### 服务端启动
|
|
|
```
|
|
|
- ./proxy_server -server=ip:port -vkey=web界面中显示的密钥
|
|
|
+ ./proxy_server start
|
|
|
```
|
|
|
+如果无需daemon运行,去掉start即可
|
|
|
|
|
|
-- 配置
|
|
|
+#### web管理
|
|
|
|
|
|
进入web界面,公网ip:web界面端口(默认8080),密码默认为123
|
|
|
|
|
|
-进入web管理界面,有详细的命令
|
|
|
+进入web管理界面,有详细的说明
|
|
|
+
|
|
|
+#### 客户端启动
|
|
|
+```
|
|
|
+ ./proxy_server -server=ip:port -vkey=web界面中显示的密钥
|
|
|
+```
|
|
|
+#### 服务端停止或重启
|
|
|
+如果是daemon启动
|
|
|
+```
|
|
|
+ ./proxy_server stop|restart
|
|
|
+```
|
|
|
|
|
|
### 服务端配置文件
|
|
|
- /conf/app.conf
|
|
@@ -122,6 +139,7 @@ go语言编写,无第三方依赖,各个平台都已经编译在release中
|
|
|
---|---
|
|
|
httpport | web管理端口
|
|
|
password | web界面管理密码
|
|
|
+hostPort | 域名代理模式监听端口
|
|
|
tcpport | 服务端客户端通信端口
|
|
|
pemPath | ssl certFile绝对路径
|
|
|
keyPath | ssl keyFile绝对路径
|
|
@@ -138,12 +156,13 @@ httpProxyPort | http代理监听端口
|
|
|
- 有一个域名proxy.com,有一台公网机器ip为1.1.1.1
|
|
|
- 两个内网开发站点127.0.0.1:81,127.0.0.1:82
|
|
|
- 想通过(http|https://)a.proxy.com访问127.0.0.1:81,通过(http|https://)b.proxy.com访问127.0.0.1:82
|
|
|
+- 例如配置文件中tcpport为8284
|
|
|
|
|
|
**使用步骤**
|
|
|
- 将*.proxy.com解析到公网服务器1.1.1.1
|
|
|
- 在客户端管理中创建一个客户端,记录下验证密钥
|
|
|
- 点击该客户端的域名管理,添加两条规则规则:1、域名:a.proxy.com,内网目标:127.0.0.1:81,2、域名:b.proxy.com,内网目标:127.0.0.1:82
|
|
|
--内网客户端运行
|
|
|
+- 内网客户端运行
|
|
|
|
|
|
```
|
|
|
./proxy_client server=1.1.1.1:8284 -vkey=客户端的密钥
|
|
@@ -158,7 +177,7 @@ httpProxyPort | http代理监听端口
|
|
|
**适用范围:** ssh、远程桌面等tcp连接场景
|
|
|
|
|
|
**假设场景:**
|
|
|
- 想通过访问公网服务器1.1.1.1的8001端口,连接内网机器10.1.50.101的22端口,实现ssh连接
|
|
|
+ 想通过访问公网服务器1.1.1.1的8001端口,连接内网机器10.1.50.101的22端口,实现ssh连接,例如配置文件中tcpport为8284
|
|
|
|
|
|
**使用步骤**
|
|
|
- 在客户端管理中创建一个客户端,记录下验证密钥
|
|
@@ -176,7 +195,7 @@ httpProxyPort | http代理监听端口
|
|
|
**适用范围:** 内网dns解析等udp连接场景
|
|
|
|
|
|
**假设场景:**
|
|
|
-内网有一台dns(10.1.50.102:53),在非内网环境下想使用该dns,公网服务器为1.1.1.1
|
|
|
+内网有一台dns(10.1.50.102:53),在非内网环境下想使用该dns,公网服务器为1.1.1.1,例如配置文件中tcpport为8284
|
|
|
|
|
|
**使用步骤**
|
|
|
- 在客户端管理中创建一个客户端,记录下验证密钥
|
|
@@ -193,7 +212,7 @@ httpProxyPort | http代理监听端口
|
|
|
**适用范围:** 在外网环境下如同使用vpn一样访问内网设备或者资源
|
|
|
|
|
|
**假设场景:**
|
|
|
-想将公网服务器1.1.1.1的8003端口作为socks5代理,达到访问内网任意设备或者资源的效果
|
|
|
+想将公网服务器1.1.1.1的8003端口作为socks5代理,达到访问内网任意设备或者资源的效果,例如配置文件中tcpport为8284
|
|
|
|
|
|
**使用步骤**
|
|
|
- 在客户端管理中创建一个客户端,记录下验证密钥
|
|
@@ -209,7 +228,7 @@ httpProxyPort | http代理监听端口
|
|
|
**适用范围:** 在外网环境下使用http代理访问内网站点
|
|
|
|
|
|
**假设场景:**
|
|
|
-想将公网服务器1.1.1.1的8004端口作为http代理,访问内网网站
|
|
|
+想将公网服务器1.1.1.1的8004端口作为http代理,访问内网网站,例如配置文件中tcpport为8284
|
|
|
|
|
|
**使用步骤**
|
|
|
- 在客户端管理中创建一个客户端,记录下验证密钥
|
|
@@ -220,13 +239,14 @@ httpProxyPort | http代理监听端口
|
|
|
- 在该客户端隧道管理中添加一条http代理,填写监听的端口(8004),选择压缩方式,保存。
|
|
|
- 在外网环境的本机配置http代理,ip为公网服务器ip(127.0.0.1),端口为填写的监听端口(8004),即可访问了
|
|
|
|
|
|
+
|
|
|
### 使用https
|
|
|
|
|
|
在配置文件中将httpsProxyPort设置为443或者其他你想配置的端口,和将对应的证书文件路径添加到配置文件中,即可畅销https了
|
|
|
|
|
|
### 与nginx配合
|
|
|
|
|
|
-普通场景下使用本代理已经能满足使用要求,但是有时候我们还需要在云服务器上运行nginx来保证静态文件缓存等,本代理可和nginx配合使用,在配置文件中将httpProxyPort设置为非80端口,并在nginx中配置代理,例
|
|
|
+有时候我们还需要在云服务器上运行https来保证静态文件缓存等,本代理可和nginx配合使用,在配置文件中将httpProxyPort设置为非80端口,并在nginx中配置代理,例
|
|
|
```
|
|
|
server {
|
|
|
listen 80;
|
|
@@ -491,6 +511,18 @@ authip | 免验证ip,适用于web api
|
|
|
|
|
|
支持客户端级带宽限制,带宽计算方式为入口和出口总和,权重均衡
|
|
|
|
|
|
+### 负载均衡
|
|
|
+本代理支持域名解析模式的负载均衡,在web域名添加或者编辑中内网目标分行填写多个目标即可实现轮训级别的负载均衡
|
|
|
+
|
|
|
+### 守护进程
|
|
|
+本代理支持守护进程,使用示例如下,服务端客户端所有模式通用,支持linux,darwin,windows。
|
|
|
+```
|
|
|
+./proxy_(client|server) start|stop|restart xxxxxx
|
|
|
+```
|
|
|
+```
|
|
|
+proxy_(client|server).exe start|stop|restart xxxxxx
|
|
|
+```
|
|
|
+
|
|
|
## 相关说明
|
|
|
|
|
|
### 获取用户真实ip
|
|
@@ -531,4 +563,4 @@ authip | 免验证ip,适用于web api
|
|
|
## webAPI
|
|
|
|
|
|
为方便第三方扩展,在web模式下可利用webAPI进行相关操作,详情见
|
|
|
-[webAPI文档](https://github.com/cnlh/easyProxy/wiki/webAPI%E6%96%87%E6%A1%A3)
|
|
|
+[webAPI文档](https://github.com/cnlh/easyProxy/wiki/webAPI%E6%96%87%E6%A1%A3)
|