SpecialProxy/README.md

57 lines
2.5 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

SpecialProxy
======
用epoll多路复用io写的一个超匿HTTP代理轻快自带DNS解析
主要用来配合客户端: https://github.com/mmmdbybyd/CProxy
##### SpecialProxy有如下可选功能
1. 可以配合CProxy等客户端进行Host伪装:
普通HTTP代理通过请求头首行的host或者Host头域字段获得目标主机
SpecialProxy不从首行获取目标主机 它可以自定义代理头域默认是Host
2. 可以配合CProxy将TCP伪装成HTTP流量
普通的HTTP代理服务端只是判断CONNECT请求方法为SSL代理
SpecialProxy可以自定义SSL特征的字符串
请求头中包含有自定义的字符串则判定为SSL代理默认是CONNECT
3. 针对客户端同一个连接同时发送多个HTTP请求头
普通HTTP代理如果遇到多个连续的HTTP请求头只重新拼接第一个请求头
SpecialProxy可以开启严格模式-a参数对所以请求头都重新拼接。
4. 可以做openvpn之类的转接
-L参数设置重定向到本地端口的头域比如-L Local
然后请求头中含有Local: 443代理会将请求发送到127.0.0.1:443。
5. 配合CProxy的数据编码功能可以科学上网:
-e设置数据编码的code(对于上网数据每个字节都+(-)code)
对客户端Host以及请求附带的数据编码
服务器的返回数据也编码。
##### 启动参数:
-l [监听ip:]监听端口 默认监听IP为 "0.0.0.0"
-p 代理头域 默认为 "Host"
-L 本地代理头域 默认为 "Local"
-d DNS查询IP[:端口] 默认为 "114.114.114.114"
-s SSL代理字符串 默认为 "CONNECT"
-e host和数据的编码代码(128-255) 默认为0不编码
-t 连接超时时间, 单位: 分 默认不超时
-i 忽略host前字符个数 默认为0(部分人用得到)
-u 设置uid
-a 对所有HTTP请求重新拼接
-h 显示帮助
-w 工作进程数
##### BUG
待发现
##### 编译:
~~~~~
Linux/Android:
make
~~~~~
##### 启动:
~~~~~
#SpecialProxy -l 监听端口 -p 代理头 -t 超时(分钟) -e 加密编码 -d dnsIP
SpecialProxy -l 80 -p Meng -t 2 -e 170 -d 8.8.8.8
~~~~~