服务器可视化方案

服务器可视化方案
xiuqhou远程服务器可视化解决方案
远程服务器使用Ubuntu20.04,直接SSH连接后是命令行窗口,如果想使用远程服务器的资源跑深度学习代码有些不方便。
之前我采用的方法包括:
本地写好代码,然后打包将代码.py文件和数据集上传到服务器环境,命令行窗口中运行代码
1 python **.py远程服务器Vim文本编辑器写代码,简单快捷,但是没有代码提示,Vim编辑器不太会用。
使用MobaXterm连接服务器,使用Xserver转发打开可视化窗口写代码。MobaXterm自带Xserver,直接命令行打开可视化应用写代码,如下列代码。
1
2
3 gedit # 打开gedit文本编辑器
nautilus # 打开文件管理器
gnome-terminal # 打开gnome桌面环境下的终端如果想要从命令行打开pycharm等IDE,需要配置下环境变量,或者将Pycharm打开程序的软连接放到环境变量中的Path路径里面。具体过程为:
解压下载下来的pycharm压缩包,得到文件夹,在里面找到bin目录下面的
pycharm.sh
文件,这就是pycharm的启动文件。想要终端可以直接打开pycharm,需要对pycharm.sh建立软连接,并复制到
/usr/bin/
目录下,终端可以直接运行该文件夹下的程序。想要桌面直接打开,需要对
pycharm.sh
建立快捷方式pycharm.desktop
,里面内容填写为。
1
2
3
4
5
6
7
8
9
10 [Desktop Entry]
Encoding=UTF-8
Name=pycharm
Comment=pycharm
Exec= # 根据软件的具体执行路径修改
Icon= #根据软件的具体执行路径修改
Terminal=false #软件打开时是否启动终端
StartupNotify=false
Type=Application
Categories=Application;Development;将该文件复制到
/usr/share/applications/
目录下,该目录下在环境变量中,因此目录下的文件可以从终端启动。然后复制到桌面一份,并设置Allow this file to run as a program
。之后就可以直接从MobaXterm里面输入pycharm或者sudo pycharm打开pycharm窗口进行编程了。
使用pycharm或者VScode远程开发功能。
pycharm专业版自带远程开发,社区版没有。
- 在Project Interpreter中,Existing interpreter里,点击右侧…新建解释器,选择SSH Interpreter,设置Host和Username,然后选择远程环境中的解释器路径,找到远程conda虚拟环境中的python程序。
- 在Remote Project Location中设置映射文件的路径,每次改变后会把本机的文件和映射路径下的文件进行一个同步。
- 右面remote host中可以看到服务器上的文件,要对文件进行修改,需要先下载下来,再修改,再上传上去,不能直接修改。
VScode远程开发非常好用,需要安装Remote - SSH插件。
安装后再左侧选择“远程资源管理器”,新建远程的SSH连接,这时候会打开一个新的VScode窗口,后续所有操作都是在服务器上面进行,不需要额外的配置,使用体验和本机没有任何区别。
目前我已知的远程桌面方案包括X2go、RDP、VNC。
X2go
X2go是一种轻型的远程桌面方式,提供了一个工作中的“云”桌面,具有始终在线、可远程访问且易于扩展的计算系统以及快速网络的所有优势。它也比许多 VNC 解决方案响应更快、更安全。
X2Go 服务器也有一些已知的兼容性问题。像 KDE 3/4、Xfce、MATE 和 LXDE 是对 X2Go 服务器最友好的桌面环境。但是,用其它桌面管理器效果可能有所不同。例如,已知 GNOME 3 之后的版本、KDE 5、Unity 和 X2Go 并不兼容。
配置远程桌面并设置X2go服务端
-
安装add-apt-repository工具
1
2sudo apt-get install python-software-properties # Ubuntu 10.04 or 12.04
sudo apt-get install software-properties-common # Ubuntu 14.04 -
安装服务端
1
2
3sudo add-apt-repository ppa:x2go/stable
sudo apt-get update
sudo apt-get install x2goserver x2goserver-xsession
设置客户端
-
Windows:从网站[doc:installation:x2goclient X2Go - everywhere@home]上下载合适的客户端
-
Ubuntu:使用下列命令之一进行安装
1
2apt-get install x2goclient
aptitude install x2goclient如果软件源中不包含X2Go,可以手动添加repositories。参考:
https://wiki.x2go.org/doku.php/wiki:repositories:debian
https://wiki.x2go.org/doku.php/wiki:repositories:ubuntu
安装完后命令行输入
x2goclient
,或者在图形桌面环境的Internet部分中可以找到启动程序。
bug部分
-
x2go cannot use a private OpenSSH key of the ECDSA type using bcrypt as the passphrase hashing algorithm。即便输入正确的passphrase,X2go也会一直询问输入passphrase。
解决办法:使用RSA keys生成新的ssh密钥对
1
ssh-keygen -trsa -b4096
RDP
RDP 是由微软公司开发的一种专有协议,它为用户提供了通过网络连接到另一台计算机的图形界面。在使用上,用户需要使用 RDP 客户端软件,而在远程另一台计算机则需要运行 RDP 服务器软件。缺省配置下,服务器监听 TCP 端口3389 和 UDP 端口3389。Windows系统可以直接使用远程桌面来实现RDP连接,开始菜单搜索“远程桌面连接”。
安装桌面环境
以GNOME为例,除了GNOME外,还可以选择LXDE、Xfce等桌面环境。
1 | sudo apt update |
安装xRDP
1 | sudo apt install -y xrdp |
安装完成后,xRDP服务将自动启动,可以通过以下命令检查其状态
1 | sudo systemctl status xrdp |
接下来为Linux用户设置登录密码
1 | sudo passwd <用户名> # 修改密码 |
xRDP默认使用自签发的证书,保存在 /etc/ssl/private/ssl-cert-snakeoil
位置下。
VNC
安装桌面环境
1 | sudo -i # 切换至root用户 |
配置VNC服务
1 | apt install -y tightvncserver |
启动VNC服务,监听在5901号TCP端口
1 | vncserver # 之后会要求设置一个密码 |
查看VNC服务信息
1 | ss -lntp | grep 5901 |
通过kill命令可以结束VNC服务进程
1 | vncserver -kill :1 # 1对应5901号端口,2对应5902号端口 |
编辑VNC的启动脚本:
1 | vim .vnc/xstartup |
脚本的内容为:
1 | export XKL_XMODMAP_DISABLE=1 |
前三条为环境变量的设置,最后一条为启动gnome桌面环境的会话,再次启动VNC服务
1 | vncserver -geometry 1920x1080 :1 # x为英文符号,不是*号,-geometry参数设置分辨率,:1设置监听的端口 |
客户端连接部分
下载VNC客户端,比如VNC Viewer,地址为Download VNC Viewer | VNC® Connect (realvnc.com)
打开后输入远程服务器的地址,例如127.0.0.1:1
,这里是:1
而不是:5901
,然后就可以打开远程桌面环境了。
VNC的一些说明
VNC是使用远程帧缓冲协议来进行远程桌面连接,类似按像素来传输信息,所以会比较卡,需要足够的带宽,我不太喜欢使用。