最近開始學習Linux,在虛擬機中裝好系統后,直接在CentOS中操作不太方便,使用過程中需要在虛擬機和Windows進行來回切換,就想到有沒有一種可以像Windows遠程連接一樣,可以方便操作的方法,在網上查了很多資料后,大都推薦使用VNC Server/Client進行,即在CentOS中安裝VNC Server,在Windows中安裝VNC Client。各項配置完成后以即進行遠程連接控制了。
??本文將演示如何配置并完成遠程連接。Server端為CentOS 7,Client端為Windows 7。
Client端
Client比較簡單,只要下載好對應的客戶端軟件即,本文中使用的是Real VNC Viewer。官網下載地址:https://www.realvnc.com/download/vnc/ ,在下載頁面中選中對應的版本即可。如下圖所示:
??Windows中安裝比較簡單,根據向導點擊安裝即可。
Server端
Server端安裝配置相對比較復雜,在安裝前需要將CentOS連網。
安裝VNC Server
- 第一步:打開終端切換到管理員權限,如果已經是管理員身份則跳過這一步,使用的命令如下:
sudo -s
- 第二步:在線安裝VNC Server,在終端中輸入命令,如下所示:
yum install vnc vnc-server
安裝過程如下圖所示:
配置VNC Server
- 第一步:復制一份配置文件模板到/etc/systemd/system中,并進行配置。
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
- 第二步:使用gedit打開vncserver@:1.service,按照如下進行配置,在本文中將要配置的用戶名為admin
gedit /etc/systemd/system/vncserver@:1.service
將
ExecStart=/usr/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid
替換為:
ExecStart=/usr/sbin/runuser -l admin -c "/usr/bin/vncserver %i"
PIDFile=/home/admin/.vnc/%H%i.pid
主要是將<user>替換成需要添加的用戶
- 第三步:重啟systemd
systemctl daemon-reload
- 第四步:設置VNC密碼,密碼要求不少于6位
su admin
sudo vncpasswd
如下圖所示:
- 第五步:用下面的命令永久開啟服務
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
連接VNC Server
- 第一步:在Windows打開安裝的VNC Client客戶端,新建連接并添加配置遠程連接的服務器各項配置
VNC Server中輸入遠程服務器的IP地址,注意最后的:1并不表示連接的遠程端口,而是VNC連接數的數從多少開始,本例是從1開始。
VNC Server服務自身使用的默認端口號為5900。因于一以服務器會有多個不同的用戶連接,所以每個用戶都會獲得不同的端口。配置文件中的數字會告訴VNC服務器在連接服務器時所運行在5900上的子端口號。在該例里面,第一個連接的用戶會運行5901(5900+1)端口上,之后依次增加,即運行的端口為5900+x,其中x為配置文件名vcnserver@:x.service里面的x。
-
第二步:連接配置的遠程服務器進行連接, 最終的連接效果如下所示:
1-8 最終實際連接效果_c2i.jpg
如果需要用到更多的用戶連接,需要創建配置文件和端口,請到前面配置VNC Server,此時需要創建的文件名需要修改為vncserver@:2.service,并替換配置文件中的用戶名和之后 步驟相應的文件夾名和端口號。
常見問題
問題一
如果是非管理員身份登錄的用戶在切換時,可能會出現如下的報錯。admin 不在 sudoers 文件中。此事將被報告。其實并不是所有用戶都能夠執行sudo,因為有權限的用戶都在/etc/sudoers中了。我們只需要打開sudoers添加當前賬號即可。切換到root賬戶,使用如下命令打開文件,并添加賬戶。
gedit /etc/sudoers
找到如下所示的配置段,添加賬號
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
admin ALL=(ALL) ALL
以上使用的是CentOS自帶的編輯器gedit
問題二
在上面配置VNC Server啟動VNC Server服務有時候不能成功,現將網上的方法整理匯總一下:
- 第一種解決方法:
rm /tmp/.X11-unix/*
- 第二種解決辦法:將vncseerver@:1.service中的Type修改為simple
- 第三種解決辦法,不斷嘗試的結果。以上兩種方法,對我所碰到的情況都無成效,一直報如下的錯誤提示:
vncserver@:1.service - Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 日 2017-04-02 00:18:30 CST; 15s ago
Process: 4146 ExecStart=/usr/sbin/runuser -l admin -c /usr/bin/vncserver %i (code=exited, status=1/FAILURE)
Process: 4139 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
為這個問題已經折騰了好久,既然這一行一直報錯,何不單獨執行這一步了。然后就在終端下面單獨執行了如下所示的命令:
/usr/sbin/runuser -l admin -c /usr/bin/vncserver %i
奇怪的事件出現了,竟然成功啟動。所以建議在學習的過程中,網上查到的解決都無效時,不妨根據系統提示,大膽嘗試,說不定就會意想不到的結果。