在 ubuntu 22.04 上配置界面服务器 xrdp
文章目录
图形界面解决方案VNCXRDP
XRDP 实例安装和配置使用
XRDP 使用原理谁更快 : X11转发 > XRDP > VNC
图形界面解决方案
1. VNC
2. XRDP
3. X11 + ssh : // https://blog..net/u011011827/article/details/131065690
VNC
外部开放端口 用的 是 5901-5910
桌面用的是 cat .vnc/xstartup 中写的桌面
XRDP
xrdp相关进程 A 外部开放端口是 3389
xrdp相关进程 B 内部开放端口是 3350
tcp6 0 0 :::3389 :::* LISTEN 3663305/xrdp
tcp6 0 0 ::1:3350 :::* LISTEN 3663295/xrdp-sesman
|-xrdp(3663305)---xrdp(3666729)
// 3666729 是新建立的会话,如果不停销毁会话,该PID会一直变化
//会话建立之后,使用 3664951 PID 对应的 图形界面,该PID不会随着会话的销毁而销毁
//每个用户 同一时刻 只能有一个会话.该会话对应 "3664951 PID 对应的 图形界面"
//新建立的会话会将之前的会话销毁
|-xrdp-sesman(3663295)---xrdp-sesman(3664951)-+-Xorg(3664953)-+-{Xorg}(3664956)
| | `-{Xorg}(3664961)
| |-gnome-session-b(3664952)-+-ssh-agent(3665023)
| | |-{gnome-session-b}(3665043)
| | |-{gnome-session-b}(3665045)
| | `-{gnome-session-b}(3665123)
| `-xrdp-chansrv(3664962)---{xrdp-chansrv}(3664963)
桌面用的 是 .xsession 中写的桌面
配置文件还包括
/etc/xrdp/xrdp.ini // xrdp配置,不需要改
/etc/xrdp/sesman.ini //会话配置,,不需要改
/etc/xrdp/startwm.sh //xrdp配置 中提到的脚本,,不需要改
XRDP 实例
安装和配置
安装 vnc 服务器 和 xrdp 服务器
sudo apt-get install xrdp
sudo service xrdp status // check 状态
配置 ~/.xsession
// ubuntu 默认桌面环境为 gnome
在图形界面下新建一个shell,键入 echo $XDG_CURRENT_DESKTOP
它会显示 GNOME
则我们需要在~/.xsession 中填入 gnome-session
该配置过后不用重启服务器
使用
在 windows 下 win + R ,打开运行窗口, 输入 mstsc
输入计算机IP 和 用户名,确认后.会提示输入密码.输入密码即可!
XRDP 使用原理
xrdp 是一种远程桌面协议,它允许用户通过网络连接到远程计算机并使用该计算机的桌面环境。以下是 xrdp 会话建立的过程:
客户端通过 RDP 协议连接到 xrdp 服务器的 3389 端口。
xrdp 服务器接收到连接请求并验证客户端的身份。
xrdp 服务器启动一个新的 X11 会话(或连接到现有的 X11 会话)。
xrdp 服务器为客户端创建一个虚拟 X11 显示器,并将客户端连接到该显示器。
xrdp 服务器启动一个桌面环境(例如 GNOME、XFCE 或 KDE)。
客户端通过 RDP 协议接收 xrdp 服务器发送的屏幕图像和输入事件,并将它们显示在本地计算机上。
在 xrdp 的配置文件中,您可以指定要使用的桌面环境、要监听的端口以及其他选项。
默认情况下,xrdp 使用的是 Xvnc 作为其默认的 X11 服务器,但也可以使用其他 X11 服务器,例如 Xorg。
与 VNC 类似,xrdp 也是一种远程桌面协议。
但是,它们之间有一些区别。
VNC 使用自己的协议来传输屏幕图像和输入事件,而 xrdp 使用 RDP 协议。
此外,xrdp 可以在 Windows 上使用自带的远程桌面客户端进行连接,而 VNC 需要使用第三方 VNC 客户端。
谁更快 : X11转发 > XRDP > VNC
但是我目前无法在 X11转发 下 获取一个完成的图形桌面!
$ sudo gnome-session
(process:3667498): WARNING : 23:35:38.592: Could not make bus activated clients aware of XDG_CURRENT_DESKTOP=GNOME environment variable: Failed to execute child process ?dbus-launch? (No such file or directory)
Terminated
在理论上,X11 转发、VNC 和 xrdp 都可以用作远程桌面服务器,但它们之间有些许不同:
X11 转发:X11 转发是将本地 X11 服务器上的应用程序窗口和 GUI 元素转发到远程计算机上的 X11 服务器上。这意味着您可以在本地计算机上运行应用程序,并在远程计算机上查看应用程序的 GUI。X11 转发使用 SSH 协议进行加密和身份验证,因此非常安全。但是,X11 转发的性能可能会受到网络延迟和带宽限制的影响。
VNC:VNC 是一种基于远程帧缓冲协议的远程桌面服务器。当您通过 VNC 协议连接到 VNC 服务器时,服务器会将屏幕图像和输入事件发送到客户端。VNC 服务器通常使用 5900 端口进行通信。VNC 可以在低带宽网络下工作,但由于其使用的是远程帧缓冲协议,因此其性能可能不如 X11 转发。
xrdp:xrdp 是一种基于 RDP 协议的远程桌面服务器。当您通过 RDP 协议连接到 xrdp 服务器时,xrdp 会在服务器上启动一个新的 X11 会话,并为您创建一个虚拟 X11 显示器。然后,xrdp 会将客户端连接到该显示器,并启动一个桌面环境(例如 GNOME、XFCE 或 KDE)。xrdp 使用 3389 端口进行通信,并且可以使用 SSL/TLS 进行加密和身份验证。
综上所述,从理论上讲,X11 转发是最安全、最快速的选项,但它需要在本地计算机上安装 X11 服务器。
VNC 是一种可靠的跨平台解决方案,但它的性能可能不如 X11 转发。
xrdp 则是一种基于 RDP 协议的远程桌面服务器,它可以提供与 Windows 远程桌面类似的体验,并且可以在大多数操作系统上使用。
从理论上来说,X11 转发比 xrdp 更快。这是因为 X11 转发只是将本地 X11 服务器上的应用程序窗口和 GUI 元素转发到远程计算机上的 X11 服务器上,而不需要在远程计算机上启动新的桌面环境。这意味着,X11 转发可以利用本地计算机的 CPU 和 GPU 资源,从而提供更快的性能。
相比之下,xrdp 需要在远程计算机上启动新的桌面环境,并将屏幕图像和输入事件发送到客户端。这可能会导致更高的网络延迟和带宽占用,从而影响性能。
但是,实际性能取决于许多因素,例如网络速度、带宽、计算机硬件和软件配置等。因此,对于特定的使用情况,X11 转发和 xrdp 的性能可能会有所不同。
---
从理论上来说,xrdp 比 VNC 更快。这是因为 xrdp 是基于 RDP 协议的远程桌面服务器,使用 3389 端口进行通信。RDP 协议是专门为远程桌面设计的,具有较低的延迟和带宽占用。相比之下,VNC 使用基于帧缓冲区的远程桌面协议,可能会导致更高的延迟和带宽占用。
然而,实际性能取决于许多因素,例如网络速度、带宽、计算机硬件和软件配置等。在某些情况下,VNC 可能比 xrdp 更快,特别是在低带宽网络环境下。因此,最好根据具体情况选择适合自己的远程桌面服务器。
除了 X11 转发和 xrdp,还有一些其他的图形界面服务器,例如:
NX:NX 是一种基于 X11 转发的远程桌面服务器。它使用压缩和缓存技术来提高性能,并支持多用户会话和断点续传等功能。在某些情况下,NX 的性能可能比 X11 转发更快。
Spice:Spice 是一种新型的远程桌面协议,它支持高质量的视频、音频和 USB 重定向等功能。Spice 可以与 KVM 虚拟化技术一起使用,以提供高性能和低延迟的远程桌面体验。
RFB:RFB(Remote Framebuffer)是 VNC 协议的一种变体。它使用 JPEG 或 PNG 压缩算法来减少带宽占用,并支持加密和身份验证等功能。RFB 的性能可能比标准 VNC 更快。