AutoDL服务器远程桌面

avatar
作者
猴君
阅读量:0

文章目录


VNC(Virtual Network Computing )是一种图形化的桌面共享协议,它使用远程帧缓冲协议 (RFB) 来远程控制另一台计算机,它将键盘和鼠标事件从一台计算机传输到另一台计算机,通过网络向另一个方向转发图形屏幕更新。 对于一般性的GUI程序运行需求,我们其实可以借助VNC在不安装完整桌面环境的情况下方便快捷的实现,下面介绍如何借助turbovnc工具,在实例中运行一个GUI程序并在本地电脑进行显示:


1.安装VNC和必要的一些图形显式库:

# 安装基本的依赖包 apt update && apt install -y libglu1-mesa-dev mesa-utils xterm xauth x11-xkb-utils xfonts-base xkb-data libxtst6 libxv1  # 安装libjpeg-turbo和turbovnc export TURBOVNC_VERSION=2.2.5 export LIBJPEG_VERSION=2.0.90 wget http://aivc.ks3-cn-beijing.ksyun.com/packages/libjpeg-turbo/libjpeg-turbo-official_${LIBJPEG_VERSION}_amd64.deb wget http://aivc.ks3-cn-beijing.ksyun.com/packages/turbovnc/turbovnc_${TURBOVNC_VERSION}_amd64.deb dpkg -i libjpeg-turbo-official_${LIBJPEG_VERSION}_amd64.deb dpkg -i turbovnc_${TURBOVNC_VERSION}_amd64.deb rm -rf *.deb  # 启动VNC服务端,这一步可能涉及vnc密码配置(注意不是实例的账户密码)。另外如果出现报错xauth未找到,那么使用apt install xauth再安装一次 rm -rf /tmp/.X1*  # 如果再次启动,删除上一次的临时文件,否则无法正常启动 USER=root /opt/TurboVNC/bin/vncserver :1 -desktop X -auth /root/.Xauthority -geometry 1920x1080 -depth 24 -rfbwait 120000 -rfbauth /root/.vnc/passwd -fp /usr/share/fonts/X11/misc/,/usr/share/fonts -rfbport 6006  # 检查是否启动,如果有vncserver的进程,证明已经启动 ps -ef | grep vnc 

注意:启动VNC服务

root@autodl-container-011d409f64-3952354b:~# ps -ef | grep vnc root       1191   1129  0 19:49 pts/0    00:00:00 grep --color=auto vnc root@autodl-container-011d409f64-3952354b:~# rm -rf /tmp/.X1* root@autodl-container-011d409f64-3952354b:~# ps -ef | grep vnc root       1197   1129  0 19:49 pts/0    00:00:00 grep --color=auto vnc root@autodl-container-011d409f64-3952354b:~# USER=root /opt/TurboVNC/bin/vncserver :1 -desktop X -auth /root/.Xauthority -geometry 1920x1080 -depth 24 -rfbwait 120000 -rfbauth /root/.vnc/passwd -fp /usr/share/fonts/X11/misc/,/usr/share/fonts -rfbport 6006  Desktop 'TurboVNC: autodl-container-011d409f64-3952354b:1 (root)' started on display autodl-container-011d409f64-3952354b:1  Starting applications specified in /root/.vnc/xstartup.turbovnc Log file is /root/.vnc/autodl-container-011d409f64-3952354b:1.log  root@autodl-container-011d409f64-3952354b:~# ps -ef | grep vnc root       1209      1  3 19:49 pts/0    00:00:00 /opt/TurboVNC/bin/Xvnc :1 -desktop TurboVNC: autodl-container-011d409f64-3952354b:1 (root) -httpd /opt/TurboVNC/bin//../java -auth /root/.Xauthority -geometry 1920x1080 -depth 24 -rfbwait 120000 -rfbauth /root/.vnc/passwd -x509cert /root/.vnc/x509_cert.pem -x509key /root/.vnc/x509_private.pem -rfbport 5901 -fp /usr/share/fonts/X11/misc/,/usr/share/fonts -deferupdate 1 -dridir /usr/lib/x86_64-linux-gnu/dri -registrydir /usr/lib/xorg -desktop X -auth /root/.Xauthority -rfbwait 120000 -rfbport 6006 root       1400   1129  0 19:49 pts/0    00:00:00 grep --color=auto vnc root@autodl-container-011d409f64-3952354b:~#  

