如何遠程辦公或者遠程彈性化工作制在技術(shù)領(lǐng)域正變得越來越流行。這個趨勢背后的一個技術(shù)就是遠程桌面。你的桌面環(huán)境在云中,你可以在任何你去的地方,或者在家或者工作場所訪問你的遠程桌面。
這個教程介紹如何VPS中設(shè)置基于CentOS的遠程桌面。現(xiàn)在,我們會先展示CentOS的基礎(chǔ)環(huán)境。
我們假設(shè)你已經(jīng)創(chuàng)建了CentOS 7的VPS實例(比如,使用DigitalOcean 或者 Amazon EC2)。請確保你的VPS實例有至少1GB的內(nèi)存。不然,CentOS將會在你訪問遠程桌面的時候會崩潰。
第一步: 安裝CentOS桌面
如果你現(xiàn)在安裝的CentOS版本是沒有桌面的最小版本,你需要先在VPS上安裝桌面(比如GNOME)。比如,DigitalOcean的鏡像就是最小版本,它需要如下安裝桌面GUI
# yum groupinstall "GNOME Desktop"
在安裝完成之后重啟VPS。
第二步:安裝和配置VNC服務(wù)器
接下來就是安裝和配置VNC服務(wù)器。我們使用的是TigerVNC,一個開源的VNC服務(wù)實現(xiàn)。
# yum install tigervnc-server
現(xiàn)在創(chuàng)建一個用戶賬戶(比如:xmodulo)用來訪問遠程桌面。
# useradd xmodulo
# passwd xmodulo
當一個用戶嘗試使用VNC訪問遠程桌面時,VNC守護進程就會啟動來處理這個請求。這意味著你需要為每個用戶創(chuàng)建一個獨立的VNC配置文件。
CentOS依靠systemd來管理和配置系統(tǒng)服務(wù)。所以我們將使用systemd來為用戶xmodulo配置VNC服務(wù)器。
首先讓我們使用下面任意一條命令來檢查VNC服務(wù)器的狀態(tài)。
# systemctl status vncserver@:.service
# systemctl is-enabled vncserver@.service
默認的,剛安裝的VNC服務(wù)并沒有激活(禁用)。
現(xiàn)在復(fù)制一份通用的VNC服務(wù)文件來為用戶xmodulo創(chuàng)建一個VNC服務(wù)配置。
# cp a>/lib/systemd/system/vncserver@.service/a> a>/etc/systemd/system/vncserver@:1.service/a>
用本文編輯器來打開配置文件,用實際的用戶名(比如:xmodulo)來替換[Service]下面的。同樣。在ExecStart后面追加 "-geometry " 參數(shù)。最后,要修改下面“ExecStart”和“PIDFile”兩行。
# vi a>/etc/systemd/system/vncserver@:1.service/a> /p>
p> [Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>1 || :'
ExecStart=/sbin/runuser -l xmodulo -c "/usr/bin/vncserver %i -geometry 1024x768"
PIDFile=/home/xmodulo/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>1 || :'
現(xiàn)在為用戶xmodulo設(shè)置密碼(可選)。首先切換到該用戶,并運行vncserver命令。
# su - xmodulo
# vncserver
你會被提示輸入用戶的VNC密碼。密碼設(shè)置完成后,你下次需要用這個密碼來訪問你的遠程桌面。
最后,重新加載服務(wù)來使新的VNC配置生效:
# systemctl daemon-reload
在啟動時自動啟動VNC服務(wù):
# systemctl enable vncserver@:1.service
檢查vnc服務(wù)正在監(jiān)聽的端口:
# netstat -tulpn | grep vnc
端口5901是VNC默認的客戶端連接到VNC服務(wù)器使用的端口。
第三步:通過SSH連接到遠程桌面
從設(shè)計上說,VNC使用的遠程幀緩存(RFB)并不是一種安全的協(xié)議,那么在VNC客戶端上直接連接到VNC服務(wù)器上并不是一個好主意。任何敏感信息比如密碼都可以在VNC流量中被輕易地泄露。因此,我強烈建議使用SSH隧道來加密你的VNC流量。
在你要運行VNC客戶端的本機上,使用下面的命令來創(chuàng)建一個連接到遠程VPS的SSH通道。當被要輸入SSH密碼時,輸入用戶的密碼。
$ ssh xmodulo@VPS-IP-address> -L 5901:127.0.0.1:5901
用你自己的VNC用戶名來替換“xmodulo”,并填上你自己的VPS IP地址。
一旦SSH通道建立之后,遠程VNC流量就會通過ssh通道路由并發(fā)送到127.0.0.1:5901。
現(xiàn)在啟動你最愛的VNC客戶端(比如:vinagre),來連接到127.0.0.1:5901。
你將被要求輸入VNC密碼。當你輸入VNC密碼時,你就可以安全地連接到CentOS的遠程桌面了。
然后就會看到如題圖的顯示。