如何查看Linux中的传入IP?


21

我想知道对服务器的传入IP进行实时查看的命令/实用工具是什么,理想情况下是与端口和已连接端口一起使用的视图。

Answers:


25

使用 pktstat -n

interface: eth0
bps

   bps    % desc
 162.3   0% arp
 286.5   0% llc 802.1d -> 802.1d
 544.3   1% tcp 172.16.1.5:22 <-> 172.16.1.95:8074
 34.0k  87% udp 172.16.1.1:514 <-> 172.16.1.5:514
 350.1   0% udp 172.16.1.5:24330 <-> 209.18.47.62:53
 329.4   0% udp 172.16.1.5:34870 <-> 209.18.47.62:53
 388.3   0% udp 172.16.1.5:4470 <-> 209.18.47.62:53
 407.4   1% udp 172.16.1.5:47008 <-> 209.18.47.62:53
 741.6   1% udp 172.16.1.5:53 <-> 172.16.1.74:43289
 663.6   1% udp 172.16.1.5:53 <-> 172.16.1.74:44589
 647.7   1% udp 172.16.1.5:53 <-> 172.16.1.74:58223
 128.9   0% udp 172.16.1.74:5353 <-> 224.0.0.251:5353
 160.7   0% udp6 fe80::21c:bfff:fecf:a798,5353 <-> ff02::fb,5353

pktstat源代码托管在Debian的网站,或者你可以从它SourceArchive.com


1
惊人。正是我想要的。这很明显,但是要完成答案,您可能需要补充一点,可以通过“ apt-get install pkstat”简单地安装它。
alfish 2013年

另外,如果pktstat: pcap_lookupdev: no suitable device found在运行此命令时得到提示,则可能需要是root用户。
蒂姆·马隆

10

对于“纯净”显示,我偏爱一个名为“ iptraf”的工具,该工具可以完成您提到的内容,每个接口以及每个端口的汇总。

对于核心Linux工具,值得信赖的netstat可以解决问题。


1
就可用性和功能而言,IPtraf是我见过的最好的工具-显然,您仍然可以使用netstat和ngrep和tcpdump之类的标准工具来编写某些脚本,但是为什么要重新发明轮子呢:)
gyre

为了完整起见,iftop类似于iptraf(基于ncurses的应用程序,使用条形图而不是数字)来显示每个IP地址的带宽使用情况。使用-P选项,您也可以按端口获取它。
gsreynolds 2012年

7

A tcpdump会告诉你;如果仅需要IP列表,则可以对SYN数据包进行过滤,仅输出源IP地址。就像是:

tcpdump -i eth0 -n 'tcp[tcpflags] & tcp-syn != 0 and not src and dst net localnet' | sed 's/^.*IP \([^ ]*) >.*$/\1/'

可以实时获取IP列表。您也可以将tee其保存到文件中,并定期对其进行sort -u处理,以获取已发送连接的唯一IP地址列表。


3

这是如何查看所有传入端口2222的流量:

tcpdump -ni any port 2222

0

一旦获得其他答案中提到的命令之一的输出,就可以使用“监视”工具进行“实时”显示。例如,“ watch -n 5 ps”将每5秒执行一次命令“ ps”(“-n”参数)。用感兴趣的命令替换“ ps”,您将获得“监视”。或者,仅在文件中“发球”,如另一项建议中所述。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.