[Linux] 設定 CentOS 7 上的 VNC 遠端桌面
自從裝了 CentOS 7 之後,一直有個困擾…
那就是原本 CentOS 6 內建的 Screen Sharing 到 CentOS 7 之後走樣了!
平常我可以用 Mac 的 Finder > Go > Connect to Server > vnc://<host>
就可以看到 CentOS 6 的桌面,
可是用同樣的方式卻沒有辦法連到 CentOS 7,而會跳出 Connection failed 錯誤:
查了一下,VNC & Remote Desktop (aka: Screen Sharing) 的發文者與我有相同的困擾,
而大部分人的建議是另外裝一個 VNC server 來用…
試了一下,另外裝一個 VNC server 是可以用的,
但缺點是沒辦法直接看到原本 CentOS 7 的桌面 (因為是開一個新的虛擬桌面出來),
不過目前就先將就了~
備註:後來是有找到一個用 NoMachine 連上現有 X-Window session 的方法 。
1. 在 CentOS 7 上安裝 Tiger VNC server
可以參考 Redhat System Administrator’s Guide: Tiger VNC 的說明~
用 yum 安裝 tigervnc-server:
yum -y install tigervnc-server
2. 啟動 Tiger VNC server
照網友建議的,是先用 SSH 連進去 CentOS 7 裡面之後,
執行 vncserver 來打開 VNC server~
這樣的話只有在必要的時候才啟動 VNC server,而不是一開機就打開,較為安全~
第一次執行的話會需要設定一下密碼,以後就不用了 (除非你把 ~/.vnc 目錄砍掉):
testuser@localhost ~ $ vncserver You will require a password to access your desktops. Password: Verify: New 'localhost:1 (testuser)' desktop is localhost:1 Creating default startup script /home/testuser/.vnc/xstartup Starting applications specified in /home/testuser/.vnc/xstartup Log file is /home/testuser/.vnc/localhost:1.log
可以看到有一個 :1 的虛擬桌面被建立起來了~
用 vncserver -list 可以列出目前所有的 VNC 虛擬桌面:
testuser@localhost ~/.vnc $ vncserver -list TigerVNC server sessions: X DISPLAY # PROCESS ID :1 5387
3. 使用 VNC client 連到 CentOS 7 上的 Tiger VNC server
這邊可以用自己常用的 VNC client,
像我在 Mac 上是用 Finder > Go > Connect to Server > vnc://<host>:<port>~
這邊因為虛擬桌面是在 :1,因此 port 的部分是 5900+1 = 5901 (5900 是 VNC 預設 port):
按下 Connect 後,會問你 VNC 的密碼 (就是在執行 vncserver 時設定的那一個):
接著就可以連線成功囉~
可以注意到桌面上空盪盪的,沒有任何的視窗,
這是因為這是一個虛擬桌面,不會看到其他登入者開啟的視窗…
後記:我平常的 CentOS 7 桌面是設定成 English 顯示,但是 vnc 進去之後卻是中文…
要解決這個問題,可以在執行 vncserver 指令之前,
先設定 LANG 或 LC_ALL 環境變數~
像我如果先設定成 LANG=C 的話,VNC 的桌面就會是英文的囉~~^^
testuser@localhost ~ $ export LANG=C testuser@localhost ~ $ vncserver