最近文章

Raspberry Pi 筆記(三十七):遠端桌面 VNC、Teamviewer 及RDP

[2017/3/26]
過去寫的一篇文章 - RASPBERRY PI 筆記(八),將安裝 FTP、Webmin、RDP、VNC等都放在一起,覺得太雜了,決定將這篇文章拆成幾個不同單元,分成遠端桌面、Web Server等主題。

這篇文章要談的是我如何安裝與設定軟體,讓用戶端可以不用很麻煩,每次都要到主機旁才能操作,安裝這三個遠端軟體其中一個,就可將遠端主機(如Raspberry Pi)的畫面傳回自己的電腦,不用親自跑到遠端主機就可以處理。有時協助朋友解決電腦問題,使用Teamviewer軟體,建立兩端連線,再利用電話,看著同一個畫面,討論處理的內容,減少很多要到場的麻煩。

以下紀錄我安裝 VNC、Teamview 及RDP 三套軟體的程序及方法:

[安裝VNC Server]

VNC是一種圖形桌面共享系統,可讓您從另一台電腦,執行 VNC Viewer,遠端控制另一台電腦 (執行 VNC Server) 的桌面界面。VNC Viewer將鍵盤,滑鼠或鍵盤事件發送到VNC 伺服器,並接收螢幕更新。

常見用來作為VNC Server的免費軟體就有好幾套,如 Tight VNC、Real VNC、Ultra VNC 等都是可以執行 VNC服務的系統。Raspbain 預設的 VNC版本是 RealVNC,只要到Config設定,即可開啟 VNC,執行以下指令進行設定:
$ sudo raspi-config

選擇 [5 Interfacing Options] ➔  [P3 VNC] ➔  [Yes]  即可啟動 VNC服務

如要手動安裝 RealVNC,指令如下:
$ sudo apt-get update
$ sudo apt-get install realvnc-vnc-server realvnc-vnc-viewer

執行 VNC Viewer,輸入遠端VNC Server主機的 IP,以及輸入登入帳號密碼:

按下 [Connect]後,輸入帳號密碼即可開啟遠端主機桌面。

在 Raspbian Jessie ( Debian 8)的環境下,可輸入以下幾個指令啟動或停止 VNC。

• 立即啟動VNC
$ sudo systemctl start vncserver-x11-serviced.service
• 下次開機時啟動VNC,且每次開機時都會自動啟動 VNC
$ sudo systemctl enable vncserver-x11-serviced.service
• 停止 VNC Server
$ sudo systemctl stop vncserver-x11-serviced.service
• 開機時,不再自動啟動 VNC 服務
$ sudo systemctl disable vncserver-x11-serviced.service


[安裝 TightVNC Server]

TightVNC 也是另一套蠻受歡迎的 VNC,可執行以下指令進行安裝:
$ sudo apt-get install tightvncserver

如有啟動VNC Server,可執行:
$ vncserver

第一次啟動時會要求密碼,您可輸入一次再輸入確認第二次密碼後,會詢問建立一個只能View的密碼,此時回覆No即可。

• 啟動VNC Session
$ sudo vncserver :1 -geometry 1024x728 -depth 24
• 停用VNC
$ sudo vncserver -kill :1 
• 啟動VNC服務
$ sudo service vncserver start 
• 停止VNC服務
$ sudo service vncserver stop

[設定螢幕解析度]
如要設定遠端連線開啟畫面時的解析度,可以執行 raspi-config 指令,進行設定
$ sudo raspi-config

選擇 [7 Advanced Options] ➔  [A5 Resolution] 設定解析度,如下圖。

[安裝Teamviewer]

TeamViewer是一個遠端控制軟體,相容於Microsoft Windows、Mac OS X、Linux、iOS、Android作業系統,也可以透過網頁瀏覽器連線已安裝TeamViewer的電腦。該軟體可以輕易的穿透防火牆。[維基百科]

目前 TeamViewer僅支援Raspberry Pi 2及 Pi 3,如果是 Pi 1和 Zero的使用者無法支援。如要下載程式,可以到 TeamViewer網站下載。以下是安裝的步驟與程序:

$ wget http://download.teamviewer.com/download/linux/version_11x/teamviewer-host_armhf.deb
$ sudo apt-get install -f
$ sudo dpkg -i teamviewer-host_armhf.deb;

這時在桌面上可以看到 TeamViewer的圖示,啟動後可看到可供遠端連線進來的 ID及密碼。

[安裝 XRDP Server]

遠端桌面協定(英語:Remote Desktop Protocol,縮寫:RDP)是一個多通道(multi-channel)的協定,讓使用者(用戶端或稱「本機電腦」)連上提供微軟終端機服務的電腦(伺服器端或稱「遠端電腦」)。大部份的Windows都有用戶端所需軟體。其他作業系統也有這些用戶端軟體,例如Linux、FreeBSD、Mac OS X。伺服端電腦方面,則聽取送到TCP 3389埠的資料。[維基百科]

另一種可以使用 Windows作業系統內建的遠端桌面,來當作VNC Viewer,就是在Server端安裝 XRDP,服務啟動後,就可以使用遠端桌面連接 Raspberry Pi。安裝指令如下:
$ sudo apt-get install xrdp

安裝後,從Windows作業系統執行「遠端桌面」,輸入Raspberry Pi的IP:

可以看到以下畫面,輸入帳號密碼後即可看到 Pi 的x-win桌面:


安裝 xrdp完成後,使用Windows遠端桌面連線時,會出現 error problem connecting,當時的情況有啟用VNC Server,不知是否是兩個設定衝突還是特殊的原因,重新安裝 tightvnc及 xrdp,就解決這個問題。

移除指令:
$ sudo apt-get remove xrdp vnc4server tightvncserver

安裝指令:
$ sudo apt-get install tightvncserver
$ sudo apt-get install xrdp


[參考資料]
• Raspberrypi.org:VNC (VIRTUAL NETWORK COMPUTING)
TightVNC Software
• TeamViewer

2 則留言:

  1. 請問,樹梅派連上家中Wifi,人在外面,可以用手機上VNC App透過4G無線上網,連上他嗎?

    回覆刪除
    回覆
    1. 可以, 但是你要知道家中ADSL對外連線的IP(或使用動態DNS),並在連接設備( ATUR或有線電視設備)進行通訊埠轉向,就可以連接到VNC的畫面。

      刪除