以top命令的风格显示IP表状态表条目
命令语法格式
iptstate [<options>]
命令描述
命令iptstate以类似top的格式,实时显示IP表状态表中保存的信息。输出可以按任何字段排序,也可以按任何字段反向排序。用户可以选择只输出一次输出并退出,而不是类似top系统。刷新率是可配置的,IP可以解析为名称,输出可以格式化,显示可以过滤,颜色编码是许多功能中的一些。
命令行选项
-c, –no-color
按协议切换颜色代码。
-t, –totals
切换总计的显示。
-C, –counters
切换bytes/packets计数器的显示。
-l, –lookup
显示主机名,而不是IP地址。启用此功能还将启用-L选项,以防止数量不断增加的DNS请求。
-L, –no-dns
跳过传出的DNS查找状态
-m, –mark-truncated
使用“+”标记截断的主机名
-o, –no-dynamic
切换动态格式化。
-f, –no-loopback
在环回上过滤状态。
-p, –no-scroll
没有滚动(不要使用“pad”)。 有关更多信息,请参阅SCROLLING和PADS部分。
-R, –rate seconds
刷新率,然后是以秒为单位的速率。请注意,这适用于statetop模式,不适用于单次运行模式(–single)。
-1, –single
单次运行(没有Curses)
限制IP地址和端口
-d, –dst-filter IP
仅显示目标地址为IP的状态。注意,参数IP必须是地址,尚不支持主机名匹配。
-D –dstpt-filter port
仅显示目标端口为port的状态。
-s, –src-filter IP
仅显示源地址为IP的状态。注意,参数IP必须是地址,尚不支持主机名匹配。
-S, –srcpt-filter port
仅显示源端口为port的状态。
排序
-r, –reverse
反向排序。
-b, –sort column
这决定了要排序的列。选项:
d Destination IP (or Name)
D Destination Port
p Protocol
s State
t TTL
b Bytes
P Packets
要按源IP(或名称)排序,请不要使用-b。 按bytes/packets排序仅适用于支持它的内核,并且仅在针对libnetfilter_conntrack(默认值)进行编译时才可用。
其他选项
-h, –help
显示帮助信息。
交互选项
从2.0版开始,现在所有命令行选项都可以使用与短选项相同的按键以交互方式使用。 例如,–sort也是-b,所以当iptstate运行时,点击“b”会将排序更改为下一列。 同样,“t”切换总计的显示,依此类推。
还有额外的交互选项:B – 将排序更改为前一列(与b相反);q – 退出;x – 从netfilter conntrack表中删除当前突出显示的状态。
此外,以下键用于在iptstate中导航:
Down, k – 向下移动一行;
Left, h – 向左移动一行;
Right, l – 向右移动一行;
PageUp, ^u – 向上移动一页;
PageDown, ^d – 向下移动一页;
Home – 到顶部;
End – 到底部;
在许多情况下,iptstate需要提示您以便更改某些内容。例如,如果您想设置或更改源IP地址过滤器,当您点击“s”时,iptstate会在窗口顶部弹出一个提示,询问您要将其设置为什么。
请注意,像许多UNIX应用程序一样,ctrl-G会告诉iptstate“别介意” – 它会删除提示并忘记你曾经按过“s”键。
在大多数情况下,空白响应意味着“clear” – 例如,清除源IP过滤器。
在iptstate运行的任何时候,您都可以点击“h”进入交互式帮助,该帮助将显示所有当前设置,并为您提供所有可用交互式命令的列表。
在运行时,SPACE将立即更新显示。iptstate应该优雅地处理所有窗口调整大小,但如果没有,你可以强制它重新计算并用ctrl-L重新绘制屏幕。
请注意,在交互模式下按“l”以启用主机名解析,同时也将使“L”能够跳过所有DNS条目(以防止不断增加的DNS请求数)。
注意事项
(1)
我们不支持对已解析的名称进行过滤,我们也不支持对网络进行过滤。 IPv6支持是新的,动态格式化并不总是处理IPv6地址。
(2)
iptstate做了很多工作,试图以易于阅读的方式将所有内容都放在屏幕上。但是,在某些情况下,可能需要截断主机名(在查找模式下)。同样,可能需要截断IPv6地址。名称的截断发生在源地址的右侧,因为您很可能知道自己的域名,而左侧是目的地址,因为知道您的用户与“mail.a.”的连接。没多大帮助。但是,对于地址,这是相反的。
在交互式帮助屏幕中,iptstate不会自动处理窗口大小调整。如果在此窗口中调整大小,则应返回主窗口,按ctrl-L重新计算并重新绘制屏幕,然后如果有必要,则你可以再返回交互式帮助。
iptstate当前使用libnetfilter_conntrack来访问netfilter连接状态表。但是,旧版本从/proc/net/ip_conntrack读取,并且仍然可以编译当前版本来执行此操作。这种弃用的方法可能会对SMP系统产生影响,并且可能会影响负载很重的防火墙的性能。应避免使用此弃用方法 – 将来的版本中将删除支持。
(3)“Scrolling”与“Pad“
对于几乎所有用户,没有理由关闭“Scrolling”。关闭它的能力对于理论上的完整性而言比其他任何事情都要多,尤其是交互式切换的能力。
但是,尽管如此,这里还有细节。通常在Curses应用程序中,您可以创建一个“Window”。但是,“Window”不会滚动。它们最多只是终端的大小。“Window”提供双缓冲,使刷新尽可能快速和无缝。但是,要启用“Scrolling”,必须使用“Pad”而不是“Window”。“Pad”可以比当前终端大。然后将所有必要的数据写入“Pad”,并且“Scrolling”成为仅在屏幕上显示该“Pad”的右侧部分的功能。
但是,“Pad”没有“Window”具有的双缓冲功能。因此,有些情况下,某些用户使用某些非常奇怪的机器,启用“Scrolling”可能会导致刷新不良。鉴于iptstate使用屏幕的方式的性质,我觉得这很不可能。此外,“Scrolling”方法使用更多的内存。但是,iptstate不是内存密集型应用程序,因此即使在低内存系统上也不应该成为问题。
尽管如此,如果这对您产生负面影响,那么关闭它的选项就在那里。
退出状态
除0以外的任何指示和错误。当前退出状态列表如下:
0 成功
1 错误的命令行参数
2 与netfilter子系统通信时出错。
3 终端太窄
相关手册
iptables(8)
参考文献
- man 8 iptstate, Version 2.2.6-1+b2
更新日志
- 10/29/2018 创建文章