通过抓包获取免流模式

很多人在问,什么样的免流参数适合我?我的地区应该用什么样的参数。别人其实也不一定能够十分知道,因人而异,因地而异。通过抓包,才能找到最为适合你的免流参数。

首先来看一个抓包:

1
2
3
4
GET /images/logo.png HTTP/1.1 Host: rd.go.10086.cn
MMD-Online-Host: rd.go.10086.cn
MMD-X-Online-Host: www.test.comosver: 22appver: 320400mzosver: 5.0If-Modified-Since: Mon, 04 Jan 2016 11:37:02 GMT+00:00User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.1; m1 note Build/LMY47D)
Accept-Encoding: gzipConnection: close

剔除没用的东西,下面这些是我们需要的东西:

1
2
3
GET /images/logo.png HTTP/1.1 Host: rd.go.10086.cn
MMD-Online-Host: rd.go.10086.cn
MMD-X-Online-Host: www.test.com

也就是说从GET或者POST开始到最后一个Host或者X-Online-Host结尾,都是完整的免流模式表达式,来详解一下每个部位在.c模式里代表什么:
.c代表模式文件,对于.c中某些含义不太懂的请参考剖析免流原理
移植模式有一点必须要遵守,原模式核心部位有的东西移植后一定要存在,原模式没有的东西移植后一定不能存在。
接下来就根据上述说明替换请求头内容移植到模式文件中:

1
$header="$_SERVER[REQUEST_METHOD] $_SERVER[REQUEST_URI] HTTP/1.{!--XY--}\r\nHost: {!--XXX--}\r\nMMD-Online-Host:{!--XXX--}\r\nMMD-X-Oline-Host: $host";

可以看到在原基础的每一行后面都多了一个\r\n,参考剖析免流原理可以知道\r\n是换行符,只要有\r\n的地方都会像按了一个回车一样换到下一行开始\r\n后面的内容。
写抓包模式一定要注意的是每个空格的位置,写好模式后一定要仔细观察空格在不在该在的位置。
再看看完整的移植后模式:

1
2
3
4
5
6
7
8
9
10
{!--PROXY--}
>title=MMD
>MMD=rd.go.10086.cn;免流HOST;
>XY=select:2,1|1.1,0|1.0;HTTP协议;是否使用1.1协议
<
{!--PROXY_HEADER--}
$host=$_SERVER['HTTP_X_ONLINE_HOST'];if($host===NULL) $host=$_SERVER['HTTP_HOST'];
$header="$_SERVER[REQUEST_METHOD] $_SERVER[REQUEST_URI] HTTP/1.{!--XY--}\r\nHost: {!--MMD--}\r\nMMD-Online-Host:{!--MMD--}\r\nMMD-X-Oline-Host: $host";if ($_SERVER['HTTP_CONNECTION']!=='keep-alive'){$_SERVER['HTTP_CONNECTION']='close';}if($_SERVER['CONTENT_TYPE']) $_SERVER['HTTP_CONTENT_TYPE']=$_SERVER['CONTENT_TYPE'];
{!--PROXY_PRINT--}
?>

(关于最近很多群员问云免模式怎么写,这个没办法像.c模式一样,因为openvpn不支持获取真实host,云免模式可以在淘宝找你当地能够免流的配置文件,买一天试用,文本方式编辑配置文件,提取出免流代理串,替换到你自己的配置文件中。或者自己加几个X-Online-Host或者Host)

热评文章