2.SSH隧道

2.1.本地安装openssh服务器

右键此电脑→属性→应用→可选功能→添加可选功能

在这里插入图片描述

找到OpenSSH服务器(注意是服务器不是OpenSSH客户端)
在这里插入图片描述

2.2.服务开启

Win+S,键入服务,打开本地服务界面,找到OpenSSH SSH Server,启动方式改为自动

在这里插入图片描述

cmd或Windows PowerShell里键入net stop sshd,net start sshd 重启本地的 ssh 服务即可。

如提示下图可管理员权限运行
在这里插入图片描述

2.3.显示当前安装的 SSH 版本信息

在这里插入图片描述
ssh -V 命令在 SSH(Secure Shell)客户端中用来显示当前安装的 SSH 版本信息。这个命令提供了关于 SSH 客户端版本的详细信息,包括版本号和使用的加密库等。

OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2 表示:

  • OpenSSH_for_Windows_8.1p1:这是你在 Windows 系统上使用的 OpenSSH 版本号。OpenSSH 是一种广泛使用的开源 SSH 工具,用于远程管理和安全通讯。
  • LibreSSL 3.0.2:这是与 OpenSSH 配合使用的加密库版本号。LibreSSL 是一个从 OpenSSL 发展来的开源加密库,用于提供加密功能和安全通讯。

2.3.设置一个 SSH 隧道

在本地的Terminal中执行命令

ssh -CNgv -L 6006:127.0.0.1:6006 root@region-1.autodl.com -p 37881 

其中6006:127.0.0.1:6006指代理AutoDL主机vncserver的6006端口到本地的6006端口,root@region-1.autodl.com -p 37881为登陆指令的访问地址与端口。

执行上述指令后需要输入登陆密码登陆AutoDL主机,保持该输入该命令后Terminal的开启状态,关闭后会杀掉进程,导致VNC Viewer登陆失败。

在这里插入图片描述

-C: 启用压缩选项。这有助于减少通过 SSH 隧道传输的数据量,可能会提升速度,特别是在带宽有限的情况下。 -N: 表示 SSH 客户端不执行远程命令,只用于转发端口。这在只需要端口转发而不需要执行其他命令的场景中非常有用。 -g: 允许远程主机连接到本地转发的端口。这通常在你希望其他机器能访问通过你机器转发的服务时使用。 -v: 启用详细模式,可以显示更多的调试信息。这对于诊断连接问题非常有帮助。 -L 6006:127.0.0.1:6006: 这是本地端口转发的设置。它意味着将本地计算机上的 6006 端口转发到远程机器(region-1.autodl.com)上的 127.0.0.1 地址的 6006 端口。    这样做的结果是,如果你在本地计算机上访问 6006 端口,流量将通过 SSH 隧道发送到远程机器的 6006 端口。 root@region-1.autodl.com -p 37881: 这部分是 SSH 连接的目标地址和端口。使用用户 root 连接到 region-1.autodl.com,通过端口 37881

==注意

输入密码时最好手动输入密码

在这里插入图片描述


3.VNC Viewer客户端登录

在本地下载VNC Viewer客户端,在VNC Server栏输入127.0.0.1:6006,点击OK即可登陆远程桌面,这里还需要输入前面在AutoDL主机Terminal中启动VNC服务器时设置的密码。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


4.测试

在终端中添加环境变量:export DISPLAY=:1,然后再执行您的命令(注意在同一终端执行)
在这里插入图片描述
可以使用以下python代码进行简单验证:

import numpy as np import cv2  h = 500 w = 500 img = 255 * np.ones((h ,w , 3), dtype=np.uint8) cv2.imshow("", img) cv2.waitKey(0) 

如果在本地的vnc client显示图片,证明安装和启动过程无误


5.参考

AutoDL帮助文档-远程桌面
关于如何实现autodl服务器的可视化桌面
AutoDL远程桌面改进(显示桌面环境)


广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!