Add files via upload

This commit is contained in:
mmmdbybyd
2017-07-12 12:31:13 +08:00
committed by GitHub
parent 5da52e4d2b
commit 0f34e12a1a

View File

@@ -1,35 +1,35 @@
SpecialProxy
======
<EFBFBD><EFBFBD>epoll<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ioд<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>HTTP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>DNS<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
epoll多路复用io写的一个HTTP代理自带DNS解析
##### SpecialProxy<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>
1. <EFBFBD><EFBFBD>ͨHTTP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>host<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Hostͷ<EFBFBD><EFBFBD><EFBFBD>ֶλ<EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SpecialProxy<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>ȡĿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Host<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
##### SpecialProxy有如下特性:
1. 普通HTTP代理通过请求头首行的host或者Host头域字段获得目标主机
SpecialProxy不从首行获取目标主机,
它可以自定义代理头域默认是Host
2. <EFBFBD><EFBFBD>ͨHTTP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>SSL<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>CONNECT<EFBFBD><EFBFBD><EFBFBD>󷽷<EFBFBD><EFBFBD><EFBFBD>
SpecialProxy<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SSL<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>CONNECT<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2. 普通HTTP代理SSL代理是判断CONNECT请求方法
SpecialProxy可以通过自定义特定字符串进行SSL代理默认是CONNECT)。
3. <EFBFBD><EFBFBD>ͨHTTP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>HTTP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD>ӵ<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>
SpecialProxy<EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD>ģʽ<EFBFBD><EFBFBD>-a<><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD>ӡ<EFBFBD>
3. 普通HTTP代理如果遇到多个连续的HTTP请求头只重新拼接第一个请求头
SpecialProxy可以开启严格模式(-a参数对所以请求头都重新拼接。
4. -L<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD>򵽱<EFBFBD><EFBFBD>ض˿ڵ<EFBFBD>ͷ<EFBFBD>򣬱<EFBFBD><EFBFBD><EFBFBD>-L Local<EFBFBD><EFBFBD>
Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>к<EFBFBD><EFBFBD><EFBFBD>Local: 443<34><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1BDAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>127.0.0.1:443
4. -L参数设置重定向到本地端口的头域,比如-L Local
然后请求头中含有Local: 443代理会将请求发送到127.0.0.1:443
##### <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-l [<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ip:]<5D><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD> Ĭ<>ϼ<EFBFBD><CFBC><EFBFBD>IPΪ "0.0.0.0"
-p <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD> Ĭ<EFBFBD><EFBFBD>Ϊ "Host"
-L <EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD> Ĭ<EFBFBD><EFBFBD>Ϊ "Local"
-d DNS<EFBFBD><EFBFBD>ѯIP[:<EFBFBD>˿<EFBFBD>] Ĭ<EFBFBD><EFBFBD>Ϊ "114.114.114.114"
-s SSL<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD> Ĭ<EFBFBD><EFBFBD>Ϊ "CONNECT"
-a <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>HTTP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD><EFBFBD>
-h <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-w <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
##### 启动参数:
-l [监听ip:]监听端口 默认监听IP "0.0.0.0"
-p 代理头域 默认为 "Host"
-L 本地代理头域 默认为 "Local"
-d DNS查询IP[:端口] 默认为 "114.114.114.114"
-s SSL代理字符串 默认为 "CONNECT"
-a 对所有HTTP请求重新拼接
-h 显示帮助
-w 工作进程数
##### BUG<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD>رգ<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
##### BUG
好像有些连接不关闭,需要定时重启代理
##### <EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
##### 编译:
~~~~~
Linux/Android:
make DEFS=-DXMEMCPY