alfish Asked: 2012-07-08 03:01:39 +0800 CST2012-07-08 03:01:39 +0800 CST 2012-07-08 03:01:39 +0800 CST 如何在 Linux 中查看传入 IP? 772 我想知道什么是命令/实用程序来实时查看传入的 IP 到我的服务器,最好是连同端口和连接。 networking monitoring ip 6 个回答 Voted Best Answer Mike Pennington 2012-07-08T04:24:22+08:002012-07-08T04:24:22+08:00 利用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获取它 thinice 2012-07-08T04:35:12+08:002012-07-08T04:35:12+08:00 对于“purdy”显示,我偏爱一个名为“iptraf”的工具,它可以完成您提到的功能,以及每个接口和每个端口的聚合。 对于核心 Linux 工具,可信赖的 netstat 可以解决问题…… Basj 2018-02-05T14:53:56+08:002018-02-05T14:53:56+08:00 以下是如何查看所有流向端口 2222 的流量: tcpdump -ni any port 2222 womble 2012-07-08T03:19:03+08:002012-07-08T03:19:03+08:00 Atcpdump会告诉你的;如果你只想要一个 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 地址列表。 Lefty G Balogh 2020-02-04T00:31:14+08:002020-02-04T00:31:14+08:00 您可以使用last来了解您的连接来自何处: last | tac 现在按时间顺序排列的结果如下所示: root pts/0 xx.yy.zz.1 Fri Jan 31 09:13 - 13:25 (04:11) root pts/1 master01-server.ne Fri Jan 31 09:36 still logged in root pts/2 xx.yy.zz.1 Fri Jan 31 10:29 - 14:41 (04:11) root pts/3 master01-server.ne Fri Jan 31 10:33 - 18:31 (07:58) root pts/4 master01-server.ne Fri Jan 31 13:04 - 18:32 (05:28) root pts/0 xx.yy.zz.1 Fri Jan 31 13:41 - 16:33 (02:52) root pts/0 master01-server.ne Mon Feb 3 08:37 still logged in 如果您需要更多详细信息,并且您的系统管理员不再允许netstat,请使用ss: ss | grep xx.zx.yz.161 tcp ESTAB 0 0 nnn.mm.oo.6:ssh xx.zx.yz.161:49046 tcp ESTAB 0 0 nnn.mm.oo.6:ssh xx.zx.yz.161:54800 Carrier 2012-07-08T10:46:29+08:002012-07-08T10:46:29+08:00 一旦获得其他答案中提到的命令之一的输出,就可以使用“watch”工具进行“实时”。例如,“watch -n 5 ps”将每 5 秒执行一次命令“ps”(“-n”参数)。将“ps”替换为感兴趣的命令,您将获得“monitoring”。或者,就像另一个建议一样,只是在文件上“发球”。
利用
pktstat -n
pktstat源代码托管在 Debian 的站点上,或者您可以从SourceArchive.com获取它
对于“purdy”显示,我偏爱一个名为“iptraf”的工具,它可以完成您提到的功能,以及每个接口和每个端口的聚合。
对于核心 Linux 工具,可信赖的 netstat 可以解决问题……
以下是如何查看所有流向端口 2222 的流量:
A
tcpdump
会告诉你的;如果你只想要一个 IP 列表,你可以过滤 SYN 数据包并只输出源 IP 地址。就像是:会实时为您提供 IP 列表。您也可以
tee
将其保存到一个文件中,并定期sort -u
对其执行操作以获取以您的方式发送连接的唯一 IP 地址列表。您可以使用
last
来了解您的连接来自何处:现在按时间顺序排列的结果如下所示:
如果您需要更多详细信息,并且您的系统管理员不再允许
netstat
,请使用ss
:一旦获得其他答案中提到的命令之一的输出,就可以使用“watch”工具进行“实时”。例如,“watch -n 5 ps”将每 5 秒执行一次命令“ps”(“-n”参数)。将“ps”替换为感兴趣的命令,您将获得“monitoring”。或者,就像另一个建议一样,只是在文件上“发球”。