1. 安裝 X-Window(X-Window版本,後面還有GNOME版本)
首先我們需要安裝 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/[email protected]
拷貝一份配置文件範例過來。
# cp /lib/systemd/system/[email protected] /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啓動時報錯的話,將type=forking改爲type=simple
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 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
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/*