Ubuntu 安装 VNC 远程桌面完整指南(搭配 XFCE 桌面)

一、准备工作

  • 一台运行 Ubuntu 的服务器(可以是云服务器或本地虚拟机),拥有 root 权限或 sudo 用户。
  • 服务器已安装轻量级桌面环境(如 XFCE),若未安装,请先执行以下命令:bash复制下载sudo apt update sudo apt install xfce4 xfce4-goodies -y
  • 本地电脑(Windows / macOS / Linux)用于远程连接。

二、安装 VNC 服务器

2.1 安装 TightVNC 服务器

bash

复制

下载

sudo apt install tightvncserver -y

tightvncserver 是一个轻量且稳定的 VNC 服务器软件。


三、首次启动并设置 VNC 密码

3.1 启动 VNC 服务器(不要用 sudo)

bash

复制

下载

vncserver

首次运行会提示:

  • 设置 6~8 位密码(用于客户端连接),并确认一次。
  • 是否设置仅查看(view-only)密码?输入 n 跳过(除非你需要只读权限)。

成功启动后,终端会显示类似:

text

复制

下载

New 'X' desktop is your-hostname:1 Starting applications specified in /home/your-user/.vnc/xstartup Log file is /home/your-user/.vnc/your-hostname:1.log

其中 :1 表示第一个 VNC 会话,对应的端口为 5901(端口号 = 5900 + 显示编号)。

3.2 停止默认会话(以便修改配置文件)

初次启动会自动生成配置文件 ~/.vnc/xstartup,我们需要修改它以启动 XFCE 桌面。

bash

复制

下载

vncserver -kill :1

输出应为:Killing Xtightvnc process ID xxxx


四、配置 VNC 启动桌面(修改 xstartup)

4.1 编辑 ~/.vnc/xstartup 文件

bash

复制

下载

nano ~/.vnc/xstartup

初始内容可能是类似下面的默认脚本:

bash

复制

下载

#!/bin/sh xrdb $HOME/.Xresources xsetroot -solid grey #x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & #x-window-manager & # Fix to make GNOME work export XKL_XMODMAP_DISABLE=1 /etc/X11/Xsession

将其替换为以下内容:

bash

复制

下载

#!/bin/bash xrdb $HOME/.Xresources startxfce4 &

保存并退出(Ctrl+O,回车,Ctrl+X)。

4.2 赋予执行权限

bash

复制

下载

chmod +x ~/.vnc/xstartup


五(重要)、防火墙与云平台安全组配置

5.1 Ubuntu 防火墙(ufw)放行端口

bash

复制

下载

sudo ufw allow 5901/tcp sudo ufw reload

5.2 云平台安全组设置(至关重要!)

