诺甘农圆盘

参考资料收集库

用户工具

站点工具


小米路由器_r2d:解决_404_劫持和插入广告的办法

小米路由器R2D解决_404_劫持和插入广告的办法

小米路由净化计划初步操作–20150625

小米越来越无下限了,打着优化用户体验的幌子,做一些让人匪夷所思的事情。 先是用户发现劫持404页面后,最近又有用户发现一些页面被插入了页眉广告。 网上搜索这类事情结果很多,可以看看下面几篇讨论文章: —如何看待小米路由进行 404 网页劫持?

  http://www.zhihu.com/question/30358197

—小米路由器先劫持 http 错误码, 现在又在部分网站添加小尾巴, 什么节奏?

  https://www.v2ex.com/t/199701

—这是我之前对小米路由插入页眉广告的一点分析,上面的链接中我也做了回复

  http://pastebin.com/4t7eKNsA

正是因为出现了页眉广告,我实在是对小米忍无可忍了。 当然最好的办法是直接抛弃使用小米路由,但世上不是没有后悔药的么 况且花了几百元买的路由器,总不能仍了,目前也还没有小米路由干净的openwrt的固件 所以,想着是否通过一些操作,将小米路由一些不必要的启动项和进程,以实现一台干净的openwrt系统。

最近几天稍微对小米路由(R1D)上的启动项和进程做了一些分析,初步得到一个稍微干净的小米路由: 可疑启动项和进程分析

1.1 /etc/init.d/http_client_detect

在这个启动项里,主要是加载nf_conn_ext_http 和 insmod nf_tcp_proxy 两个内核模块,同时有启动 /usr/sbin/http_dpi 我还没深入研究,但初步判断小米路由监控用户的HTTP数据,已达到404劫持和插入广告的操作。 所以这个启动项必须删除掉,抛弃

1.2 /etc/init.d/rule_mgr

这个启动项中有http_match , nf_conn_ext_http, nf_tcp_proxy 内核模块 估计也是辅助劫持所用,抛弃

1.3 /etc/init.d/http_status_stat

单从名字上看,应该就是为劫持404所用,抛弃

1.4 /etc/init.d/statisticsservice

启动的进程中的配置文件中有一段:ad_filter_stat_url = “http://127.0.0.1:8195/” 感觉是广告的代理,你说没事去访问8195端口干啥,另外“ad”这个名字,就是广告缩写呀,抛弃

1.5 /etc/init.d/sysapihttpd

这是启动http服务器,纯粹启动80端口也就罢了,启动了N个服务和端口,我也就不一一吐槽了 总之也是为配合404劫持和广告所用,所以需要抛弃。 如果才启动项禁用掉的话,可能就无法访问小米路由的WEB配置页面了,别担心,可以启动uhttpd来实现。

1.6 /etc/init.d/mihttpd

同样是启动小米路由的配置页面,不过不在80端口,抛弃。

1.7 /etc/init.d/xunlei

小米路由中的下载用的就是迅雷,如果有下载需求的可以不用停,但我无此需求,看着也不爽,抛弃。

1.8 /etc/init.d/messagingagent.sh

此启动项是将路由器一些数据上报给小米服务器,手机app远程访问也就是联系小米服务器获取路由的相关信息。 具体我也不一一描述了,个人感觉,将一些信息上传给小米,这件事不靠谱。 虽然打着“远程管理”的幌子,谁知道有无上传个人隐私信息呢。 如果你还需要用手机APP远程配置路由的话,可以留着。

操作步骤: 当然小米路由上还有其他可疑进程,但还未搞清楚其用途或者关联,暂时不去理会。 这次主要初步解决掉404劫持,插入广告这类问题: 手上这台小米路由的系统版本是: 开发版2.3.10 ,其他版本未尝试。

2.1 首先得开启ssh权限,这个不需要多说了,网上教程很多,也可以通过小米官网开启 开启之后就失去保修了,个人衡量。

2.2 关闭可疑进程操作:

/etc/init.d/rule_mgr stop
/etc/init.d/http_client_detect stop
/etc/init.d/http_status_stat stop
/etc/init.d/statisticsservice stop
/etc/init.d/sysapihttpd stop
/etc/init.d/mihttpd stop

不需要远程访问和迅雷下载的话,可以继续操作:

/etc/init.d/messagingagent.sh stop
/etc/init.d/xunlei stop

这样的话,以上进程都被关闭掉了。

2.3 关闭可疑进程开机自动运行:

/etc/init.d/rule_mgr disable
/etc/init.d/http_client_detect disable
/etc/init.d/http_status_stat disable
/etc/init.d/statisticsservice disable
/etc/init.d/sysapihttpd disable
/etc/init.d/mihttpd disable

不需要远程访问和迅雷下载的话,可以继续操作:

/etc/init.d/messagingagent.sh disable
/etc/init.d/xunlei disable

这样的话,以上进程,重启之后也不会开机运行了

2.4 启动uhttpd操作: 因为停掉了sysapihttpd ,小米路由配置WEB将无法访问。 幸运的是,小米路由上还有uhttpd 首先修改一下/etc/init.d/uhttpd

找到 $use_uhttpd -eq 0 && return 0 这行,大概在倒数第8行的样子,注释掉这一行。 然后启动uhttpd:

/etc/init.d/uhttpd start

并设置开机自动运行:

/etc/init.d/uhttpd enable

2.5 计划任务中一些操作也让我存疑 执行crontab -e 可以注释停掉,目前我计划任务中只保留了ntp,其他项都被我注释掉了。

至此,我个人认为可以解决小米路由劫持404,插入广告,上报数据的问题了。 我的小米路由器运行了3天,目前正常使用中,可能还有可疑的进程,还未发现,继续持续关注。 小米路由净化计划继续,继续分析可疑进程,将其打入小黑屋, 另外想办法用原生luci替换掉目前小米定制的小米luci,装个插件都得在手机APP操作,实在蛋疼。

https://www.v2ex.com/t/201045

小米路由器_r2d/解决_404_劫持和插入广告的办法.txt · 最后更改: 2019/10/06 18:14 由 127.0.0.1