Windows下通過VNC訪問Linux伺服器(視覺化介面)
問題:
實習公司用的是伺服器,我們只能使用SecureCRT通過指令進行類似linux系統下終端的指令操作,如下圖:
而上傳檔案就要通過WinSCP:
一般的工作,不需要視覺化介面也能完成
可是,當我們有些操作需要顯示出來,就有問題了,例如我們訓練完ssd,想在圖片或者視訊上測試,看看效果:
沒辦法顯示!!
所以,我就想實現伺服器也能視覺化!
VNC介紹:
VNC (Virtual Network Console),即虛擬網路控制檯,它是一款基於 UNIX 和 Linux 作業系統的優秀遠端控制工具軟體,由著名的 AT&T 的歐洲研究實驗室開發,遠端控制能力強大,高效實用,並且免費開源。
VNC基本上是由兩部分組成:一部分是客戶端的應用程式(vncviewer);另外一部分是伺服器端的應用程式(vncserver)。
在任何安裝了客戶端的應用程式(vncviewer)的計算機都能十分方便地與安裝了伺服器端的應用程式(vncserver)的計算機相互連線。
安裝方法:
因為我是想實現Windows系統下遠端開啟伺服器,並實現視覺化
所以我這裡的客戶端就是Windows系統,伺服器端就是Linux系統
(1)安裝vncviewer
先去VNC的官網下載上述的vncviewer
然後,按照下圖1,2,3的箭頭:
選擇windows系統,
選擇64位的系統(如果你係統是32位,就選第二個,即X86),
然後點選DOWNLOAD VNC VIEWER
下載,完成後,得到該檔案,雙擊安裝即可:
安裝後如下:
(2)Linux伺服器端安裝vncserver
終端輸入:
sudo apt-get install vnc4server
系統就會自動安裝vncserver
(3)開啟vnc服務
安裝成功後,需要開啟vnc服務
終端輸入:
vncserver
首次啟動會要求設定密碼(不能超過8位,我第一次輸入了9位,然後它就只取了我輸入的前8位作為密碼),用來在客戶端訪問時使用,後面可以使用vncpasswd 修改。
執行完vncserver設定密碼後,
我這裡輸入的是 vncserver :2 因為埠1已經被另外一個小夥伴用了(注意vncserver :2中vncserver和冒號之間有個空格哦!!)
New 'dw:2 (lincanran)' desktop is dw:2
Starting applications specified in /home/lincanran/.vnc/xstartup
Log file is /home/lincanran/.vnc/dw:2.log
即此時vncserver已經產生了一個新的桌面,其中的:2是埠號,用於vnc客戶端遠端連線埠的。
並且會根據//home/lincanran/.vnc/xstartup(即使用者主目錄下的 .vnc/xstartup)檔案的配置進行啟動,
相關的log執行記錄儲存在/home/lincanran/.vnc/dw:2.log
啟動vnc成功後,會在主目錄下產生一個.vnc目錄
預設的配置檔案是~/.vnc/xstartup。
剛安裝完如果不修改配置檔案的話,從客戶端連線時將看不到完整的桌面,而只有一個Terminal視窗,如下所示:
也就是隻有一個終端視窗沒有圖形介面,這顯然不是我們想要的,那麼如何圖形化訪問呢?這就需要修改vnc的配置檔案xstartup。
(4)修改原有xstartup檔案以圖形化訪問
終端輸入:
sudo vim /home/lincanran/.vnc/xstartup
後面的 /home/lincanran/.vnc/xstartup 就是你的xstartup配置檔案所在的地址,根據你自己的地址修改一下
預設配置檔案~/.vnc/xstartup如下:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
將所有內容替換為下面的內容即可:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
# 上面這句話在XUbuntu桌面環境下開啟vnc的話最好取消註釋
#exec /etc/X11/xinit/xinitrc
#上面這行先不要開啟
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#gnome-session &
#x-window-manager &
#下面這塊主要是針對運用xfce4管理桌面
x-session-manager & xfdesktop & xfce4-panel &
xfce4-menu-plugin &
xfsettingsd &
xfconfd &
xfwm4 &
我一開始就是這裡沒有填對,所以導致出現灰色螢幕和×型滑鼠,原因是是vncserver找不到指定的圖形化軟體
後來,將xstartup檔案替換成上面的內容後,就沒問題啦!
(5)先停止vncserver服務
配置完成後,我們需要先kill停止一下之前開啟的vncserver
終端輸入:
vncserver -kill :2
(6)重新啟動vncserver服務
終端輸入:
vncserver :2
這時候我們得到埠號為2
(7)客戶端vncviewer建立連線
配置好伺服器端,接下來就很簡單了,就是通過之前安裝好的Windows下的vncviewer建立連線,去訪問伺服器
開啟vncviewer:
大家忽視我下面已經建立好的連線哈!!
點選左上角File,然後點選New Connection:
這裡只需要填2個地方:
即VNC Server和Name
VNC Server就是你需要訪問的伺服器的地址IP,注意:地址後面還要加上
:2
因為我們剛剛分配的埠就是2
例如,這個地址是我隨便寫的哈,你換成你自己的就好,然後後面加上:2即可:
172.11.111.11:2
Name就很隨意了,就是你給這個連線起的名字
最後如下圖:
點選OK,建立連線
(8)客戶端vncviewer啟動連線
然後我們只需雙擊這個,即可啟動連線
注意:啟動連線之前,要保證你伺服器端,已經開啟服務了,也就是已經輸入過:
vncserver :2
並且有如下的資訊輸出:
看到可愛的小老鼠,就是訪問成功啦!
我們可以很方便地以視覺化的方式看到之前得在WinSCP看到的檔案:
我們接下來試一下,跑SSD程式碼來測試視訊檔案,並顯示出來:
測試成功!!!
視覺化介面果然比純命令列用起來爽多了啊!