1. 程式人生 > >Linux伺服器上安裝配置VNC Server

Linux伺服器上安裝配置VNC Server

前言

專案需要在Linux上進行資料抽取的相關任務,使用的是Kettle這一ETL工具,但是伺服器就一個主機,這裡對應Kettle的job和trans等相關配置就無法進行,所以需要使用遠端圖形介面VNC來實現,下面就記錄一下如何在Linux伺服器下安裝配置VNC server!

安裝配置

安裝X-Window

首先,我們需要一個可用的桌面環境(X-Window),如果沒有的話要先安裝一個。如果有這一步驟可以跳過!
下面命令需要在root許可權下執行:

yum groupinstall "X Window System"

這裡提一下yum groupinstallyum 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/

[email protected],這個檔案看一下,裡邊有個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