- 论坛徽章:
- 0
|
本帖最后由 owenwell 于 2015-09-08 11:08 编辑
一台流媒体服务器,ubuntu server 14.04系统,请求包和响应包都是udp包
需求:通过脚本定期获取udp连接的数据,主要是客户端的ip列表
用过的方法:
1. netstat -anu
上述命令执行后没有详细的连接数据,只有0.0.0.0:*
2. tcpdump -nnt udp src port $服务端口 -c 1000
可以抓取到服务器的响应包,并通过grep来获取用户ip,只能通过指定抓包数量,而不能指定抓包时间,如抓包1秒
缺点是获取的连接数据不全,如果增大抓包数量,又无法控制抓包完成的时间
3. conntrack -L -p udp
由于在ubuntu server上,没有/pro/net/ip_conntrack文件,只能通过conntrack-tools工具来获取连接conntrack信息
可以很快获取连接信息,但是无法指定匹配端口范围,例如:conntrack -L -p udp --sport 20000:20060,只能获取目标端口20000的udp包连接信息
通过conntrack -L -p udp | grep sport=200 来过滤,发现conntrack 命令的版本及汇总信息总是夹杂在获取的ip列表中,如下:
udp 17 29 src=124.244.74.132 dst=171.252.121.131 sport=44477 dport=20005 [UNREPLIED] src=10.1.4.2 dst=124.244.74.132 sport=20005 dport=44477 mark=0 use=1
conntrack v1.4.2 (conntrack-tools): udp 17 29 src=113.93.150.146 dst=171.252.121.131 sport=32344 dport=20005 [UNREPLIED] src=10.1.4.2 dst=113.93.150.146 sport=20005 dport=32344 mark=0 use=1
89 flow entries have been shown.
udp 17 29 src=112.226.156.185 dst=171.250.121.131 sport=27103 dport=20003 [UNREPLIED] src=10.1.4.2 dst=112.226.156.185 sport=20003 dport=27103 mark=0 use=1
用conntrack -L -p udp | grep -v conntrack 也无法过滤掉本这本来应该是最后一行的信息,导致无法通过gerp、awk等工具来获取ip地址
4. iftop
这个可以看到,但无法导出
请问各位大神:
1. 在linux下有无其他查看udp连接并可以导出记录的工具?
2. conntrack命令应该如何用字符工具来处理?最后那一行太顽强了! |
|