连接 Xfce 4 远程桌面

  1. 下载 Xfce 4 桌面环境:

    sudo apt install -y xfce4 xfce4-goodies

    这里会提示你设置显示管理器,我们设置 gdm3 就好。

  2. 安装 TightVNC 服务器

    sudo apt install -y tightvncserver
  3. 接下来,运行 vncserver 命令设置 VNC 访问密码,创建初始配置文件,并启动 VNC 服务器实例:

    vncserver

    系统将提示你设置密码,这里需要填入一个长度小于 8 位的密码,多余的位数会被截去。之后你要再输入一遍相同的密码以确认密码。接下来系统会提示你是否要设置提供仅查看功能的密码,一般我们不需要这个功能,所以这里填 n

    启动 VNC 服务器时注意命令的输出提示。如果提示像下面这样,表示 1 号 VNC 服务器实例已被占用,创建了 2 号 VNC 服务器实例:

    Warning: inspiron-3468:1 is taken because of /tmp/.X1-lock
    Remove this file if there is no X server inspiron-3468:1 New 'X' desktop is inspiron-3468:2 Starting applications specified in /home/xiao/.vnc/xstartup
    Log file is /home/xiao/.vnc/inspiron-3468:2.log
  4. 此时我们已经设置好了密码。关闭 VNC 服务器实例:

    vncserver -kill :2  # 刚刚创建了几号实例就关闭几号实例
  5. 接下来我们要修改 xstartup 文件。~/.vnc/xstartup 文件用于配置通过 VNC 连接启动的远程桌面环境或窗口管理器,在 VNC 服务器启动会话时被执行。

    mv ~/.vnc/xstartup{,.bak}  # 先备份原文件
    vim ~/.vnc/xstartup # 创建新文件

    填入以下配置:

    #!/bin/bash
    [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources # 加载用户的 .Xresources 配置文件到 X 资源数据库中
    startxfce4 & # 启动 XFCE 桌面环境(后台执行)
  6. 为文件添加执行权限:

    chmod 755 ~/.vnc/xstartup
  7. 启动 VNC 服务器实例:

    vncserver -localhost

    由于 VNC 不具有加密功能,因此在公网上直接和 VNC 服务器通信并不安全。我们接下来将建立一个 SSH 隧道,通过隧道我们和 VNC 服务器连接。这种策略将为 VNC 增加一层额外的安全性,因为唯一能够访问它的用户是那些已经具有 SSH 访问权限的用户。

  8. 建立 SSH 隧道

    ssh USER@HOST -L 5901:localhost:5901 -CNf  # 注意改端口号,端口号应为 5900 + 实例号
    • -L 59000:localhost:5901: -L 选项指定本地计算机端口 5901 被转发到目标服务器的 localhost:5901
    • -C:此标志启用压缩,有助于减少资源消耗并加快速度。
    • -N: 此选项告诉 SSH 你不希望执行任何远程命令。当您只想转发端口时,此设置很有用。
    • -f: 此选项表示将 SSH 连接放到后台。避免长时间不用 SSH 连接时终端失去响应。
  9. 使用 VNC 客户端进行连接

    如果你使用 macOS,可以使用系统自带的屏幕共享应用来连接:打开 Spotlight,搜索并打开 Sharing.app。之后新建一个连接,连接地址填写 vnc://localhost:5901(注意改端口号为实际端口号)

    如果一切正常,你就能看到 Xfce 的远程桌面了。

设置开机自启

  1. 创建 systemd 服务文件:

    sudo vim /etc/systemd/system/vncserver@.service

    在名称末尾的 @ 符号将允许我们传入一个参数,你可以在服务配置中使用。你将使用此参数来指定在管理服务时要使用的 VNC 显示端口。

    将以下行添加到文件中。确保更改 UserGroupWorkingDirectory 的值,并将 PIDFILE 值中的用户名更改你的用户名:

    [Unit]
    Description=Start TightVNC server at startup
    After=syslog.target network.target [Service]
    Type=forking
    User=<USER>
    Group=<GROUP>
    WorkingDirectory=/home/<USER> PIDFile=/home/<USER>/.vnc/%H:%i.pid
    ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
    ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
    ExecStop=/usr/bin/vncserver -kill :%i [Install]
    WantedBy=multi-user.target
  2. 重启 systemd 守护进程

    sudo systemctl daemon-reload
  3. 启用服务文件

    sudo systemctl enable vncserver@1.service

    这里的 1 表示服务应该出现在哪个显示编号上,这里为 :1

    现在,每次启动系统时,都会自动启动一个编号为 :1 的 VNC 服务器实例。

  4. 建立 SSH 隧道

    在每次连接 VNC 服务之前,你都需要确保已经建立了 SSH 隧道:

    ssh USER@HOST -L 59000:localhost:5901 -CNf

Troubleshooting

灰屏问题

  1. 检查 ~/.vnc/xstartup 配置文件的内容是否正确,以及文件是否有执行权限。

  2. 使用 ps -a 命令检查 gnome-session-b 进程是否在运行:

    $ ps -a | grep gnome-session-b
    9521 tty2 00:00:00 gnome-session-b

    发现 gnome-session-b 进程在运行,此时无法启动 Xfce 桌面环境。注意我们必须通过 SSH 远程连接到服务器上进行接下来的操作,不能在主机的桌面环境下操作。

    关闭 gnome-session-b:

    kill $(ps -a | grep gnome-session-b | awk '{print $1}')

    然后重启 VNC 服务器:

    vncserver -kill :2  # 记得替换为你实际的实例号
    vncserver

    此时再次尝试连接,应该就能看到桌面了。

参考:How to Install and Configure VNC on Ubuntu 22.04 | DigitalOcean

参见:Ubuntu 设置远程桌面(RDP)

个人认为 RDP 更好用一点

Ubuntu 设置远程桌面(VNC)的更多相关文章

  1. 如何在 Linux 上使用 x2go 设置远程桌面

    https://linux.cn/article-5708-1.html 由于一切都迁移到了云上,作为提高职员生产力的一种方式,虚拟远程桌面在工业中越来越流行.尤其对于那些需要在多个地方和设备之间不停 ...

  2. vncserver和Ubuntu Xfce4远程桌面环境的配置,解决不显示图形界面

    vncserver和Ubuntu Xfce4远程桌面环境的配置 参考的http://blog.163.com/thinki_cao/blog/static/8394487520130301453180 ...

  3. Windows Server 2008设置远程桌面连接的最大数量

    远程桌面连接的默认数量是2,当有多个用户需要同时远程桌面连接时很不方便,可以设置远程桌面连接的最大数量. 1. 运行gpedit.msc: 2. 选择计算机配置-->管理模板-->Wind ...

  4. windows防火墙实验-命令行设置远程桌面连接以及禁止浏览器上网

    windows防火墙实验-设置远程桌面连接以及禁止浏览器上网 实验环境: 1.win2008远程桌面服务 2.win7-1 10.10.10.136 3.win7-2 10.10.10.153 实验步 ...

  5. Ubuntu设置显示桌面快捷键

    Ubuntu设置显示桌面快捷键 直接在系统设置中没有效果, 学习了:http://www.cnblogs.com/pluse/p/5286585.html 需要进行安装compizconfig,然后在 ...

  6. Centos7远程桌面 vnc/vnc-server的设置

    Centos7与Centos6.x有了很大的不同. 为了给一台服务器装上远程桌面,走了不少弯路.写这篇博文,纯粹为了记录,以后如果遇到相同问题,可以追溯. 1.假定你的系统没有安装vnc的任何软件,那 ...

  7. 如何添加并设置远程桌面(RD)授权服务器

    上一篇日志中介绍了如何将现成的远程桌面授权服务器添加到对应的远程桌面回话主机中. 本篇日志将引导您如何添加配置相应的远程桌面授权服务器,这样就可以根据所购买的授权类型和授权级别添加需要甚至" ...

  8. win10如和设置远程桌面

    最近几天一直在搞远程桌面问题,电脑一直连不上远程,今天终于出来了. 前提前提  条件,要电脑允许Administrator用户,先把电脑切换到那个用户,然后进行下面操作. 1.在桌面,我的电脑图标,鼠 ...

  9. ubuntu 的远程桌面

    好久没有弄ubuntu 丢人的啊,先安装了个服务器版,发现好多命令都忘记了,命令行下根本搞不懂 又安装了个桌面版...但是服务器远程么,putty还是搞的头大,又乱码,有各种文件传输. 还好记得以前用 ...

  10. 3、树莓派的配置:改静态IP、连接ssh、安装中文字体、安装谷歌输入法、增加USB电流、修改触摸屏分辨率、扩展sd卡空间、修复vi和vim乱码问题、安装配置远程桌面vnc

    本博文仅作本人操作过程的记录,留作备忘.自强不息 QQ1222698 1.连接上HDMI线,插上触摸屏,插上键盘,鼠标,网线,启动.系统正常启动,但是一直闪烁,不停的黑屏,是由于触摸屏的usb口供电不 ...

随机推荐

  1. ROS让机器人开发更便捷,基于RK3568J+Debian系统发布!

    ROS系统是什么 ROS(Robot Operating System)是一个适用于机器人的开源的元操作系统.它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以 ...

  2. Xilinx XCZU7EV评估板规格书(四核ARM Cortex-A53 + 双核ARM Cortex-R5 + FPGA,主频1.5GHz)

    1 评估板简介 创龙科技TLZU-EVM是一款基于Xilinx UltraScale+ MPSoC系列XCZU7EV高性能处理器设计的高端异构多核SoC评估板,处理器集成PS端(四核ARM Corte ...

  3. 通过Docker搭建Debezium同步MySQL的数据变化

    Debezium是红帽开发的一款CDC产品,和阿里的Canel类似,都是同步binlog,不过强大了一点点.为了不再麻烦,下面称之为dbz. 达拉崩吧斑得贝迪卜多比鲁翁... dbz的搭建依赖很多中间 ...

  4. windows server + iis 部署若伊前端vue项目

    一.背景说明 工作原因,一直使用若伊前后端分离版框架进行二次开发.客户的服务器多数为windows server系统,少部分为linux系统.过去一直是使用nginx进行前端的部署,nginx的代理功 ...

  5. documen.write 和 innerHTML 的区别?

    document.write只能重绘整个页面,innerHTML可以重绘页面的一部分. 1. ducument.write使用举例html文档: <!doctype html> <h ...

  6. 算法金 | 最难的来了:超参数网格搜索、贝叶斯优化、遗传算法、模型特异化、Hyperopt、Optuna、多目标优化、异步并行优化

    ​ 大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 今日 215/10000 为模型找到最好的超参数是机器学习实践中最困难的部分之一 ...

  7. ABC352

    A link \(x\)停不到,\(y\)能停到. 要先判断是从前往后还是从后往前. 点击查看代码 #include<bits/stdc++.h> using namespace std; ...

  8. docker基础学习总结

    docker是一个快速安装部署的容器,快捷简单.可以隔离是他的优点 docker也拥有仓库:dockerhub,存储和管理镜像的平台 我们利用docker安装时就是在里面下载镜像,镜像不仅包含应用本身 ...

  9. 2023/4/19 SCRUM个人博客

    1.我昨天的任务 初步了解了pandas库,对series和dataframe有了初步的学习使用 2.遇到了什么困难 对PYQT5的概念没有定义,准备进行学习 3.我今天的任务 学习了PYQT5的部分 ...

  10. EdgeOne安全专项实践:上传文件漏洞攻击详解与防范措施

    前言 今天,我们将深入探讨上传文件漏洞攻击,这部分内容是EdgeOne专项实践篇的一部分.在本章中,我们不会涉及文件漏洞的含义.原理或站点配置等基础教程,如果你对这些内容感兴趣,可以参考这篇文章:探索 ...