要在 Windows 系统中通过 VNC 远程连接到 CentOS 或 Ubuntu 服务器,可以按照以下步骤来配置和使用 VNC 进行远程桌面访问。
对于 CentOS:
sudo yum groupinstall "Server with GUI"
sudo yum install tigervnc-server
对于 Ubuntu:
sudo apt update sudo apt install ubuntu-desktop
sudo apt install tigervnc-standalone-server
运行以下命令来设置 VNC 密码:
vncpasswd
它会要求输入并确认密码。
编辑 VNC 服务器配置文件:
sudo nano /etc/systemd/system/vncserver@:1.service
在文件中添加以下内容:
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking User=root Group=root WorkingDirectory=/root ExecStart=/usr/bin/vncserver :1 PIDFile=/root/.vnc/%H%i.pid ExecStop=/usr/bin/vncserver -kill :1 [Install] WantedBy=multi-user.target
安全性问题:VNC 服务直接作为 root
运行会暴露整个系统于潜在的安全风险。如果 VNC 服务被入侵,攻击者将获得对整个系统的完全控制权限。
最小权限原则:最佳实践是只赋予进程它们所需的最低权限。通过使用非 root
用户来运行 VNC 服务,即使服务被入侵,潜在的风险也可以被限制在用户权限范围内。
更安全的做法是使用普通用户运行,并根据需要配置 sudo
权限或 polkit
策略来允许用户执行需要提升权限的操作。尽量避免长期以 root
运行网络服务。
保存并退出 (Ctrl+X
,然后按 Y
保存)。
设置 VNC 服务器为开机自启:
sudo systemctl daemon-reload sudo systemctl enable vncserver@:1.service
启动 VNC 服务:
sudo systemctl start vncserver@:1.service
VNC 默认使用 5901
端口,你可以通过以下命令开放该端口:
对于 CentOS:
sudo firewall-cmd --permanent --zone=public --add-port=5901/tcp sudo firewall-cmd --reload
对于 Ubuntu:
sudo ufw allow 5901/tcp
修改 VNC 服务器的默认端口(通常是 5901),可以按照以下步骤进行配置。默认情况下,VNC 服务器的端口是 5900 + 显示编号(display number)
,即如果显示编号为 1
,那么使用的端口是 5901
。
打开或创建 VNC 服务的配置文件。例如,如果使用显示编号 2
(对应端口 5902),可以修改如下配置:
对于 CentOS:
sudo nano /etc/systemd/system/vncserver@:2.service
对于 Ubuntu:
sudo nano ~/.vnc/xstartup
将以下内容添加或修改(此示例使用 :2
显示编号):
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking User= Group= WorkingDirectory=/home/ ExecStart=/usr/bin/vncserver :2 PIDFile=/home//.vnc/%H%i.pid ExecStop=/usr/bin/vncserver -kill :2 [Install] WantedBy=multi-user.target
这里的 :2
是显示编号,VNC 服务器将会监听 5902
端口。
保存并退出编辑器 (Ctrl+X
,然后按 Y
保存)。
重新加载 systemd 配置:
sudo systemctl daemon-reload
启动新的 VNC 服务(在显示编号 2 上):
sudo systemctl start vncserver@:2.service
如果你希望 VNC 在启动时自动运行,可以启用服务:
sudo systemctl enable vncserver@:2.service
如果你修改了显示编号并相应地改变了端口号(例如,显示编号 2
,使用端口 5902
),需要确保防火墙允许新的端口。
对于 CentOS:
sudo firewall-cmd --permanent --zone=public --add-port=5902/tcp sudo firewall-cmd --reload
对于 Ubuntu:
sudo ufw allow 5902/tcp
2
,则在 VNC Viewer 中输入 IP地址:5902
进行连接。5900 + 显示编号
。IP地址:5901
,例如 192.168.1.100:5901
。这样就可以从 Windows 通过 VNC 远程连接到 CentOS 或 Ubuntu 服务器上的桌面环境了!