Update README.md

This commit is contained in:
he liu 2018-12-11 16:50:50 +08:00 committed by GitHub
parent abc30a9ad1
commit 61aab7340c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 97 additions and 229 deletions

326
README.md
View File

@ -21,7 +21,7 @@ easyProxy是一款轻量级、高性能、功能最为强大的**内网穿透**
5. 搭建一个内网穿透ss在外网如同使用内网vpn一样访问内网资源或者设备----> [socks5代理模式](#socks5代理模式)
## 特点
- [x] 支持gzip、snnapy压缩,减小传输过程流量消耗
- [x] 支持gzip、snappy压缩,减小传输过程流量消耗
- [x] 支持多站点配置,兼容多个内网网站,可处理相互之间的跳转包含关系
- [x] 断线自动重连
- [x] 支持多路传输,提高并发
@ -35,10 +35,10 @@ easyProxy是一款轻量级、高性能、功能最为强大的**内网穿透**
## 目录
1. [安装](#安装)
2. [http反向代理请求](#http代理请求)
3. [tcp隧道模式](#tcp隧道模式)
4. [udp隧道模式](#udp隧道模式)
5. [sock5代理模式](#sock5代理模式)
2. [tcp隧道模式](#tcp隧道模式)
3. [udp隧道模式](#udp隧道模式)
4. [http反向代理请求](#http代理请求)
5. [socks5代理模式](#sock5代理模式)
6. [http代理模式](#http代理模式)
7. [数据压缩支持](#数据压缩支持)
8. [操作系统支持](#操作系统支持)
@ -58,6 +58,85 @@ easyProxy是一款轻量级、高性能、功能最为强大的**内网穿透**
- 编译(无第三方模块)
> go build
## tcp隧道模式
### 场景及原理
较为适用于处理tcp连接例如ssh同时也适用于http等访问服务端的8024端口相当于访问内网10.1.50.202机器的4000端口构成如下所示的隧道。
![image](https://github.com/cnlh/easyProxy/blob/master/image/tcp.png?raw=true)
例如:
**背景:**
- 内网机器10.1.50.203提供了web服务80端口
- 有VPS一个,公网IP:123.206.77.88
**需求:**
在家里能够通过访问VPS的8024端口访问到内网机器A的80端口
### 使用
- 服务端
```
./easyProxy -mode=tunnelServer -vkey=DKibZF5TXvic1g3kY -tcpport=8284 -httpport=8024 -target=10.1.50.203:80
```
名称 | 含义
---|---
mode | 运行模式(client、server不写默认client)
vkey | 验证密钥
tcpport | 服务端与客户端通信端口
httpport | 外部访问端口
target | 目标地址,格式如上
- 客户端
```
./easyProxy -server=ip:port -vkey=DKibZF5TXvic1g3kY
```
## udp隧道模式
### 场景及原理
**背景**
- 内网机器A提供了DNS解析服务,10.1.50.210:53端口
- 有VPS一个,公网IP:123.206.77.88
**需求:**
在家里能够通过设置本地dns为123.206.77.88,使用内网机器A进行域名解析服务.
访问vps的53端口相当于访问10.1.50.210的53端口构成如下所示的隧道。
![image](https://github.com/cnlh/easyProxy/blob/master/image/udp.png?raw=true)
### 使用
- 服务端
```
./easyProxy -mode=udpServer -vkey=DKibZF5TXvic1g3kY -tcpport=8284 -httpport=53 -target=10.1.50.210:53
```
名称 | 含义
---|---
mode | 运行模式(client、server不写默认client)
vkey | 验证密钥
tcpport | 服务端与客户端通信端口
httpport | 公网vps的访问端口
target | 目标地址,格式如上
- 客户端
```
./easyProxy -server=ip:port -vkey=DKibZF5TXvic1g3kY
```
## http代理请求
### 场景及原理
@ -78,7 +157,7 @@ easyProxy是一款轻量级、高性能、功能最为强大的**内网穿透**
- 服务端
```
./easyProxy -mode httpServer -vkey DKibZF5TXvic1g3kY -tcpport=8284 -httpport=8024
./easyProxy -mode=httpServer -vkey=DKibZF5TXvic1g3kY -tcpport=8284 -httpport=8024
```
名称 | 含义
@ -96,7 +175,7 @@ httpport | 代理的http端口与nginx配合使用
```
./easyProxy -config config.json
./easyProxy -server=ip:port -config=config.json -vkey=DKibZF5TXvic1g3kY
```
@ -107,12 +186,6 @@ config | 配置文件路径
```
{
"Server": {
"ip": "123.206.77.88",
"tcp": 8284,
"vkey": "DKibZF5TXvic1g3kY",
"num": 10
},
"SiteList": [
{
"host": "a.ourcauc.com",
@ -135,10 +208,6 @@ config | 配置文件路径
```
名称 | 含义
---|---
ip | 服务端ip地址
tcp | 服务端与客户端通信端口
vkey | 验证密钥
num | 服务端与客户端通信连接数
SiteList | 本地解析的域名列表
host | 域名地址
url | 内网代理的地址
@ -158,7 +227,7 @@ server {
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host:8024;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Connection "";
proxy_pass http://nodejs;
@ -184,153 +253,6 @@ server {
[二级域名](https://github.com/cnlh/easyProxy/wiki/%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B)
## tcp隧道模式
### 场景及原理
较为适用于处理tcp连接例如ssh同时也适用于http等访问服务端的8024端口相当于访问内网10.1.50.202机器的4000端口构成如下所示的隧道。
![image](https://github.com/cnlh/easyProxy/blob/master/image/tcp.png?raw=true)
例如:
**背景:**
- 内网机器10.1.50.203提供了web服务80端口
- 有VPS一个,公网IP:123.206.77.88
**需求:**
在家里能够通过访问VPS的8024端口访问到内网机器A的80端口
### 使用
- 服务端
```
./easyProxy -mode tunnelServer -vkey DKibZF5TXvic1g3kY -tcpport=8284 -httpport=8024 -target=10.1.50.203:80
```
名称 | 含义
---|---
mode | 运行模式(client、server不写默认client)
vkey | 验证密钥
tcpport | 服务端与客户端通信端口
httpport | 代理的http端口与nginx配合使用
target | 目标地址,格式如上
- 客户端
```
建立配置文件 config.json
```
```
./easyProxy -config config.json
```
名称 | 含义
---|---
config | 配置文件路径
### 配置文件config.json
```
{
"Server": {
"ip": "123.206.77.88",
"tcp": 8284,
"vkey": "DKibZF5TXvic1g3kY",
"num": 10
}
}
```
名称 | 含义
---|---
ip | 服务端ip地址
tcp | 服务端与客户端通信端口
vkey | 验证密钥
num | 服务端与客户端通信连接数
## udp隧道模式
### 场景及原理
**背景**
- 内网机器A提供了DNS解析服务,10.1.50.210:53端口
- 有VPS一个,公网IP:123.206.77.88
**需求:**
在家里能够通过设置本地dns为123.206.77.88,使用内网机器A进行域名解析服务.
访问vps的53端口相当于访问10.1.50.210的53端口构成如下所示的隧道。
![image](https://github.com/cnlh/easyProxy/blob/master/image/udp.png?raw=true)
### 使用
- 服务端
```
./easyProxy -mode udpServer -vkey DKibZF5TXvic1g3kY -tcpport=8284 -httpport=53 -target=10.1.50.210:53
```
名称 | 含义
---|---
mode | 运行模式(client、server不写默认client)
vkey | 验证密钥
tcpport | 服务端与客户端通信端口
httpport | 公网vpn的端口
target | 目标地址,格式如上
- 客户端
```
建立配置文件 config.json
```
```
./easyProxy -config config.json
```
名称 | 含义
---|---
config | 配置文件路径
- 本机
```
设置本机dns解析服务器地址为123.206.77.88
```
### 配置文件config.json
```
{
"Server": {
"ip": "123.206.77.88",
"tcp": 8284,
"vkey": "DKibZF5TXvic1g3kY",
"num": 10
}
}
```
名称 | 含义
---|---
ip | 服务端ip地址
tcp | 服务端与客户端通信端口
vkey | 验证密钥
num | 服务端与客户端通信连接数
## socks5代理模式
### 场景及原理
@ -344,7 +266,7 @@ num | 服务端与客户端通信连接数
- 服务端
```
./easyProxy -mode sock5Server -vkey DKibZF5TXvic1g3kY -tcpport=8284 -httpport=8024
./easyProxy -mode=sock5ServerServer -vkey=DKibZF5TXvic1g3kY -tcpport=8284 -httpport=8024
```
名称 | 含义
@ -352,7 +274,7 @@ num | 服务端与客户端通信连接数
mode | 运行模式(client、server不写默认client)
vkey | 验证密钥
tcpport | 服务端与客户端通信端口
httpport | 代理的http端口与nginx配合使用
httpport | 代理的http端口socks5连接端口
u | 验证的用户名
p | 验证的密码
@ -365,17 +287,10 @@ p | 验证的密码
- 客户端
```
建立配置文件 config.json
```
```
./easyProxy -config config.json
./easyProxy -server=ip:port -vkey=DKibZF5TXvic1g3kY
```
名称 | 含义
---|---
config | 配置文件路径
- 需要使用内网代理的机器
@ -384,24 +299,6 @@ config | 配置文件路径
```
如果设置了用户名和密码,记得填上用户名和密码
### 配置文件config.json
```
{
"Server": {
"ip": "123.206.77.88",
"tcp": 8284,
"vkey": "DKibZF5TXvic1g3kY",
"num": 10
}
}
```
名称 | 含义
---|---
ip | 服务端ip地址
tcp | 服务端与客户端通信端口
vkey | 验证密钥
num | 服务端与客户端通信连接数
## http代理模式
@ -415,7 +312,7 @@ num | 服务端与客户端通信连接数
- 服务端
```
./easyProxy -mode httpProxyServer -vkey DKibZF5TXvic1g3kY -tcpport=8284 -httpport=8024
./easyProxy -mode=httpProxyServer -vkey=DKibZF5TXvic1g3kY -tcpport=8284 -httpport=8024
```
名称 | 含义
@ -423,16 +320,14 @@ num | 服务端与客户端通信连接数
mode | 运行模式(client、server不写默认client)
vkey | 验证密钥
tcpport | 服务端与客户端通信端口
httpport | 代理的http端口与nginx配合使用
httpport | http代理连接端口
- 客户端
```
建立配置文件 config.json
```
```
./easyProxy -config config.json
./easyProxy -server=ip:port -vkey=DKibZF5TXvic1g3kY
```
- 需要使用内网代理的机器
@ -442,29 +337,6 @@ httpport | 代理的http端口与nginx配合使用
配置HTTP代理即可ip为外网服务器ip端口为httpport即可在外网环境访问内网啦
```
名称 | 含义
---|---
config | 配置文件路径
### 配置文件config.json
```
{
"Server": {
"ip": "123.206.77.88",
"tcp": 8284,
"vkey": "DKibZF5TXvic1g3kY",
"num": 10
}
}
```
名称 | 含义
---|---
ip | 服务端ip地址
tcp | 服务端与客户端通信端口
vkey | 验证密钥
num | 服务端与客户端通信连接数
## 数据压缩支持
### 场景及原理
@ -473,7 +345,7 @@ num | 服务端与客户端通信连接数
### 注意点
- 所有模式均支持数据压缩
- 如使用数据压缩,客户端与服务端的压缩方式必须相同,否则将无法正常工作。
### 如何使用
@ -483,14 +355,10 @@ num | 服务端与客户端通信连接数
```
./easyProxy -mode tunnelServer -vkey DKibZF5TXvic1g3kY -tcpport=8284 -httpport=8024 -target=10.1.50.203:80 -compress=gzip
```
- 在client端同时加上参数 -compress=gzip例如
```
./easyProxy -config=config.json -compress=gzip
```
**SNNAPY压缩**
**SNAPPY压缩**
将参数修改为snnapy即可
将参数修改为snappy即可
## 操作系统支持
支持Windows、Linux、MacOSX等无第三方依赖库。