iptraf通过TCP/UDP端口查看流量,指定端口号范围
[ 2010-12-08 13:51:15 | 作者: admin ]
同事说用iptraf查看无法查看xxxx端口的流量, 我打开iptraf一看, 还真的看不到xxxx端口的流量, 这是什么原因呢?
本着研究的精神, 我到http://iptraf.seul.org/download.html下载的iptraf的源码, 查看iptraf-3.0.0/src/serv.c, 找到函数updateportent(), 发现里面调用了一个goodport()的函数, 看看这个函数是长啥样子的.
int goodport(unsigned int port, struct porttab *table)
{
return ((port < 1024) || (portinlist(table, port)));
}
原来需要小于1024或者在portinlist里面的端口才会被监听到, 再看看portinlist是长什么样子的.
int portinlist(struct porttab *table, unsigned int port)
{
struct porttab *ptmp = table;
while (ptmp != NULL) {
if (((ptmp->port_max == 0) && (ptmp->port_min == port)) ||
((port >= ptmp->port_min) && (port <= ptmp->port_max)))
return 1;
ptmp = ptmp->next_entry;
}
return 0;
}
哦, 原来还可以自己设定要监听的端口的范围, 看看iptraf那里可以设置, 打开iptraf,从Configure-Additional ports->输入端口范围.
打开iptraf, 选Statistical breakdowns->By TCP/UDP port, 这个时候可以看到xxxx端口的流量了.
TCP/xxxx 21662 35536334 10723 579045 10939 34957289
评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=1578
本着研究的精神, 我到http://iptraf.seul.org/download.html下载的iptraf的源码, 查看iptraf-3.0.0/src/serv.c, 找到函数updateportent(), 发现里面调用了一个goodport()的函数, 看看这个函数是长啥样子的.
int goodport(unsigned int port, struct porttab *table)
{
return ((port < 1024) || (portinlist(table, port)));
}
原来需要小于1024或者在portinlist里面的端口才会被监听到, 再看看portinlist是长什么样子的.
int portinlist(struct porttab *table, unsigned int port)
{
struct porttab *ptmp = table;
while (ptmp != NULL) {
if (((ptmp->port_max == 0) && (ptmp->port_min == port)) ||
((port >= ptmp->port_min) && (port <= ptmp->port_max)))
return 1;
ptmp = ptmp->next_entry;
}
return 0;
}
哦, 原来还可以自己设定要监听的端口的范围, 看看iptraf那里可以设置, 打开iptraf,从Configure-Additional ports->输入端口范围.
打开iptraf, 选Statistical breakdowns->By TCP/UDP port, 这个时候可以看到xxxx端口的流量了.
TCP/xxxx 21662 35536334 10723 579045 10939 34957289

这篇日志没有评论。
此日志不可发表评论。