Linux伺服器上安裝配置VNC Server
前言
專案需要在Linux上進行資料抽取的相關任務,使用的是Kettle這一ETL工具,但是伺服器就一個主機,這裡對應Kettle的job和trans等相關配置就無法進行,所以需要使用遠端圖形介面VNC來實現,下面就記錄一下如何在Linux伺服器下安裝配置VNC server!
安裝配置
安裝X-Window
首先,我們需要一個可用的桌面環境(X-Window),如果沒有的話要先安裝一個。如果有這一步驟可以跳過!
下面命令需要在root許可權下執行:
yum groupinstall "X Window System"
這裡提一下yum groupinstall
和yum install
①yum install 它安裝單個軟體,以及這個軟體的依賴關係
②yum groupinstall 它安裝一個安裝包,這個安裝包包涵了很多單個軟體,以及單個軟體的依賴關係。
具體可以參考這篇文章:yum install 與 yum groupinstall 的區別
之後執行命令:
yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts
最後設定預設啟動圖形介面:
unlink /etc/systemd/system /default.target
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
然後重啟一下
reboot
另外如果需要中文,可以新增中文支援!
yum -y groupinstall chinese-support
在啟動圖形介面時可以選擇支援中文。
安裝VNC Server
同樣的這裡也需要root許可權來執行!
安裝很簡單,只需執行命令:
yum install tigervnc-server
然後對VNC進行配置:
我們可以開啟/lib/systemd/system/
,這個檔案看一下,裡邊有個Quick HowTo
所以可以按照執行就好!
①複製模板配置檔案
cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service
②修改配置,將裡邊的<USER>
替換為使用者名稱,我這裡是mars:
ExecStart=/sbin/runuser -l mars -c "/usr/bin/vncserver %i"
PIDFile=/home/mars/.vnc/%H%i.pid
如果要設定root使用者:
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
③重啟 systemd
systemctl daemon-reload
④設定密碼
為mars設定登入密碼,因為當前是root使用者下,所以要切換到mars使用者許可權下進行設定。
su mars
sudo vncpasswd
如果要為root設定,直接執行:
vncpasswd
⑤設定開機自啟動
systemctl enable vncserver@:1.service
⑥開啟服務
systemctl start vncserver@:1.service
可能遇到的問題
開啟服務的時候,可能報錯
解決辦法:
vi /lib/systemd/system/[email protected]:1.service
將其中的Type引數
Type=forking
改為 Type=simple
。
一般到這裡,如果配置正確的話,是可以啟動成功並且連線上的,如果還有問題,可以進行下邊的嘗試:
配置防火牆
sudo firewall-cmd --permanent --add-service vnc-server
sudo systemctl restart firewalld.service
再不行直接關閉:
systemctl stop firewalld.service//關閉
systemctl disable firewalld.service//禁用
使用VNC Viewer連線
VNC Viewer的下載這裡就不再提了!
我們在連線的時候要使用類似:伺服器的IP:埠號
這樣的形式來連線!
注意這裡的”埠號”不是我們平常所說的埠號,這裡的”埠號”是 VNC 連線數的多少,從1開始排序。
比如我們上邊設定的[email protected]:1.service
,我們在配置檔案中設定的使用者是mars,伺服器的ip是192.168.164.132,那麼我們連線的時候就用
192.168.164.132:1
來連線,然後輸入在配置[email protected]:1.service
時設定的密碼即可登入,登入進去就是mars這個使用者身份!
當然我們也可以配置其他的使用者來登入,比如設定[email protected]:2.service
,同樣的替換裡邊的<USER>
即可!
那麼說到實際的服務的埠號,VNC 服務本身使用的是5900埠。鑑於有不同的使用者使用 VNC ,每個人的連線都會獲得不同的埠。配置檔名裡面的數字告訴 VNC 伺服器把服務執行在5900的子埠上。在我們這個例子裡,第一個 VNC 服務會執行在5901(5900 + 1)埠上,之後的依次增加,執行在5900 + x 號埠上。其中 x 是指之後使用者的配置檔名 [email protected]:x.service 裡面的 x。
2017/11/8更新
如果VNC視窗和外邊windows不能進行復制貼上!
在linux終端執行命令:
vncconfig -nowin&
其他相關
如果不設定開機自啟動,需要每次手動啟動服務:
systemctl start vncserver@:1.service 或者 vncserver :1
關閉服務:
systemctl stop vncserver@:1.service 或者 vncserver -kill :1