|
本帖最后由 7440909 于 2017-8-28 12:58 编辑
个人在使用中发现tcpflow使用起来真是方便,在vps上已使用很久,相较于Windows上的Fidder, tcpflow最大的优势是什么呢?各位感兴趣就自己Google吧,我就不啰嗦了。好吧还是啰嗦一句:个人认为最大的优势是 结合GNU核心工具链,再配合GNU Screen 等简直就无敌了好吗!例如下面一句- 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源码- #
- # Copyright (C) 2014-2017
- #
- # This is free software, licensed under the GNU General Public License v3.
- # See /LICENSE for more information.
- #
- include $(TOPDIR)/rules.mk
- PKG_NAME:=tcpflow
- #PKG_REV:=master
- PKG_REV:=d1cb93ebab632497165c4f3668fbdaae6245ac1e
- PKG_VERSION:=$(PKG_REV)
- PKG_RELEASE:=1
- PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
- PKG_SOURCE_URL:=https://github.com/simsong/tcpflow.git
- PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
- PKG_SOURCE_VERSION:=$(PKG_REV)
- PKG_SOURCE_PROTO:=git
- PKG_LICENSE:=GPLv3
- PKG_LICENSE_FILES:=LICENSE
- PKG_MAINTAINER:=waitting for one <tst@live.com>
- PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
- PKG_INSTALL:=1
- PKG_FIXUP:=autoreconf
- #PKG_USE_MIPS16:=0
- PKG_BUILD_PARALLEL:=1
- include $(INCLUDE_DIR)/package.mk
- define Package/tcpflow/Default
- SECTION:=net
- CATEGORY:=Network
- TITLE:=TCP/IP packet demultiplexer
- URL:=https://github.com/simsong/tcpflow
- DEPENDS:=+zlib +libpthread +libpcap +libopenssl +libexpat +python +boost +boost-container +boost-python
- endef
- Package/tcpflow = $(Package/tcpflow/Default)
- define Package/tcpflow/description
- 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.
- endef
- CONFIGURE_ARGS += --enable-cairo=false
- define Package/tcpflow/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/tcpflow $(1)/usr/sbin
- endef
- $(eval $(call BuildPackage,tcpflow))
复制代码
patch
- diff -Nur a/src/tcpip.cpp b/src/tcpip.cpp
- --- a/src/tcpip.cpp 2017-08-27 15:19:55.000000000 +0800
- +++ b/src/tcpip.cpp 2017-08-27 20:52:09.368499522 +0800
- @@ -146,7 +146,13 @@
- tstimes[i].tv_nsec = times[i].tv_usec * 1000;
- }
- if(futimens(fd,tstimes)){
- - perror("futimens(fd=%d)",fd);
- +
- + //https://www.experts-exchange.com/questions/20767068/How-to-control-the-format-of-perror.html
- + //http://www.cplusplus.com/reference/cstdio/sprintf/
- + char *buf=NULL;
- + sprintf(buf,"futimens(fd=%d)",fd);
- + perror(buf);
- +
- }
- #endif
- close(fd);
复制代码
测试图:
请不要胡乱输入以及粘贴、复制等方式灌水
请尊重作者、并共同维护网站的正常阅读,否则账户将会被限制发帖、回帖,并且积分可能会被清零,站内短信以及阅读权限等都会受到影响,谢谢。
具体限制方式:https://www.right.com.cn/forum/thread-8307840-1-1.html
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|