我在尝试为公司安装一些服务时,与服务器提供商发生了争执,这是因为他们的防火墙策略非常严格,拒绝所有不允许的互联网接入/出入,如果我可以控制防火墙行为,这将不算什么(事实上可能很棒),但所有访问都要经过我和另外 2 个人的审核,所以很累。我决定监控另一台主机,打开所有端口,并检查在一段时间内哪些端口正在被使用。
我确实尝试使用连续的 netstat,但它没有按预期工作,因为没有列出短暂的连接。
那么,我如何才能知道在给定的时间段内哪些端口已注册活动?(哪怕是一点点信息)。我需要以下数据:端口号、流量方向、来源和目标 IP,以及理想情况下触发它的程序。
这样做的目的是为了快速而准确地获取这些信息,如果可能的话,不要阅读有人为错误风险的长日志。
我在两台服务器上都使用 GNU/linux。
答案1
您说得对,捕获所有通过 的短暂连接会非常困难netstat
。您可能想要做的是tcpdump
在您的服务器上使用并运行一段时间的流量捕获。例如,下面的过滤器将捕获到达或离开接口的所有流量eth0
,并将输出写入文件pcap
以供离线分析。
tcpdump -s0 -i eth0 -w eth0_traffic.pcap
获得文件后,你可以将其打开Wireshark然后进入Statistics > Converstations
顶部菜单查看所有 IP、TCP、UDP 等连接,包括源和目标 IP 以及端口号。例如: