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

1. 安裝 X-Window(X-Window版本,後面還有GNOME版本)

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

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

installing x windows

installing x windows

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

install gnome classic session

install gnome classic session

### 設置默認啓動圖形界面# unlink /etc/systemd/system/default.target# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

configuring graphics

configuring graphics

# reboot

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

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

2. 安裝 VNC 服務器

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

# yum install tigervnc-server -y

vnc server

vnc server

3. 配置 VNC

然後,我們需要在 /etc/systemd/system/ 目錄裏創建一個配置文件。我們可以將 /lib/systemd/sytem/[email protected]拷貝一份配置文件範例過來。

# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service

copying vnc server configuration

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

configuring user

好了,下面重啓 systemd 。

# systemctl daemon-reload

最後還要設置一下用戶的 VNC 密碼。要設置某個用戶的密碼,必須要有能通過 sudo 切換到用戶的權限,這裏我用 linoxide 的權限,執行“su linoxide”就可以了。

# su linoxide$ sudo vncpasswd

setting vnc password

setting vnc password

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

4. 開啓服務

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

$ sudo systemctl enable vncserver@:1.service

啓動服務。

$ sudo systemctl start vncserver@:1.service啓動時報錯的話,將type=forking改爲type=simple

5. 防火牆設置

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

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

allowing firewalld

allowing firewalld

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

6. 用 VNC 客戶端連接服務器

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

remote access vncserver from vncviewer

remote access vncserver from vncviewer

你可以用像 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 服務。


  1. # systemctl stop vncserver@:1.service

禁止 VNC 服務開機啓動。

  1. # systemctl disable vncserver@:1.service

關閉防火牆。

  1. # systemctl stop firewalld.service


1. 安裝 GNOME(GNOME版本)

Centso7安裝vnc實現圖形化訪問

安裝桌面

yum groupinstall "GNOME Desktop"------可能會報錯,詳見安裝X11安裝圖形化教程,安裝docker 和 libdevmapper*  2個包就可以了

安裝vnc server

yum install tigervnc-server

拷貝配置文件

cp /lib/systemd/system/[email protected]  /etc/systemd/system/vncserver@:1.service

編輯修改配置文件

vi /etc/systemd/system/vncserver@:1.service 

#把配置文件中的,改成root和root的家目錄路徑。

[Service]

Type=simple

# 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 -c "/usr/bin/vncserver %i"

#PIDFile=/home//.vnc/%H%i.pid

ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"

PIDFile=/root/.vnc/%H%i.pid

ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i> /dev/null 2>&1 || :'

 

啓動vnc,設置密碼vncpasswd。

vncserver

#然後按照提示輸入兩次密碼

設置開機自動啓動:

systemctl daemon-reload

systemctl enable vncserver@:1.service

客戶端連接vnc,在vnc客戶端輸入ip:5901 進行連接,輸入設置的vnc密碼登錄。

其他:

本文是以root用戶爲例,如果其他用戶也需要登錄,那麼,還需要將文件複製爲 
cp /lib/systemd/system/[email protected] /lib/systemd/system/vncserver@:2.service 
同時,將文件內的%i改爲:2,並建立對應用戶的vncpasswd。 

 5.  啓用配置文件 systemctl enable vncserver@:1.service

 6. 設置登陸密碼:vncpasswd

 7. 啓動vncserver:systemctl start vncserver@:1.service

 8 . 啓動狀態查看:systemctl status vncserver@:1.service

 9.查看端口狀態:netstat -lnt | grep 590*

 10.查看報錯信息:grep vnc /var/log/messages

11報錯:

Warning: localhost.localdomain:1 is taken because of /tmp/.X11-unix/X1

Remove this file if there is no X server localhost.localdomain:1

執行:rm -rf /tmp/.X11-unix/*

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章