
現在、自分のコンピュータにいくつかのvnc接続または他のユーザーが接続されているかどうかを確認できますか? Wiresharkを介してのみ可能ですか? vncを介して接続している他のユーザーを殺す方法は?
答え1
Linuxでは、
ss sport = :5900
ポート 5900 に確立された現在の TCP 接続を通知します。
他のすべてと同様に、何十ものVNCサーバーを使用しているので、どのVNCサーバーを使用しているかを知る必要があります。
VNC サーバ命令の名前を知っていれば、
lsof -ai tcp -c that-command
(VNCサーバーを実行しているユーザーまたはルートとして)VNCサーバーが処理する現在確立されているTCP接続も通知されます(ポート5900にない場合)。
通常、TCP接続を閉じる方法は次のとおりです。
tcpkill
(パケット内dsniff
)接続を閉じるTCPパケットを偽造します。iptstate
(Linux)。ステートフルファイアウォールを使用している場合。 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 )'
その他の回答/コメントで、フィルタ構文とソースリンクの詳細な説明をご覧ください。ここ。