要在 Windows 系统中通过 VNC 远程连接到 CentOS 或 Ubuntu 服务器,可以按照以下步骤来配置和使用 VNC 进行远程桌面访问
创始人
2024-09-25 05:24:12
0

要在 Windows 系统中通过 VNC 远程连接到 CentOS 或 Ubuntu 服务器,可以按照以下步骤来配置和使用 VNC 进行远程桌面访问。

在 CentOS 或 Ubuntu 服务器上配置 VNC 服务

步骤 1:安装 VNC 服务器和桌面环境

对于 CentOS:

  1. 安装桌面环境(GNOME 或其他):
    sudo yum groupinstall "Server with GUI" 
  2. 安装 VNC 服务器:
    sudo yum install tigervnc-server 

对于 Ubuntu:

  1. 安装桌面环境(如果没有安装):
    sudo apt update sudo apt install ubuntu-desktop 
  2. 安装 VNC 服务器:
    sudo apt install tigervnc-standalone-server 
步骤 2:设置 VNC 密码

运行以下命令来设置 VNC 密码:

vncpasswd 

它会要求输入并确认密码。

步骤 3:配置 VNC 服务
  1. 编辑 VNC 服务器配置文件:

    sudo nano /etc/systemd/system/vncserver@:1.service 
  2. 在文件中添加以下内容:

[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 运行网络服务。

  1. 保存并退出 (Ctrl+X,然后按 Y 保存)。

  2. 设置 VNC 服务器为开机自启:

    sudo systemctl daemon-reload sudo systemctl enable vncserver@:1.service 
  3. 启动 VNC 服务:

    sudo systemctl start vncserver@:1.service 
步骤 4:开启防火墙端口

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

步骤 1:修改 VNC 服务配置文件

  1. 打开或创建 VNC 服务的配置文件。例如,如果使用显示编号 2(对应端口 5902),可以修改如下配置:

    对于 CentOS:

    sudo nano /etc/systemd/system/vncserver@:2.service 

    对于 Ubuntu:

    sudo nano ~/.vnc/xstartup 
  2. 将以下内容添加或修改(此示例使用 :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 端口。

  3. 保存并退出编辑器 (Ctrl+X,然后按 Y 保存)。

步骤 2:重新加载 systemd 配置并启动 VNC

  1. 重新加载 systemd 配置:

    sudo systemctl daemon-reload 
  2. 启动新的 VNC 服务(在显示编号 2 上):

    sudo systemctl start vncserver@:2.service 
  3. 如果你希望 VNC 在启动时自动运行,可以启用服务:

    sudo systemctl enable vncserver@:2.service 

步骤 3:开放新端口

如果你修改了显示编号并相应地改变了端口号(例如,显示编号 2,使用端口 5902),需要确保防火墙允许新的端口。

对于 CentOS:

sudo firewall-cmd --permanent --zone=public --add-port=5902/tcp sudo firewall-cmd --reload 

对于 Ubuntu:

sudo ufw allow 5902/tcp 

步骤 4:使用新的端口进行连接

  1. 在 VNC Viewer 中输入新端口号。例如,如果你设置了显示编号 2,则在 VNC Viewer 中输入 IP地址:5902 进行连接。
  2. 输入 VNC 密码,成功连接到新的 VNC 会话。

更改端口号注意事项

  • 你可以使用任意显示编号(从 1 到 n)来生成对应的 VNC 端口,端口号等于 5900 + 显示编号
  • 确保新的端口没有被其他应用占用。
  • 通过防火墙允许访问你配置的端口。

在 Windows 上使用 VNC 客户端进行连接

步骤 1:下载和安装 VNC Viewer
  1. 下载 VNC Viewer 适用于 Windows 的客户端。
  2. 安装并打开 VNC Viewer。
步骤 2:连接到服务器
  1. 在 VNC Viewer 的地址栏中输入 IP地址:5901,例如 192.168.1.100:5901
  2. 点击 Connect,它会提示你输入 VNC 密码(之前在服务器上设置的密码)。
  3. 成功连接后,你应该能够看到远程服务器的桌面。

其他注意事项

  • 确保防火墙和网络允许 VNC 的 5901 端口通过。
  • 如果需要通过公网访问,建议通过 SSH 隧道或 VPN 增强安全性,因为 VNC 本身的安全性较低。

这样就可以从 Windows 通过 VNC 远程连接到 CentOS 或 Ubuntu 服务器上的桌面环境了!

相关内容

热门资讯

成了朋友的成怎么写 成了朋友的“成”在这里是动词,表示达到某种状态或结果。在简体中文中,写作“成”。我们经过长时间的相处...
显宏这个名字怎么样 显宏这个名字寓意深远,"显"意味着显赫、显著,"宏"则代表宏大、宏伟。整体给人一种气度不凡、志向远大...
print 输出语句 目录基本用法输出多个值结束符分隔符格式化输出1. 使用 f-string(格式化字符串...
非遗小知识在幕后操纵木偶进行表... 古代在幕后操纵木偶进行表演的木偶戏又称为“悬丝傀儡”或“线偶”。探秘传统艺术——木偶戏的古代称谓单元...
菜鸡云游戏怎么发动态-菜机ap... 在菜鸡云游戏APP中,通常可以在个人中心或者动态/社区页面找到发布动态的选项。点击相应的按钮,编辑内...
cad无法进一步缩小怎么解决(... 在CAD中,如果无法进一步缩小,可能是因为已经达到了最小比例。您可以尝试使用“缩放”命令(ZOOM)...
麒麟710相当于骁龙多少? 麒麟710是华为的中端芯片,而骁龙660是高通的中端芯片。在性能上,麒麟710与骁龙660相当。但具...
可以打电话的平板有哪些(目前值... 目前值得入手的可以打电话的平板电脑有:华为MatePad Pro、三星Galaxy Tab S7/S...
从零开始实现大语言模型(七):... 1. 前言前文所述神经网络模块CausalAttention也被称为单头注意力模块(single-h...
python学习笔记——字符串 一、创建字符串        1.我们可以使用引号( ' 或 " )来创建字符串。创建字符串很简单&...