如何判断谁通过 vnc 连接到我的机器?

tux*_*mer 2 networking process users vnc

如何检查当前有多少 vnc 连接或不同的用户连接到我的机器?只能通过wireshark吗?以及如何杀死通过 vnc 连接的任何其他用户?

Sté*_*las 8

在 Linux 上,

ss sport = :5900
Run Code Online (Sandbox Code Playgroud)

会告诉您当前在端口 5900 上建立的 TCP 连接。

对于其他任何事情,我们都需要知道您使用的是什么 VNC 服务器,因为有几十个。

如果您知道 VNC 服务器命令的名称,

lsof -ai tcp -c that-command
Run Code Online (Sandbox Code Playgroud)

(作为运行 VNC 服务器的用户或作为 root 用户)还会告诉您当前建立的由该 VNC 服务器处理的 TCP 连接(以防它不在端口 5900 上)。

在一般情况下关闭 TCP 连接的方法包括:

  • tcpkill(来自dsniff包)伪造将关闭连接的 TCP 数据包。
  • iptstate(Linux)。如果您使用的是有状态防火墙。您可以从 Linux 连接跟踪器表 ( xin iptstate) 中删除连接,这通常会导致较新的数据包被忽略(如果防火墙配置为仅接受使用 TCP SYN 的新连接)。它不会终止连接,只是让它处于非活动状态。
  • 添加防火墙规则以拒绝在该连接中传输/接收的更多数据包(在 Linux 上,iptables目标为“REJECT”,匹配源和目标 TCP 端口以及 OUTPUT 和 INPUT 过滤器链中的 IP 地址)
  • 将 gdb 附加到正在运行的 vnc 服务器并执行call close(fd)其中 fd 是相应套接字的文件描述符(您已经用 发现lsof),然后是detach(它可能会混淆 vnc 服务器很多那些,调用shutdown而不是close可能更安全)。