监控TigerVNC连接需从状态检查、日志分析、实时监控三个维度入手,以下是具体方法:
① 列出当前运行的VNC实例
使用vncserver -list命令可查看所有已启动的VNC服务器实例,包括显示编号(如:1)、绑定的显示设备(如display 0)及客户端IP和端口(如192.168.1.100:5901)。
示例输出:
:1 connected to display 0 192.168.1.100:5901
该命令能快速确认是否有活跃的VNC会话。
② 检查VNC服务状态(Systemd管理)
若TigerVNC通过Systemd配置为系统服务(默认路径为/etc/systemd/system/vncserver@.service),可使用以下命令查看指定实例的状态(将:1替换为实际显示编号):
sudo systemctl status vncserver@:1.service
输出中的active (running)表示服务正常运行,inactive (dead)则表示未启动。
③ 查看VNC进程状态
通过ps命令过滤Xtightvnc或tigervnc进程,确认VNC服务器进程是否在运行:
ps aux | grep -E 'Xtightvnc|tigervnc'
输出中会显示进程ID(PID)、运行用户及启动参数(如显示编号、分辨率)。
① 日志文件位置
TigerVNC的日志默认存储在用户家目录的.vnc子目录下,文件名格式为<主机名>:<显示编号>.log(如debian:1.log)。可通过以下命令查看日志文件路径:
ls ~/.vnc/
若日志路径被自定义,需检查~/.vnc/xstartup或/etc/systemd/system/vncserver@.service中的logfile配置项。
② 查看实时日志
使用tail命令实时跟踪日志输出,及时捕获连接事件(如登录、断开):
tail -f ~/.vnc/debian:1.log
当日志中出现Authentication failure时,表示有密码错误的连接尝试;出现New client connected时,表示有新客户端成功连接。
③ 使用journalctl查看系统日志
若日志未写入用户目录,可通过journalctl查看系统级VNC日志(需root权限):
sudo journalctl -u vncserver@:1.service
或查看所有VNC相关日志:
sudo journalctl | grep vnc
日志中会记录服务的启动、停止时间及连接状态变化。
① 监控当前连接客户端
通过netstat或ss命令查看VNC端口(默认5900+显示编号,如:1对应5901)的连接情况,确认当前活跃的客户端IP:
sudo netstat -tulnp | grep 5901
# 或
sudo ss -tulnp | grep 5901
输出中会显示客户端的IP地址和端口(如192.168.1.100:12345)。
② 使用日志分析工具统计连接
通过grep、awk等工具提取日志中的关键信息(如IP地址),统计访问频率或异常行为:
# 统计连接次数最多的IP
grep "New client connected" ~/.vnc/debian:1.log | awk '{print $10}' | sort | uniq -c | sort -nr
# 提取所有连接失败的记录
grep "Authentication failure" ~/.vnc/debian:1.log
这些命令可帮助快速识别潜在的暴力破解或异常连接。
通过以上方法,可全面监控Debian系统上TigerVNC的连接状态、分析日志排查问题,并实时掌握连接活动情况。