2021-05-12 14:32:11
Ubuntu 16.10安裝Xfce桌面與VNC遠端連線
在遠端伺服器上執行桌面
通常在遠端Linux伺服器上工作時,您可以使用ssh終端。 但是,有時您需要在伺服器上執行GUI應用程式,並保持執行一段時間。
最近我不得不做類似的事情,所以我設定一個Ubuntu伺服器與桌面,並通過VNC存取它。
這個想法實現很簡單。 在伺服器上安裝您選擇的任何桌面環境。 在本教學中,我們將使用Xfce,因為它與Gnome和KDE相比更具小巧。
然後使用vnc伺服器啟動桌面環境,並建立一個X顯示對談,我們將通過vnc用戶端從本地桌上型電腦存取。
安裝桌面環境和VNC伺服器
Xfce是一款輕量級桌面,非常適合在遠端伺服器上使用。 首先安裝xfce軟體包和tightvnc伺服器。 在進行實際安裝之前,最好先更新包快取。
sudo apt-get update
sudo apt-get install xfce4 xfce4-goodies tightvncserver
請注意,這將只安裝包,而不是啟動任何東西。 我們將在本指南後面自行啟動具體設定的vncserver。
如果dpkg進程意外退出,則可能必須執行以下命令 -
#sudo dpkg --configure -a
為vnc建立一個新使用者
接下來要做的是建立一個將在vnc對談期間使用的unix使用者。 使用者名稱可以是任何東西。 使用adduser命令。
# adduser mike
Adding user `mike' ...
Adding new group `mike' (1001) ...
Adding new user `mike' (1001) with group `mike' ...
Creating home directory `/home/mike' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for mike
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
#
vncserver將使用此unix使用者啟動桌面環境。 這意味著,在遠端桌面上工作時,您將成為此使用者
為使用者設定“vnc密碼”
vnc伺服器維護一個單獨的密碼,用於通過vnc用戶端登入到vnc伺服器。 該密碼與unix使用者密碼不同。 它使用vncpasswd命令設定。
首先切換到上一步中建立的使用者“mike”,並設定vnc伺服器密碼。
su - mike
接下來使用vncpasswd命令
$ vncpasswd
Using password file /home/mike/.vnc/passwd
VNC directory /home/mike/.vnc does not exist, creating.
Password:
Verify:
Would you like to enter a view-only password (y/n)?
mike@bunty:~$
請注意,passwd檔案不存在,並在此步驟中首次建立。
如果您以前已經執行vncserver命令,那麼它將建立檔案。 當您第一次執行vncserver時,它會建立一個預設啟動指令碼
$ vncserver
You will require a password to access your desktops.
Password:
Password too short
enlightened@desktop:~$ vncserver
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
New 'X' desktop is desktop:1
Creating default startup script /home/enlightened/.vnc/xstartup
Starting applications specified in /home/enlightened/.vnc/xstartup
Log file is /home/enlightened/.vnc/desktop:1.log
但是,我們不需要執行vncserver命令。 它將使用啟動指令碼自動啟動。
建立xstartup指令碼
下一個重要的檔案是xstartup指令碼。 它包含有關哪些X應用程式開始的說明。 桌面環境是我們必須開始的X應用程式。
如果檔案已經存在,首先要備份該檔案
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
現在用nano編輯它
vnc@server:~$ nano .vnc/xstartup
註 - 這是使用者vnc的主目錄,即/home/mike/.vnc/xstartup
在xstartup指令碼中輸入以下幾行
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
startxfce4命令將啟動xfce桌面。 儲存檔案並關閉它。
使xstartup檔案可執行。 這是必要的,以便vncserver可以執行此檔案。
$ chmod +x ~/.vnc/xstartup
建立vnc服務檔案
下一步是建立vnc服務檔案,以便我們可以使用service命令啟動vnc伺服器,而不必每次都執行vncserver命令。
確保在USER變數中輸入正確的使用者名稱。 這是vnc伺服器將用於啟動桌面對談的使用者。
root@linuxidc:~# sudo nano /etc/init.d/vncserver
貼上以下指令碼
#!/bin/bash
PATH="$PATH:/usr/bin/"
export USER="mike"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
. /lib/lsb/init-functions
case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;
stop)
log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;
restart)
$0 stop
$0 start
;;
esac
exit 0
儲存檔案並關閉它。 使其可執行
# chmod +x /etc/init.d/vncserver
開始服務
開始並測試我們的步驟。
首先重新載入systemctl,以便它可以使用vncserver啟動指令碼。
systemctl守護行程重新載入
現在啟動vncserver。 它在埠5901上啟動伺服器
#service vncserver start
檢查它的執行
root@linuxidc:~# service vncserver status
● vncserver.service
Loaded: loaded (/etc/init.d/vncserver; bad; vendor preset: enabled)
Active: active (exited) since Thu 2017-03-02 05:36:42 UTC; 6s ago
Docs: man:systemd-sysv-generator(8)
Process: 24877 ExecStart=/etc/init.d/vncserver start (code=exited, status=0/SUCCESS)
Mar 02 05:36:40 linuxidc systemd[1]: Starting vncserver.service...
Mar 02 05:36:40 linuxidc vncserver[24877]: * Starting vncserver for user 'vnc' on localhost:1...
Mar 02 05:36:40 linuxidc su[24885]: Successful su for vnc by root
Mar 02 05:36:40 linuxidc su[24885]: + ??? root:vnc
Mar 02 05:36:40 linuxidc su[24885]: pam_unix(su:session): session opened for user vnc by (uid=0)
Mar 02 05:36:42 linuxidc vncserver[24877]: New 'X' desktop is linuxidc:1
Mar 02 05:36:42 linuxidc vncserver[24877]: Starting applications specified in /home/vnc/.vnc/xstartup
Mar 02 05:36:42 linuxidc vncserver[24877]: Log file is /home/vnc/.vnc/linuxidc:1.log
Mar 02 05:36:42 linuxidc systemd[1]: Started vncserver.service.$ cat ~/.vnc/*.pid
18577
18731# ps -ef | grep tightvnc
vnc 24574 1 0 05:32 ? 00:00:00 Xtightvnc :1 -desktop X -auth /home/vnc/.Xauthority -geometry 1024x768 -depth 16 -rfbwait 120000 -rfbauth /home/vnc/.vnc/passwd -rfbport 5901 -fp /usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb
root 24744 10412 0 05:33 pts/0 00:00:00 grep --color=auto tightvnc
root@linuxidc:~#
檢查vnc伺服器的開啟埠。 從vnc用戶端連線時,需要正確的埠號
# netstat -nlp | grep vnc
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 24574/Xtightvnc
tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 24574/Xtightvnc
unix 2 [ ACC ] STREAM LISTENING 5225386 24574/Xtightvnc /tmp/.X11-unix/X1
Vnc server can also be started by calling the script directly.
也可以通過直接呼叫指令碼來啟動Vnc伺服器。
# /etc/init.d/vncserver start
[ ok ] Starting vncserver (via systemctl): vncserver.service.
root@linuxidc:~#
停止vncserver
# service vncserver stop
在桌面上安裝vncviewer用戶端
現在,我們將vnc伺服器啟動並執行GUI桌面環境。
在Ubuntu上安裝xtightvncviewer。
$ sudo apt-get install xtightvncviewer
現在使用vncviewer命令連線到遠端vnc伺服器。
$ vncviewer -quality 5 -encodings“copyrect tight hextile zlib corre rre raw”-compresslevel 5 IPADDR:5901
我們使用較低品質和壓縮編碼來壓縮正在傳輸的影象資料並使其更快。
使用像KRDC這樣的其他vnc檢視器可能會更慢。
CentOS7.1安裝VNC,讓Win7遠端桌面Linux http://www.linuxidc.com/Linux/2017-05/143346.htm
CentOS 7 安裝設定 VNC 詳解 http://www.linuxidc.com/Linux/2017-05/143324.htm
Ubuntu下安裝設定VNC遠端工具 http://www.linuxidc.com/Linux/2017-03/141936.htm
更多Ubuntu相關資訊見Ubuntu 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=2
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-07/145552.htm
相關文章