這是一個關於怎樣在你的 CentOS 7 上安裝配置 VNC 服務的教程。當然這個教程也適合 RHEL 7 。在這個教程裡,我們將學習什麼是 VNC 以及怎樣在 CentOS 7 上安裝配置 VNC 服務器。
我們都知道,作為一個系統管理員,大多數時間是通過網絡管理服務器的。在管理服務器的過程中很少會用到圖形界面,多數情況下我們只是用 SSH 來完成我們的管理任務。在這篇文章裡,我們將配置 VNC 來提供一個連接我們 CentOS 7 服務器的方法。VNC 允許我們開啟一個遠程圖形會話來連接我們的服務器,這樣我們就可以通過網絡遠程訪問服務器的圖形界面了。
VNC 服務器是一個自由開源軟件,它可以讓用戶可以遠程訪問服務器的桌面環境。另外連接 VNC 服務器需要使用 VNC viewer 這個客戶端。
一些 VNC 服務器的優點:
那麼,讓我們開始安裝 VNC 服務器之旅吧。我們需要按照下面的步驟一步一步來搭建一個可用的 VNC。
首先,我們需要一個可用的桌面環境(X-Window),如果沒有的話要先安裝一個。
注意:以下命令必須以 root 權限運行。要切換到 root ,請在終端下運行“sudo -s”,當然不包括雙引號(“”)
首先我們需要安裝 X-Window,在終端中運行下面的命令,安裝會花費一點時間。
# yum check-update # yum groupinstall "X Window System"
#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
在服務器重啟之後,我們就有了一個工作著的 CentOS 7 桌面環境了。
現在,我們要在服務器上安裝 VNC 服務器了。
現在要在我們的 CentOS 7 上安裝 VNC 服務器了。我們需要執行下面的命令。
# yum install tigervnc-server -y
然後,我們需要在 /etc/systemd/system/
目錄裡創建一個配置文件。我們可以將 /lib/systemd/sytem/[email protected]
拷貝一份配置文件范例過來。
# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
接著我們用自己最喜歡的編輯器(這兒我們用的 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
好了,下面重啟 systemd 。
# systemctl daemon-reload
最後還要設置一下用戶的 VNC 密碼。要設置某個用戶的密碼,必須要有能通過 sudo 切換到用戶的權限,這裡我用 linoxide 的權限,執行“su linoxide
”就可以了。
# su linoxide $ sudo vncpasswd
確保你輸入的密碼多於6個字符
用下面的命令(永久地)開啟服務:
$ sudo systemctl enable vncserver@:1.service
啟動服務。
$ sudo systemctl start vncserver@:1.service
我們需要配置防火牆來讓 VNC 服務正常工作。
$ sudo firewall-cmd --permanent --add-service vnc-server $ sudo systemctl restart firewalld.service
現在就可以用 IP 和端口號(LCTT 譯注:例如 192.168.1.1:1 ,這裡的端口不是服務器的端口,而是視 VNC 連接數的多少從1開始排序)來連接 VNC 服務器了。
好了,現在已經完成了 VNC 服務器的安裝了。要使用 VNC 連接服務器,我們還需要一個在本地計算機上安裝的僅供連接遠程計算機使用的 VNC 客戶端。
你可以用像 Tightvnc viewer 和 Realvnc 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