diff --git a/README.md b/README.md index 74753ac..1b8662b 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ Proxy是golang实现的高性能http,https,websocket,tcp,udp,socks5代理服务 - [2.5 加密三级TCP代理](#25加密三级tcp代理) - [2.6 查看帮助](#26查看帮助) - [3. UDP代理](#3udp代理) - - [3.1 普通一级UDP代理](#31普通一级udp代理) +    - [3.1 普通一级UDP代理](#31普通一级udp代理) - [3.2 普通二级UDP代理](#32普通二级udp代理) - [3.3 普通三级UDP代理](#33普通三级udp代理) - [3.4 加密二级UDP代理](#34加密二级udp代理) @@ -122,7 +122,7 @@ curl -L https://raw.githubusercontent.com/snail007/goproxy/master/install_auto.s 下载地址:https://github.com/snail007/goproxy/releases ```shell cd /root/proxy/ -wget https://github.com/snail007/goproxy/releases/download/v4.0/proxy-linux-amd64.tar.gz +wget https://github.com/snail007/goproxy/releases/download/v4.1/proxy-linux-amd64.tar.gz ``` #### **2.下载自动安装脚本** ```shell @@ -134,7 +134,7 @@ chmod +x install.sh ## **首次使用必看** -#### **环境** +### **环境** 接下来的教程,默认系统是linux,程序是proxy;所有操作需要root权限; 如果你的是windows,请使用windows版本的proxy.exe即可. @@ -184,6 +184,7 @@ proxy会fork子进程,然后监控子进程,如果子进程异常退出,5秒后 ### **1.HTTP代理** #### **1.1.普通HTTP代理** +![1.1](/docs/images/1.1.jpg) `./proxy http -t tcp -p "0.0.0.0:38080"` #### **1.2.普通二级HTTP代理** @@ -192,7 +193,7 @@ proxy会fork子进程,然后监控子进程,如果子进程异常退出,5秒后 默认关闭了连接池,如果要加快访问速度,-L可以开启连接池,10就是连接池大小,0为关闭, 开启连接池在网络不好的情况下,稳定不是很好. `./proxy http -t tcp -p "0.0.0.0:8090" -T tcp -P "22.22.22.22:8080" -L 10` -我们还可以指定网站域名的黑白名单文件,一行一个域名,怕匹配规则是最右批评匹配,比如:baidu.com,匹配的是*.*.baidu.com,黑名单的域名域名直接走上级代理,白名单的域名不走上级代理. +我们还可以指定网站域名的黑白名单文件,一行一个域名,匹配规则是最右匹配,比如:baidu.com,匹配的是*.*.baidu.com,黑名单的域名域名直接走上级代理,白名单的域名不走上级代理. `./proxy http -p "0.0.0.0:8090" -T tcp -P "22.22.22.22:8080" -b blocked.txt -d direct.txt` #### **1.3.HTTP二级代理(加密)** @@ -271,20 +272,22 @@ KCP协议需要-B参数设置一个密码用于加密解密数据 ### **2.TCP代理** #### **2.1.普通一级TCP代理** +![2.1](/docs/images/2.1.png) 本地执行: -`./proxy tcp -p ":33080" -T tcp -P "192.168.22.33:22" -L 0` +`./proxy tcp -p ":33080" -T tcp -P "192.168.22.33:22"` 那么访问本地33080端口就是访问192.168.22.33的22端口. #### **2.2.普通二级TCP代理** +![2.2](/docs/images/2.2.png) VPS(IP:22.22.22.33)执行: -`./proxy tcp -p ":33080" -T tcp -P "127.0.0.1:8080" -L 0` +`./proxy tcp -p ":33080" -T tcp -P "127.0.0.1:8080"` 本地执行: `./proxy tcp -p ":23080" -T tcp -P "22.22.22.33:33080"` 那么访问本地23080端口就是访问22.22.22.33的8080端口. #### **2.3.普通三级TCP代理** 一级TCP代理VPS_01,IP:22.22.22.22 -`./proxy tcp -p ":38080" -T tcp -P "66.66.66.66:8080" -L 0` +`./proxy tcp -p ":38080" -T tcp -P "66.66.66.66:8080"` 二级TCP代理VPS_02,IP:33.33.33.33 `./proxy tcp -p ":28080" -T tcp -P "22.22.22.22:38080"` 三级TCP代理(本地) @@ -293,16 +296,16 @@ VPS(IP:22.22.22.33)执行: #### **2.4.加密二级TCP代理** VPS(IP:22.22.22.33)执行: -`./proxy tcp -t tls -p ":33080" -T tcp -P "127.0.0.1:8080" -L 0 -C proxy.crt -K proxy.key` +`./proxy tcp -t tcp -p ":33080" -T tcp -P "127.0.0.1:8080" -C proxy.crt -K proxy.key` 本地执行: `./proxy tcp -p ":23080" -T tls -P "22.22.22.33:33080" -C proxy.crt -K proxy.key` 那么访问本地23080端口就是通过加密TCP隧道访问22.22.22.33的8080端口. #### **2.5.加密三级TCP代理** 一级TCP代理VPS_01,IP:22.22.22.22 -`./proxy tcp -t tls -p ":38080" -T tcp -P "66.66.66.66:8080" -C proxy.crt -K proxy.key` +`./proxy tcp -t tcp -p ":38080" -T tcp -P "66.66.66.66:8080" -C proxy.crt -K proxy.key` 二级TCP代理VPS_02,IP:33.33.33.33 -`./proxy tcp -t tls -p ":28080" -T tls -P "22.22.22.22:38080" -C proxy.crt -K proxy.key` +`./proxy tcp -t tcp -p ":28080" -T tls -P "22.22.22.22:38080" -C proxy.crt -K proxy.key` 三级TCP代理(本地) `./proxy tcp -p ":8080" -T tls -P "33.33.33.33:28080" -C proxy.crt -K proxy.key` 那么访问本地8080端口就是通过加密TCP隧道访问66.66.66.66的8080端口. @@ -335,16 +338,16 @@ VPS(IP:22.22.22.33)执行: #### **3.4.加密二级UDP代理** VPS(IP:22.22.22.33)执行: -`./proxy tcp -t tls -p ":33080" -T udp -P "8.8.8.8:53" -C proxy.crt -K proxy.key` +`./proxy tcp -t tcp -p ":33080" -T udp -P "8.8.8.8:53" -C proxy.crt -K proxy.key` 本地执行: `./proxy udp -p ":5353" -T tls -P "22.22.22.33:33080" -C proxy.crt -K proxy.key` 那么访问本地UDP:5353端口就是通过加密TCP隧道,通过VPS访问8.8.8.8的UDP:53端口. #### **3.5.加密三级UDP代理** 一级TCP代理VPS_01,IP:22.22.22.22 -`./proxy tcp -t tls -p ":38080" -T udp -P "8.8.8.8:53" -C proxy.crt -K proxy.key` +`./proxy tcp -t tcp -p ":38080" -T udp -P "8.8.8.8:53" -C proxy.crt -K proxy.key` 二级TCP代理VPS_02,IP:33.33.33.33 -`./proxy tcp -t tls -p ":28080" -T tls -P "22.22.22.22:38080" -C proxy.crt -K proxy.key` +`./proxy tcp -t tcp -p ":28080" -T tls -P "22.22.22.22:38080" -C proxy.crt -K proxy.key` 三级TCP代理(本地) `./proxy udp -p ":5353" -T tls -P "33.33.33.33:28080" -C proxy.crt -K proxy.key` 那么访问本地5353端口就是通过加密TCP隧道,通过VPS_01访问8.8.8.8的53端口. @@ -500,9 +503,10 @@ server连接到bridge的时候,如果同时有多个client连接到同一个brid `./proxy socks -t tcp -p "0.0.0.0:38080"` #### **5.2.普通二级SOCKS5代理** +![5.2](/docs/images/5.2.png) 使用本地端口8090,假设上级SOCKS5代理是`22.22.22.22:8080` `./proxy socks -t tcp -p "0.0.0.0:8090" -T tcp -P "22.22.22.22:8080" ` -我们还可以指定网站域名的黑白名单文件,一行一个域名,怕匹配规则是最右批评匹配,比如:baidu.com,匹配的是*.*.baidu.com,黑名单的域名域名直接走上级代理,白名单的域名不走上级代理. +我们还可以指定网站域名的黑白名单文件,一行一个域名,匹配规则是最右匹配,比如:baidu.com,匹配的是*.*.baidu.com,黑名单的域名域名直接走上级代理,白名单的域名不走上级代理. `./proxy socks -p "0.0.0.0:8090" -T tcp -P "22.22.22.22:8080" -b blocked.txt -d direct.txt` #### **5.3.SOCKS二级代理(加密)** @@ -584,7 +588,8 @@ KCP协议需要-B参数设置一个密码用于加密解密数据 - http(s)代理增加pac支持? - 欢迎加群反馈... -### 如何使用源码? +### 如何使用源码? +建议go1.8,不保证>=1.9能用. cd进入你的go src目录,然后git clone https://github.com/snail007/goproxy.git ./proxy 即可. 编译直接:go build 运行: go run *.go