列出 nc (netcat) 上的传入连接

列出 nc (netcat) 上的传入连接

我在办公室的一些电脑上设置了 nc。它们像这样连接到我们的服务器:

nc 192.168.1.2 3291 -e cmd

有人知道如何列出传入的连接尝试而不是接受一个吗?不是:

nc -l 192.168.1.2 3291

编辑:使用 tcpdump 解决了列表部分。问题的剩余部分:

如何在 nc 中仅接受来自特定主机的连接?例如,、192.168.1.6192.168.1.7192.168.1.8要求连接,而我们只想与 对话192.168.1.7。有没有办法用 nc 做到这一点?

答案1

您想看到正在尝试实时连接的客户,对吗?

您可以用于tcpdump此。

例如,要查看 TCP 端口 3291 上发生的情况,您可以执行tcpdump -i any tcp port 3291。然后,您可以实时查看到达此端口的所有数据包。

答案2

这是linux吗(win和linux都有标签)?

你可以让 iptables 同时记录和过滤连接。这是一个非常贫穷的例如。如果你想这样做,请对 iptables(特别是日志记录)进行更多研究。顺序很重要。持久配置因发行版而异。在 RHEL/CentOS 上iptables-save > /etc/sysconfig/iptables。要小心。

iptables -N LOGREJECT
iptables -A LOGREJECT -j LOG --log-prefix="PORT3291: "
iptables -A LOGREJECT -j REJECT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 3291 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 3291 -s 192.168.1.100 -j ACCEPT
iptables -A INPUT -p tcp --dport 3291 -j LOGREJECT

在此示例中,仅允许 127.0.0.1 和 192.168.1.100 连接主机。其他所有主机都将被记录并拒绝。

这应该会显示在您的某个日志中。对于我来说,默认日志级别将显示在 /var/log/messages 和 dmesg 中。

相关内容