Linux 基礎教程 01-遠程連接

最近開始學習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/ ,在下載頁面中選中對應的版本即可。如下圖所示:

1-1 VNC Server下載地址_c2i.jpg

??Windows中安裝比較簡單,根據向導點擊安裝即可。

Server端

Server端安裝配置相對比較復雜,在安裝前需要將CentOS連網

安裝VNC Server

  • 第一步:打開終端切換到管理員權限,如果已經是管理員身份則跳過這一步,使用的命令如下:
sudo -s
  • 第二步:在線安裝VNC Server,在終端中輸入命令,如下所示:
 yum install vnc vnc-server

安裝過程如下圖所示:


1-3 安裝VNC Server_c2i.jpg

配置VNC Server

  • 第一步:復制一份配置文件模板到/etc/systemd/system中,并進行配置。
cp /lib/systemd/system/vncserver@.service  /etc/systemd/system/vncserver@:1.service
1-4 復制配置文件夾模板.jpg
  • 第二步:使用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

如下圖所示:


1-5 設置用戶密碼.jpg
  • 第五步:用下面的命令永久開啟服務
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
1-6 配置防火墻.jpg

連接VNC Server

  • 第一步:在Windows打開安裝的VNC Client客戶端,新建連接并添加配置遠程連接的服務器各項配置
1-7 連接服務器_c2i.jpg

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

奇怪的事件出現了,竟然成功啟動。所以建議在學習的過程中,網上查到的解決都無效時,不妨根據系統提示,大膽嘗試,說不定就會意想不到的結果。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容