总结概览
| VNC 服务器软件 | 推荐重启命令 | 停止命令 | 启动命令 |
|---|---|---|---|
| TigerVNC | sudo systemctl restart vncserver@:1.service |
sudo systemctl stop vncserver@:1.service |
sudo systemctl start vncserver@:1.service |
| TightVNC / RealVNC | sudo vncserver -kill :1 sudo vncserver :1 |
sudo vncserver -kill :1 |
sudo vncserver :1 |
| 使用 systemd (现代 Linux) | sudo systemctl restart vncserver@:1.service |
sudo systemctl stop vncserver@:1.service |
sudo systemctl start vncserver@:1.service |
详细说明
使用 systemd 管理的 VNC 服务器 (推荐,适用于现代 Linux 发行版)
大多数现代 Linux 系统(如 Ubuntu 16.04+, CentOS 7+, Debian 8+)使用 systemd 来管理服务,如果您的 VNC 服务器是作为系统服务安装的(通过 vncserver.service 或 vncserver@:1.service),那么使用 systemctl 命令是最标准、最可靠的方式。

命令格式:
sudo systemctl restart vncserver@:<display_number>.service
示例:
假设您的 VNC 服务器在 1 显示端口上运行(这是最常见的配置),重启命令为:
sudo systemctl restart vncserver@:1.service
其他常用相关命令:
- 查看服务状态:
sudo systemctl status vncserver@:1.service
- 停止 VNC 服务:
sudo systemctl stop vncserver@:1.service
- 启动 VNC 服务:
sudo systemctl start vncserver@:1.service
- 设置开机自启:
sudo systemctl enable vncserver@:1.service
- 禁止开机自启:
sudo systemctl disable vncserver@:1.service
如何确认您的 VNC 服务名称? 您可以运行以下命令来查看所有与 "vnc" 相关的服务:

systemctl list-units --type=service | grep vnc
输出可能类似 vncserver@:1.service loaded active running...,这确认了服务的确切名称。
使用独立脚本的 VNC 服务器 (较旧的系统或手动配置)
在一些较旧的系统或手动配置中,VNC 服务器可能没有作为 systemd 服务运行,而是通过一个启动脚本(/etc/init.d/vncserver)来管理。
命令格式:
sudo service <service_name> restart
示例:
如果您的服务名为 vncserver,那么重启命令为:

sudo service vncserver restart
其他常用相关命令:
- 查看服务状态:
sudo service vncserver status
- 停止 VNC 服务:
sudo service vncserver stop
- 启动 VNC 服务:
sudo service vncserver start
手动杀死并重启进程 (通用方法)
如果您不确定服务是如何配置的,或者 systemctl / service 命令无效,可以采用手动方式,这种方法直接操作 VNC 服务器的进程。
步骤:
-
找到并杀死 VNC 进程。 VNC 进程通常以
Xvnc或vncserver开头,找到您的 VNC 服务器正在使用的显示号(1,2等)。# 使用 ps 命令查找所有 VNC 相关进程 ps aux | grep -i vnc
您会看到类似下面的输出:
# 显示用户名和进程ID user1 1234 ? Sl 10:30 15:23 /usr/bin/Xvnc :1 -geometry 1024x768 -depth 24 user1 5678 ? Ss 10:31 0:01 /bin/sh /home/user1/.vnc/xstartup注意
Xvnc进程的 ID(1234)和它使用的显示号(1)。 -
使用
vncserver命令杀死进程。 这是更推荐的方式,因为它能正确地清理相关文件。# 格式: sudo vncserver -kill :<display_number> sudo vncserver -kill :1
如果上面的命令提示权限问题,可以尝试用拥有该进程的用户来执行,或者使用
sudo。 如果不行,再使用kill命令:# 格式: sudo kill <process_id> sudo kill 1234
-
重新启动 VNC 服务器。 杀死进程后,重新启动它。
# 格式: sudo vncserver :<display_number> sudo vncserver :1
如果您是以特定用户(如
user1)身份配置的 VNC,通常需要切换到该用户或使用sudo -u user1来执行。
如何判断使用哪种方法?
- 首选
systemctl:如果您使用的是 Ubuntu、CentOS 7/8、Debian 8+ 等现代系统,VNC 是通过apt或yum/dnf安装的,那么它极大概率是作为systemd服务存在的,请使用 方法 1。 - 尝试
service:systemctl命令提示 "unit not found",可以尝试service命令,如果成功,说明您在使用 方法 2。 - 最后选择手动方式:如果以上两者都无效,或者您是手动配置的 VNC,那么请使用 方法 3 作为最后的手段。
重要提示
- 显示号:请务必将命令中的
1替换为您自己 VNC 服务器实际使用的显示号,您可以通过ps aux | grep vnc或netstat -tuln | grep 590来查看。 - 权限:执行这些命令通常需要
sudo权限。 - 配置文件:重启后,VNC 连接出现问题,请检查 VNC 的配置文件(通常是
/etc/vnc.conf或用户主目录下的~/.vnc/xstartup)是否正确。
