누가 vnc를 통해 내 컴퓨터에 연결되어 있는지 어떻게 알 수 있나요?

누가 vnc를 통해 내 컴퓨터에 연결되어 있는지 어떻게 알 수 있나요?

현재 내 컴퓨터에 몇 개의 vnc 연결 또는 다른 사용자가 연결되어 있는지 어떻게 확인할 수 있습니까? Wireshark를 통해서만 가능합니까? vnc를 통해 연결된 다른 사용자를 죽이는 방법은 무엇입니까?

답변1

리눅스에서는,

ss sport = :5900

포트 5900에 설정된 현재 TCP 연결을 알려줍니다.

다른 모든 것과 마찬가지로, 수십 개의 VNC 서버를 사용하고 있으므로 어떤 VNC 서버를 사용하고 있는지 알아야 합니다.

VNC 서버 명령어의 이름을 알고 계시다면,

lsof -ai tcp -c that-command

(VNC 서버를 실행하는 사용자 또는 루트로서) VNC 서버가 처리하는 현재 설정된 TCP 연결도 알려줍니다(포트 5900에 있지 않은 경우).

일반적으로 TCP 연결을 닫는 방법은 다음과 같습니다.

  • tcpkill(패킷에서 dsniff) 연결을 닫는 TCP 패킷을 위조합니다.
  • iptstate(리눅스). 상태 저장 방화벽을 사용하는 경우. Linux 연결 추적기 테이블( xin) 에서 연결을 삭제할 수 있습니다 iptstate. 이렇게 하면 일반적으로 새로운 패킷이 무시됩니다(방화벽이 TCP SYN을 통한 새 연결만 허용하도록 구성된 경우). 연결을 종료하지 않고 단지 비활성화 상태로 만듭니다.
  • 이 연결에서 전송/수신되는 추가 패킷을 거부하는 방화벽 규칙을 추가합니다(Linux에서 iptables대상은 "REJECT"이며 OUTPUT 및 INPUT 필터 체인의 소스 및 대상 TCP 포트와 IP 주소와 일치함).
  • 실행 중인 vnc 서버에 gdb를 연결하고 실행합니다. call close(fd)여기서 fd는 해당 소켓( 를 사용하여 찾을 수 있음 lsof)의 파일 설명자입니다. 그런 다음 실행합니다 detach(이로 인해 vnc 서버가 혼동될 수 있으며 shutdown대신 호출하는 close것이 더 안전할 수 있습니다 ).

답변2

~에 따르면이 기사다음 명령은 "VNC 명령줄"을 포함하는 프로세스에 대한 연결을 표시합니다.

# sudo netstat -p | grep <name of VNC command-line>

고쳐 쓰다

netstat명령은 다음과 같이 실행되어야 합니다.root

답변3

vnc 서버가 Xvnc라고 가정하고 다음 줄을 시도해 보십시오.

lsof -Pni | grep Xvnc | grep -v LISTEN

그러면 활성 연결이 나열되고 프로세스 PID와 IP 주소가 표시됩니다.

답변4

내 vnc 서버가 어떤 포트를 수신하고 있는지 알아내기 위해 비슷한 명령을 찾고 있었는데 이것이 내가 생각해낸 것입니다.

ss -a -t '( dport >= :5900 & dport <= :5999 | sport >= :5900 & sport <= :5999 )'

다른 답변/댓글에서 필터 구문 및 소스 링크에 대한 자세한 설명을 참조하세요.여기.

관련 정보