Linux的远程桌面一般采用VNC,很少提到SSH + X11做转发,下面介绍多种SSH + X11及VNC的远程桌面方案;
1、MobaXterm转发X11
MobaXterm功能非常全,内建X server,可远程运行X窗口程序,支持VNC/RDP/Xdmcp等远程桌面;
在SSH服务器中配置X11转发服务
在/etc/ssh/sshd_config文件中将 X11Forwarding 设置成 yes
配置MobaXterm登录信息(Remote environment注意CentOS的桌面类型 )
MobaXterm连接到服务器
X11-forwarding 和 DISPLAY 都打钩表示配置正常
远程桌面信息如下
2、Xshell转发X11
在【文件】菜单上,点击【打开】。将显示【会话】对话框。
点击工具栏上的【属性】按钮。将显示属性对话框。点击【隧道】分类菜单。
在【X11转移】部分中,选中【转发X11连接到】。
如果系统中安装了XManager,请选择Xmanager。
如果使用其他PC X Server,请选择X DISPLAY并输入正确的显示名称。
点击【确定】保存修改。
在SSH服务器中配置X11转发服务
在Xshell终端运行X应用程序
3、SecureCRT转发X11
Secure CRT中打开会话选项,连接>端口转发>Remote/X11类别中,启用Forward X11数据包选项。
在SSH服务器中配置X11转发服务
在Xshell终端运行X应用程序
4、配置 VNC远程桌面
安装VNC server
# yum install -y tigervnc-server
配置第一个桌面
修改红色部分
# cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service
# vim /lib/systemd/system/vncserver@:1.service
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i" PIDFile=/root/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
配置第二个桌面,修改如下参数
# cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:2.service
# vim /lib/systemd/system/vncserver@:2.service
[Service]
Type=forking
User=user1
ExecStartPre=-/usr/bin/vncserver -kill %i
ExecStart=/usr/bin/vncserver %i
PIDFile=/home/user1/.vnc/%H%i.pid
ExecStop=-/usr/bin/vncserver -kill %i
启动VNC
# systemctl daemon-reload
# systemctl start vncserver@:1.service
# systemctl start vncserver@:2.service
设置VNC密码(需要在每一个用户环境下设置)
# vncpasswd
如果VNC使用Xfce桌面,需要修改/home/<user>/.vnc/xstartup文件
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
vncserver -kill $DISPLAY
其他VNC参数
-alwaysshared 同一个端口允许多用户同时登录
-geometry 分辨率
-depth 色彩数,参数有8、16、24、32
防火墙放行VNC端口
vnc端口第一个用户5901,创建第二个用户5902,其他以此类推。
客户端(tigervnc)连接远程桌面
客户端(realvnc)连接上去后整个桌面很模糊,解决的办法就是在建立好的远程连接点右键 >> 选择 Properties >> 选择 Options 选项卡 >> 在 General 下面的 Picture quality 选择 High ,然后保存。