怎樣在 CentOS 7.0 上安裝和配置 VNC 伺服器

Arun Pyasi發表於2015-04-26

這是一個關於怎樣在你的 CentOS 7 上安裝配置 VNC 服務的教程。當然這個教程也適合 RHEL 7 。在這個教程裡,我們將學習什麼是 VNC 以及怎樣在 CentOS 7 上安裝配置 VNC 伺服器

我們都知道,作為一個系統管理員,大多數時間是透過網路管理伺服器的。在管理伺服器的過程中很少會用到圖形介面,多數情況下我們只是用 SSH 來完成我們的管理任務。在這篇文章裡,我們將配置 VNC 來提供一個連線我們 CentOS 7 伺服器的方法。VNC 允許我們開啟一個遠端圖形會話來連線我們的伺服器,這樣我們就可以透過網路遠端訪問伺服器的圖形介面了。

VNC 伺服器是一個自由開源軟體,它可以讓使用者可以遠端訪問伺服器的桌面環境。另外連線 VNC 伺服器需要使用 VNC viewer 這個客戶端。

一些 VNC 伺服器的優點:

  • 遠端的圖形管理方式讓工作變得簡單方便。
  • 剪貼簿可以在 CentOS 伺服器主機和 VNC 客戶端機器之間共享。
  • CentOS 伺服器上也可以安裝圖形工具,讓管理能力變得更強大。
  • 只要安裝了 VNC 客戶端,透過任何作業系統都可以管理 CentOS 伺服器了。
  • 比 ssh 圖形轉發和 RDP 連線更可靠。

那麼,讓我們開始安裝 VNC 伺服器之旅吧。我們需要按照下面的步驟一步一步來搭建一個可用的 VNC。

首先,我們需要一個可用的桌面環境(X-Window),如果沒有的話要先安裝一個。

注意:以下命令必須以 root 許可權執行。要切換到 root ,請在終端下執行“sudo -s”,當然不包括雙引號(“”)

1. 安裝 X-Window

首先我們需要安裝 X-Window,在終端中執行下面的命令,安裝會花費一點時間。

# yum check-update
# yum groupinstall "X Window System"

installing x windows

#yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts

install gnome classic session

### 設定預設啟動圖形介面
# unlink /etc/systemd/system/default.target
# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

configuring graphics

# reboot

在伺服器重啟之後,我們就有了一個工作著的 CentOS 7 桌面環境了。

現在,我們要在伺服器上安裝 VNC 伺服器了。

2. 安裝 VNC 伺服器

現在要在我們的 CentOS 7 上安裝 VNC 伺服器了。我們需要執行下面的命令。

# yum install tigervnc-server -y

vnc server

3. 配置 VNC

然後,我們需要在 /etc/systemd/system/ 目錄裡建立一個配置檔案。我們可以將 /lib/systemd/sytem/vncserver@.service 複製一份配置檔案範例過來。

# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

copying vnc server configuration

接著我們用自己最喜歡的編輯器(這兒我們用的 nano )開啟 /etc/systemd/system/vncserver@:1.service ,找到下面這幾行,用自己的使用者名稱替換掉 。舉例來說,我的使用者名稱是 linoxide 所以我用 linoxide 來替換掉 :

ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid

替換成

ExecStart=/sbin/runuser -l linoxide -c "/usr/bin/vncserver %i"
PIDFile=/home/linoxide/.vnc/%H%i.pid

如果是 root 使用者則

ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid

configuring user

好了,下面重啟 systemd 。

# systemctl daemon-reload

最後還要設定一下使用者的 VNC 密碼。要設定某個使用者的密碼,必須要有能透過 sudo 切換到使用者的許可權,這裡我用 linoxide 的許可權,執行“su linoxide”就可以了。

# su linoxide
$ sudo vncpasswd

setting vnc password

確保你輸入的密碼多於6個字元

4. 開啟服務

用下面的命令(永久地)開啟服務:

$ sudo systemctl enable vncserver@:1.service

啟動服務。

$ sudo systemctl start vncserver@:1.service

5. 防火牆設定

我們需要配置防火牆來讓 VNC 服務正常工作。

$ sudo firewall-cmd --permanent --add-service vnc-server
$ sudo systemctl restart firewalld.service

allowing firewalld

現在就可以用 IP 和埠號(LCTT 譯註:例如 192.168.1.1:1 ,這裡的埠不是伺服器的埠,而是視 VNC 連線數的多少從1開始排序)來連線 VNC 伺服器了。

6. 用 VNC 客戶端連線伺服器

好了,現在已經完成了 VNC 伺服器的安裝了。要使用 VNC 連線伺服器,我們還需要一個在本地計算機上安裝的僅供連線遠端計算機使用的 VNC 客戶端。

remote access vncserver from vncviewer

你可以用像 Tightvnc viewerRealvnc viewer 的客戶端來連線到伺服器。

要用更多的使用者連線,需要建立配置檔案和埠,請回到第3步,新增一個新的使用者和埠。你需要建立 vncserver@:2.service 並替換配置檔案裡的使用者名稱和之後步驟裡相應的檔名、埠號。請確保你登入 VNC 伺服器用的是你之前配置 VNC 密碼的時候使用的那個使用者名稱

VNC 服務本身使用的是5900埠。鑑於有不同的使用者使用 VNC ,每個人的連線都會獲得不同的埠。配置檔名裡面的數字告訴 VNC 伺服器把服務執行在5900的子埠上。在我們這個例子裡,第一個 VNC 服務會執行在5901(5900 + 1)埠上,之後的依次增加,執行在5900 + x 號埠上。其中 x 是指之後使用者的配置檔名 vncserver@:x.service 裡面的 x 。

在建立連線之前,我們需要知道伺服器的 IP 地址和埠。IP 地址是一臺計算機在網路中的獨特的識別號碼。我的伺服器的 IP 地址是96.126.120.92,VNC 使用者埠是1。

執行下面的命令可以獲得伺服器的公網 IP 地址(LCTT 譯註:如果你的伺服器放在內網或使用動態地址的話,可以這樣獲得其公網 IP 地址)。

# curl -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'

總結

好了,現在我們已經在執行 CentOS 7 / RHEL 7 的伺服器上安裝配置好了 VNC 伺服器。VNC 是自由開源軟體中最簡單的一種能實現遠端控制伺服器的工具,也是一款優秀的 Teamviewer Remote Access 替代品。VNC 允許一個安裝了 VNC 客戶端的使用者遠端控制一臺安裝了 VNC 服務的伺服器。下面還有一些經常使用的相關命令。好好玩!

其他命令:

  • 關閉 VNC 服務。

    # systemctl stop vncserver@:1.service
    
  • 禁止 VNC 服務開機啟動。

    # systemctl disable vncserver@:1.service
    
  • 關閉防火牆。

    # systemctl stop firewalld.service
    

via: http://linoxide.com/linux-how-to/install-configure-vnc-server-centos-7-0/

作者:Arun Pyasi 譯者:boredivan 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

相關文章