登录你的云服务商控制台(阿里云、腾讯云、华为云等),找到实例对应的安全组,添加入方向规则

  • 优先级:1(默认)
  • 策略:允许
  • 协议类型:TCP
  • 端口范围:5901
  • 源地址0.0.0.0/0(表示允许所有 IP 访问,用于测试;生产环境建议限制为你的本地公网 IP,如 123.123.123.123/32
  • 描述:VNC(可选)
⚠️ 易错点:源地址务必选择 CIDR 并填写 0.0.0.0/0,而不是“安全组”或“前缀列表”,否则仅允许同安全组内机器访问,导致外部连接超时。

六、重新启动 VNC 会话

bash

复制

下载

vncserver -geometry 1280x720 -depth 24

参数说明:

  • -geometry:指定分辨率(可调整为 1920x1080 等)。
  • -depth:颜色深度(24 位真彩色)。

启动后,端口 5901 应处于监听状态,可用以下命令确认:

bash

复制

下载

sudo ss -lntp | grep 5901

输出应包含 LISTEN 0 128 0.0.0.0:5901


七、从本地电脑连接

7.1 下载 VNC Viewer

7.2 安装并运行 VNC Viewer

  • 安装后打开,无需登录或注册,直接关闭弹出的登录窗口。
  • 在顶部地址栏输入:你的服务器公网IP:5901(例如 123.123.123.123:5901),回车。
  • 输入你在步骤 3.1 设置的 VNC 密码,即可进入 XFCE 桌面。

八、常见问题及解决方法

8.1 连接超时(Timed out waiting for a response)

现象:VNC Viewer 提示 “Timed out waiting for a response from the computer”。

排查步骤

  1. 检查 VNC 服务是否运行bash复制下载ps aux | grep vnc若无进程,重新启动:vncserver -geometry 1280x720 -depth 24 :1
  2. 检查端口监听bash复制下载sudo ss -lntp | grep 5901若没有输出,说明 VNC 未绑定端口,需检查服务启动情况。
  3. 检查云平台安全组
    确认入方向规则已正确添加,源地址为 0.0.0.0/0(或你的本地 IP),协议 TCP,端口 5901。
  4. 检查 Ubuntu 防火墙bash复制下载sudo ufw status若防火墙开启,确保 5901/tcp 已放行。
  5. 网络连通性测试
    在本地电脑打开命令提示符(CMD),执行:cmd复制下载telnet 你的服务器公网IP 5901
    • 如果卡住或进入黑屏:网络通,问题可能出在 VNC 服务本身。
    • 如果提示连接失败:网络不通,重点检查安全组/防火墙。

8.2 连接成功但屏幕灰色或只有一个终端

现象:输入密码后进入桌面,但只有灰色背景或一个终端窗口。

原因~/.vnc/xstartup 文件未正确配置或未赋予执行权限。

解决

  • 确认 ~/.vnc/xstartup 内容以 startxfce4 & 结尾。
  • 重新赋予权限:chmod +x ~/.vnc/xstartup
  • 杀掉会话并重启:vncserver -kill :1 然后 vncserver -geometry 1280x720 -depth 24 :1

8.3 忘记 VNC 密码

解决:直接运行 vncpasswd,按提示设置新密码即可覆盖原密码。

8.4 如何让 VNC 服务开机自动启动

可以通过 crontab 实现(以当前用户身份):

bash

复制

下载

crontab -e

添加一行:

text

复制

下载

@reboot /usr/bin/vncserver -geometry 1280x720 -depth 24 :1


九、总结

至此,你已成功在 Ubuntu 服务器上通过 VNC 搭建了远程桌面。

Read more

基于神经网络的学生学习情况分析系统-hadoop+django

基于神经网络的学生学习情况分析系统-hadoop+django

1. 开发语言:Python 2. 框架:django 3. Python版本:python3.8 4. 数据库:mysql 5.7 5. 数据库工具:Navicat12 6. 开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 学习数据 期末成绩预测 看板展示 摘要 系统基于B/S开发模式,采用Python语言进行开发,借助Django框架搭建系统架构,保证了系统的稳定性和可扩展性。同时,运用长短期记忆网络(LSTM)算法,对学生学习数据进行深入分析和挖掘。系统功能多样,管理员能够对用户信息进行全面管理,包括用户的注册、登录和权限设置等。可以对学生的学习数据进行收集、整理和分析,涵盖课堂表现、作业完成情况等。并且能够通过LSTM模型对学生的期末成绩进行科学预测,为教学决策提供有力支持。该系统的应用,

By Ne0inhk
Spring Boot 视图层与模板引擎

Spring Boot 视图层与模板引擎

Spring Boot 视图层与模板引擎 19.1 学习目标与重点提示 学习目标:掌握Spring Boot视图层与模板引擎的核心概念与使用方法,包括Spring Boot视图层的基本方法、Spring Boot与Thymeleaf的集成、Spring Boot与Freemarker的集成、Spring Boot与Velocity的集成、Spring Boot的静态资源管理、Spring Boot的实际应用场景,学会在实际开发中处理视图层问题。 重点:Spring Boot视图层的基本方法、Spring Boot与Thymeleaf的集成、Spring Boot与Freemarker的集成、Spring Boot与Velocity的集成、Spring Boot的静态资源管理、Spring Boot的实际应用场景。 19.2 Spring Boot视图层概述 Spring Boot视图层是指使用Spring Boot进行Web应用开发的方法。 19.2.1 视图层的定义 定义:视图层是指使用Spring Boot进行Web应用开发的方法。 作用:

By Ne0inhk
爬虫中Cookies模拟浏览器登录技术详解

爬虫中Cookies模拟浏览器登录技术详解

🌟 Hello,我是蒋星熠Jaxonic! 🌈 在浩瀚无垠的技术宇宙中,我是一名执着的星际旅人,用代码绘制探索的轨迹。 🚀 每一个算法都是我点燃的推进器,每一行代码都是我航行的星图。 🔭 每一次性能优化都是我的天文望远镜,每一次架构设计都是我的引力弹弓。 🎻 在数字世界的协奏曲中,我既是作曲家也是首席乐手。让我们携手,在二进制星河中谱写属于极客的壮丽诗篇! 摘要 作为一名在网络爬虫领域深耕多年的技术人,我无数次与网站的登录机制和反爬虫系统交锋过。记得在2019年做一个电商数据分析项目时,我曾经连续三天三夜与网站的验证码和会话过期机制斗智斗勇,最终通过Cookies持久化技术成功突破了限制。这段经历让我深刻认识到,掌握Cookies模拟浏览器登录技术对于构建稳定、高效的爬虫系统是多么关键。 在当今的网络环境中,大多数有价值的数据都被网站的登录墙保护着。而直接使用账号密码进行爬虫登录往往会面临诸多挑战:验证码、风控、IP限制等。这时候,Cookies模拟登录技术就成为了突破这些限制的关键武器。通过分析浏览器登录流程,提取和复用有效的Cookies,我们可以实现无需重复输入

By Ne0inhk
Flutter for OpenHarmony:Flutter 三方库 bloc_lint — 静态层给架构建立强硬代码纪律法规(架构治理引擎)

Flutter for OpenHarmony:Flutter 三方库 bloc_lint — 静态层给架构建立强硬代码纪律法规(架构治理引擎)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net。 前言 在鸿蒙(OpenHarmony)商业应用构建体系中,BLoC (Business Logic Component) 作为极其受欢迎且久经沙场验证的主流状态管理选项之一,其能够很好的区隔 UI 层与深层次复杂多变业务层。但即便其设计优秀且完善,部分因为初学者对“事件源如何定义”、“状态应当如何闭环抛出和重建”理解错位而在团队项目中引发了诸如事件滥用乱扔的状态泄漏等大型坑底。 bloc_lint 作为一套完全专门为 flutter_bloc 体系打造的规则分析插件,在底层完全接入你最信任的老大哥 IDE 和 CLI 验证中心。它通过对你的源码状态类代码进行扫描,从而逼你建立符合该架构设计真正思想哲学初衷的写法。在想要于庞大极其需要高度共识的企业级鸿蒙项目中推动 BLoC 范式时,它是你的架构卫士。 一、原理展示 / 概念介绍 1.1 基础概念 本机制就像是在 Dart 分析服务器里面插入了由 BLoC 作者参与或者基于经验而设定好的硬性代码规范探针体

By Ne0inhk