From 61aab7340c60c7fca0c43ca8f404b8eab062f58b Mon Sep 17 00:00:00 2001 From: he liu <40694320+cnlh@users.noreply.github.com> Date: Tue, 11 Dec 2018 16:50:50 +0800 Subject: [PATCH] Update README.md --- README.md | 326 ++++++++++++++++-------------------------------------- 1 file changed, 97 insertions(+), 229 deletions(-) diff --git a/README.md b/README.md index eae93dc..9bd4a38 100644 --- a/README.md +++ b/README.md @@ -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等,无第三方依赖库。