Windows下使用VNC串連CentOS7遠端桌面

來源:互聯網
上載者:User

標籤:cnnntos7   vnc   tigervnc   遠端連線centos   

在實際維護遠程linux伺服器主機時,有時候純命令列模式可能無法滿足我們的需要,這時候需要使用遠程主機的GUI模式,即能看到伺服器的案頭,一般會使用兩種方式:Xmanager或者VNC。我一開始使用的是Xmanager,版本是Xmanager5 Enterprise,但是在串連伺服器時,可以串連上(已經看到主機名稱),卻無法開啟案頭,折騰了很久終於放棄,選擇了VNC,相比之下方便很多。下面就自己的實踐經驗小結下,需要的朋友可以看看。
說明下我這裡CentOS主機已經安裝了Gohome案頭,沒有安裝的請安裝一個gui案頭。

一、Linux主機安裝VNC服務1、安裝vnc-server

VNC分為服務端和用戶端,linux伺服器主機需要安裝vncserver,centos7下一般使用tigervnc。
root下執行命令:

#yum install -y tigervnc-server

安裝完畢後需要配置。

2、配置vnc-server

進入目錄

#cd /lib/systemd/system#ls

我們會看到有個service叫做[email protected],這就是我們需要的vnc服務。但是需要對它進行配置才可以使用。假設我們當前為root使用者配置遠端桌面,配置流程如下:

首先,複製該service,命名為[email protected]:1.service,

#cp vncserver@.service [email protected]:1.service

然後修改[email protected]:1.service

#vi vncserver@:1.service

看到如下文本:

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
# 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 < User> -c “/usr/bin/vncserver %i ”
PIDFile=/home/< User>/.vnc/%H%i.pid
ExecStop=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :’

[Install]
WantedBy=multi-user.target

這裡需要且只需要做一種替換:將< User>替換為需要配置的使用者。注意因為root的home目錄就是/root/,而不是/home/root/,所以替換後文本如下:

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
# 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 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 || :’

[Install]
WantedBy=multi-user.target

如果是非root使用者,例如使用者admin,PIDFile處應該是:

ExecStart=/sbin/runuser -l admin -c “/usr/bin/vncserver %i ”
PIDFile=/home/admin/.vnc/%H%i.pid

最後Esc+:wq儲存退出。

3、啟動vnc-server

在剛才的設定檔中,有這樣一段說明:

# Quick HowTo:
# 1. Copy this file to /etc/systemd/system/[email protected]:.service
# 2. Edit and vncserver parameters appropriately
# (“runuser -l -c /usr/bin/vncserver %i -arg1 -arg2”)
# 3. Run systemctl daemon-reload
# 4. Run `systemctl enable [email protected]:.service

即配置完後,還需執行

#systemctl daemon-reload#systemctl enable [email protected]:1.service

然後開啟vnc服務

#systemctl start vncserver@:1.service

查看啟動是否成功

#systemctl status vncserver@:1.service

如果現實active即表示開啟成功。下面設定下vnc串連密碼,
執行

#vncpassword

提示輸入密碼並確認,這是供遠端連線時驗證用的,自己設定一下即可。配置好以後可以重啟下vnc服務

#systemctl restart vncserver@:1.service
4、配置防火牆

vnc服務雖然開啟了,但是如果遠程用戶端需要串連,還需要為防火牆增加配置以開放連接埠。一般vnc服務是以590+x作為訪問連接埠,x為配置的[email protected]:x,例如此處的[email protected]:1.service,則連接埠是5901。
執行命令

#vi /etc/sysconfig/iptables

-A INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT

下方添加配置

-A INPUT -p tcp -m state –state NEW -m tcp –dport 5901 -j ACCEPT

然後儲存退出,重啟防火牆。到這裡基本的vnc服務端配置就結束了。

二、用戶端遠端連線

配置好了服務端的vnc服務後,遠程就可以串連了。這裡使用的是win7下串連,用戶端使用的是tigervnc-1.5.0,百度下一般都有,下載後直接安裝,安裝過程中可以去掉作為服務端的勾選,不過沒關係。之後進入安裝目錄,找到vncviewer.exe,雙擊執行,輸入ip和連接埠號碼,點擊connection即可,然後按照提示輸入之前配置的訪問密碼,斷行符號,即可看到遠端linux主機案頭。

三、開啟多個vncserver

有時候我們可能需要不止一個使用者的案頭環境,比如我在遠程安裝oracle時,還需要一個oracle使用者的案頭環境,而之前僅僅配置了root使用者的,下面介紹下配置多使用者的vncserver。配置思路很簡單,就是配置多個[email protected]:n.service。

1、複製[email protected]

假設我們的使用者已經建立好,這裡以admin為例。首先以root使用者登入,在

#cd /lib/systemd/system

目錄下,和前述一樣,拷貝設定檔,不過這裡不是:1,而是:2,數字可以自己設定,一般遞增。

#cp vncserver@.service [email protected]:2.service

然後修改[email protected]:2.service

#vi vncserver@:2.service

修改配置

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
# 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 admin -c “/usr/bin/vncserver %i ”
PIDFile=/home/admin/.vnc/%H%i.pid
ExecStop=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :’

[Install]
WantedBy=multi-user.target

儲存退出。然後按照設定檔提示,執行

#systemctl daemon-reload#systemctl enable [email protected]:2.service
2、修改vnc登入驗證密碼

執行完畢後,切換到admin賬戶,執行

$vncserver :2

會要求輸入驗證密碼

You will require a password to access your desktops.

Password:
Verify:
xauth: file /home/admin/.Xauthority does not exist

New ‘localhost.localdomain:2 (admin)’ desktop is localhost.localdomain:2

Creating default startup script /home/admin/.vnc/xstartup
Starting applications specified in /home/admin/.vnc/xstartup
Log file is /home/admin/.vnc/localhost.localdomain:2.log

3、啟動服務

之後切換回root,執行

#systemctl deamon-reload#systemctl start [email protected]:2.service

這時候提示啟動不成功,執行命令

#vncserver :2

提示已經有一個vncserver as :2 running了,這時候我們先要殺掉這個進程,執行命令

#vncserver -kill :2

但一般沒有用,那麼我們

# ps -ef | grep vnc

查看vncserver :2的進程id,如pid為1311,則執行

#kill -9 1311

然後再執行

#systemctl start vncserver@:2.service

還是報錯,查看日誌,

#journalctl -xn

提示需要刪除/tmp/.X2-lock
執行

#rm /tmp/.X2-lock

再次啟動

#systemctl start vncserver@:2.service

還是報錯,查看日誌,提示需要刪除/tmp/.X11-unix/X2
執行

#rm /tmp/.X11-unix/X2

再次啟動

#systemctl start vncserver@:2.service

終於不報錯了,然後查看狀態

#systemctl status vncserver@:2.service

發現已經啟動,則完成。之後注意不要忘了如前述配置防火牆。

到此為止就結束了所有的配置,在實際啟動過程中可能會遇到各種各樣的問題,大家只要靜下心來查看日誌,一般都能解決。有錯誤的地方,還望指正。

最後推薦一篇不錯的文章:CentOS7安裝配置VNC。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Windows下使用VNC串連CentOS7遠端桌面

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.