图形界面解决方案
1. VNC
2. XRDP
3. X11 + ssh :
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 )
| - 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
/ etc/ xrdp/ sesman. ini
/ etc/ xrdp/ startwm. sh
XRDP 实例
安装和配置
sudo apt- get install xrdp
sudo service xrdp status
在图形界面下新建一个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 更快。