找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 3405|回复: 1

tcpflow 在 openwrt(Gargoyle 、LEDE)的移植

[复制链接]
发表于 2017-8-28 13:01 | 显示全部楼层 |阅读模式
本帖最后由 7440909 于 2017-8-28 12:58 编辑

个人在使用中发现tcpflow使用起来真是方便,在vps上已使用很久,相较于Windows上的Fidder, tcpflow最大的优势是什么呢?各位感兴趣就自己Google吧,我就不啰嗦了。好吧还是啰嗦一句:个人认为最大的优势是 结合GNU核心工具链,再配合GNU Screen 等简直就无敌了好吗!例如下面一句
  1. tcpflow -cp  -i  br-wan  port 80  2>&1  | stdbuf -o0 grep -E ".*\.flv" | tee   -a   flvAddreS-S Record.txt
复制代码
等着就好,即将收获一大堆flv下载地址。

以上拋砖一块,有兴趣便找玉去吧。

正文开始。
一堆熊孩子在上网,不利用网络思考知识只知道打游戏,那就想个办法屏蔽掉游戏网站吧!iptables 或者dnsmasq 或者hosts 都是不错的选择,问题是首先要搞到 游戏网站的域名或ip,网上也找不全游戏网站的域名列表,干脆自己手动来吧,Windows下Fidder 设置好http代理服务器抓包手机的流量当然是个好办法,但个人还是倾向于直接使用shell命令,又快又方便,于是就想起了tcpflow来。本人目前使用的是WNDR4300 V1 +  Gargoyle 1.9.2,奈何tcpflow没有现成的openwrt包,只好自己动手了,经过大半天的折腾终于成功。现将结果分享出来,希望对各位有用。
其实就是一个Makefile加一个patch具体下载附件看吧.可以先不要patch文件试着编译一下看能否通过,如果出现错误再加入patch吧。已在且只在WNDR4300 V1 +  Gargoyle 1.9.2 测试过,附件是tcpflow的openwrt/LEDE移植文件,百度盘里是WNDR4300 V1 Gargoyle 1.9.2的整个固件和全部的ipk包,供有兴趣的同学下载参考。目前只是刚刚可以使用,有兴趣的同学可以优化一下,目前是加了python2.7依赖的,其实可以不加。各位有兴趣的努力一下吧,我已经实践证明了移植的可能性,接下来的工作就是把它提交到Openwrt或者LEDE的github仓库了。我目前没什么空闲时间,各位还在读大学的同学可以试一下将你们优化修改的Makefile和patch提交到github去,造福一下世界上其他地方需要这个的网友吧。

移植文件:

编译好的ipk及固件  链接:https://pan.baidu.com/s/1jIvb5NS 密码:ats6

附录:
Makefile源码
  1. #
  2. # Copyright (C) 2014-2017
  3. #
  4. # This is free software, licensed under the GNU General Public License v3.
  5. # See /LICENSE for more information.
  6. #

  7. include $(TOPDIR)/rules.mk

  8. PKG_NAME:=tcpflow
  9. #PKG_REV:=master
  10. PKG_REV:=d1cb93ebab632497165c4f3668fbdaae6245ac1e
  11. PKG_VERSION:=$(PKG_REV)
  12. PKG_RELEASE:=1

  13. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
  14. PKG_SOURCE_URL:=https://github.com/simsong/tcpflow.git
  15. PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
  16. PKG_SOURCE_VERSION:=$(PKG_REV)
  17. PKG_SOURCE_PROTO:=git

  18. PKG_LICENSE:=GPLv3
  19. PKG_LICENSE_FILES:=LICENSE
  20. PKG_MAINTAINER:=waitting for one <tst@live.com>

  21. PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)

  22. PKG_INSTALL:=1
  23. PKG_FIXUP:=autoreconf
  24. #PKG_USE_MIPS16:=0
  25. PKG_BUILD_PARALLEL:=1

  26. include $(INCLUDE_DIR)/package.mk

  27. define Package/tcpflow/Default
  28.         SECTION:=net
  29.         CATEGORY:=Network
  30.         TITLE:=TCP/IP packet demultiplexer
  31.         URL:=https://github.com/simsong/tcpflow
  32.         DEPENDS:=+zlib +libpthread +libpcap +libopenssl +libexpat  +python +boost +boost-container +boost-python
  33. endef

  34. Package/tcpflow = $(Package/tcpflow/Default)

  35. define Package/tcpflow/description
  36. tcpflow is a program that captures data transmitted as part of TCP connections (flows), and stores the data in a way that is convenient for protocol analysis and debugging. Each TCP flow is stored in its own file. Thus, the typical TCP flow will be stored in two files, one for each direction. tcpflow can also process stored 'tcpdump' packet flows.
  37. endef


  38. CONFIGURE_ARGS += --enable-cairo=false


  39. define Package/tcpflow/install
  40.         $(INSTALL_DIR) $(1)/usr/sbin
  41.         $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/tcpflow $(1)/usr/sbin
  42. endef

  43. $(eval $(call BuildPackage,tcpflow))
复制代码

patch
  1. diff -Nur a/src/tcpip.cpp b/src/tcpip.cpp
  2. --- a/src/tcpip.cpp        2017-08-27 15:19:55.000000000 +0800
  3. +++ b/src/tcpip.cpp        2017-08-27 20:52:09.368499522 +0800
  4. @@ -146,7 +146,13 @@
  5.             tstimes[i].tv_nsec = times[i].tv_usec * 1000;
  6.         }
  7.         if(futimens(fd,tstimes)){
  8. -            perror("futimens(fd=%d)",fd);
  9. +
  10. +            //https://www.experts-exchange.com/questions/20767068/How-to-control-the-format-of-perror.html
  11. +            //http://www.cplusplus.com/reference/cstdio/sprintf/
  12. +            char *buf=NULL;
  13. +            sprintf(buf,"futimens(fd=%d)",fd);
  14. +            perror(buf);
  15. +
  16.         }
  17. #endif
  18.         close(fd);
复制代码

测试图:




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2017-8-28 15:29 | 显示全部楼层
本帖最后由 coolslob 于 2017-8-28 15:43 编辑

牛逼,op下有这么好东西。
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-9-23 13:16

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表