Go to file
2018-11-24 14:33:07 +08:00
.gitignore Initial commit 2017-07-12 12:23:33 +08:00
dns.c SpecialProxy 2018-10-14 11:58:56 +08:00
dns.h Add files via upload 2017-07-12 12:52:46 +08:00
http.c Update http.c 2018-11-24 14:33:07 +08:00
http.h SpecialProxy 2018-10-14 11:58:56 +08:00
LICENSE SpecialProxy 2018-10-14 11:58:56 +08:00
main.c Update main.c 2018-11-24 10:52:17 +08:00
main.h SpecialProxy 2018-10-14 11:58:56 +08:00
Makefile Add files via upload 2017-07-12 12:29:56 +08:00
README.md Update README.md 2018-11-24 10:36:50 +08:00
SpecialProxy.sh Add files via upload 2018-11-24 10:32:16 +08:00

SpecialProxy

用epoll多路复用io写的一个HTTP代理自带DNS解析

SpecialProxy有如下特性
1.  普通HTTP代理通过请求头首行的host或者Host头域字段获得目标主机  
    SpecialProxy不从首行获取目标主机  
    它可以自定义代理头域默认是Host。  

2.  普通HTTP代理SSL代理是判断CONNECT请求方法  
    SpecialProxy可以通过自定义特定字符串进行SSL代理默认是CONNECT。  

3.  普通HTTP代理如果遇到多个连续的HTTP请求头只重新拼接第一个请求头  
    SpecialProxy可以开启严格模式-a参数对所以请求头都重新拼接。  

4.  -L参数设置重定向到本地端口的头域比如-L Local  
然后请求头中含有Local: 443代理会将请求发送到127.0.0.1:443  
搭建:
 curl -k -O https://raw.githubusercontent.com/mmmdbybyd/SpecialProxy/master/SpecialProxy.sh && bash SpecialProxy.sh  
启动参数:
-l [监听ip:]监听端口    默认监听IP为 "0.0.0.0"  
-p 代理头域             默认为 "Host"  
-L 本地代理头域         默认为 "Local"  
-d DNS查询IP[:端口]     默认为 "114.114.114.114"  
-s SSL代理字符串        默认为 "CONNECT"  
-u                      设置运行uid  
-a                      对所有HTTP请求重新拼接  
-h 显示帮助  
-w 工作进程数  
BUG
好像有些连接不关闭,需要定时重启代理
编译:
Linux/Android:  
    make  
Android-ndk:  
    ndk-build