我在办公室的一些电脑上设置了 nc。它们像这样连接到我们的服务器:
nc 192.168.1.2 3291 -e cmd
有人知道如何列出传入的连接尝试而不是接受一个吗?不是:
nc -l 192.168.1.2 3291
编辑:使用 tcpdump 解决了列表部分。问题的剩余部分:
如何在 nc 中仅接受来自特定主机的连接?例如,、192.168.1.6
和192.168.1.7
都192.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 中。