前提
前陣子在寫作業的時候,卡住蠻久的問題:
本地電腦 OS 是 Windows,遇到這個問題當下的情況是,從本地端 (putty) 連線至遠端 Linux 系統,並且使用 Qemu-kvm 創建 Virtual Machine (VM),Qemu 啟動 vnc server,再去透過 vncviewer (client) 去訪問 VM。
這個問題 Can't open display:
就會在最後一個步驟顯示出來,導致當時的我上網找問題找蠻久的orz。
解決方法
後來才發現說 VNC 存取遠端電腦,並執行遠端的圖形應用程式,如果從 Windows 要連遠端的 Linux 圖形界面時,Windows 以及 MacOS 必須在本地端也是要用 X Window 的環境,這部分的話需要在本地電腦下載 X server,透過X11去實現圖形化介面顯示,如果是 Linux 連動到 Linux 就不需要,至於因為我的電腦是Windows,所以需要安裝 X server,我裝的是 Xming,並且 putty 連線時要記得選擇 enable X11 forwarding,最後就解決了以上的這個問題XD~
在Connection/SSH/X11裡頭
其實這邊更推薦大家下載 MobaXteam 這款強大的軟體,可以身兼 X Server 以及 SSH client,直接取代掉 putty + Xming ,但當時我要下載的時候,發現奇怪怎麼網頁都打不開,是不是他們的網頁壞掉了,後來才發現是實驗室的網路竟然會擋,真的太神奇了 > <??
對了然後也記得要檢查一下 Linux 系統中 /etc/ssh/sshd_config
裡頭是否有 X11Forwrding yes
。
VNC 是什麼?
VNC 的原理是由 server, client 以及一個 protocol 所組成的, server端目的主要是分享其運行機器的 window (但在 我的情況下是 VM 的window ), client端進入 server 的 window ( VM 的 window ),而 protocol 叫做 RFB ,傳送 server 端的原始圖像到 client 端,client 端如果有 input 也會傳到 server 端。
至於 X sever, X window 的部分,我也打算寫一篇文章來讓我的記憶加深 > <,畢竟我還是 Linux 新手村的一枚!
Reference
vncviewer: unable to open display “ “ 终极解决方法
Use X forwarding on a personal computer to securely run graphical applications installed on IU’s research supercomputers
VNC 遠端桌面與 KVM 虛擬機
VNC是什么?VNC和Telnet、SSH区别