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 ,然后保存。