Linux – TeamViewer

遠端桌面的第一選擇應該是 TeamViewer 了.

下載點 : https://www.teamviewer.com/tw/download , 我用過的系統都有支援.

不像是 Linux 常用的 VNC(Virtual Network Computing) 或是 Windows 的 Remote Desktop (需要知道對方的 IP 或是 Hostname 兩端有設定好就可以進行連線),TeamViewer 透過 ID 的方式來進行 (需要透過 TeamViewer Server 才能進行連線,如下圖所示)

測試環境為 CentOS7 x86_64

安裝 TeamViewer

透過 yum 安裝 rpm 套件的好處是,有區套件時系統會自動幫忙補齊(#rpm -ivh 指令則無法)

[root@localhost ~]# wget https://download.teamviewer.com/download/linux/teamviewer.x86_64.rpm
[root@localhost ~]# yum install teamviewer.x86_64.rpm 
[root@localhost ~]# teamviewer


左半部 (Allow Remote Control) 是你的 TeamViewer ID 是固定不變的,重開機也不會變,但密碼重開機會改變.右半部 (Control Remote Computer) 可以設定連線遠端的 teamviewer .輸入對方 Parther ID 後需入密碼就可以連線了.

雖然不需要知道對方的 IP ,但 Teamviewer 實際是透過哪一個 TCP Port 出去的?

安裝,啟動 teamviewer 之後可以透過 netstat – http://benjr.tw/22383 ,或是 ss(Socket Statistics) – http://benjr.tw/267 來顯示連線狀態.

[root@localhost ~]# netstat -tnpu | grep -i teamviewer
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:5939          127.0.0.1:34248         ESTABLISHED 1137/teamviewerd    
tcp        0      0 192.168.95.133:59496    159.8.191.8:5938        ESTABLISHED 1137/teamviewerd    
tcp        0      0 127.0.0.1:34248         127.0.0.1:5939          ESTABLISHED 2656/TeamViewer     

可以看到我的 Teamviewer Remote Control 192.168.95.133:59496 連線到 Teamviewer server 159.8.191.8:5938 ( TeamViewer 使用Port 5938 ).

依據 https://community.teamviewer.com/t5/Knowledge-Base/Which-ports-are-used-by-TeamViewer/ta-p/4139 說明,當 5938 無法使用時,會使用 Port 443 不行則用 Port 80 (非所有的作業系統皆採相同模式,如下圖)

另外一套 Anydesk 做法也是類似,根據官方文件 https://support.anydesk.com/Firewall 說明使用的 TCP-Ports 為 80, 443 以及 6568.

當遠端有人連線進來後.

[root@localhost ~]# netstat -tnpu | grep -i teamviewer
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 192.168.95.133:32928    37.252.243.4:5938       ESTABLISHED 1137/teamviewerd    
tcp        0      0 127.0.0.1:5939          127.0.0.1:34248         ESTABLISHED 1137/teamviewerd    
tcp        0      0 127.0.0.1:34258         127.0.0.1:5939          ESTABLISHED 2916/TeamViewer_Des 
tcp        0      0 127.0.0.1:5939          127.0.0.1:34258         ESTABLISHED 1137/teamviewerd    
tcp        0      0 192.168.95.133:59496    159.8.191.8:5938        ESTABLISHED 1137/teamviewerd    
tcp        0      0 127.0.0.1:34248         127.0.0.1:5939          ESTABLISHED 2656/TeamViewer     

除了 192.168.95.133:59496 <- > 159.8.191.8:5938
多了 192.168.95.133:32928 <- > 37.252.243.4:5938

在 TCP port 裡面定義 49152 到 65535 號埠屬於動態範圍沒有被占用,使用者上網就是透過這幾個動態埠與網站連線,下面可以看到我透過 firefox 連上 http://benjr.tw ,是透過 41744 埠

[root@localhost ~]# netstat -tnpu 
tcp        0      0 192.168.95.135:41744    139.162.22.140:80       ESTABLISHED 2305/firefox 

teamviewer 也是利用動態埠與 teamviewer server (Port : 5938) 連線,只要公司允許 5938(TeamViewer) 或是 443 (https) ,80 (http) 連線,這樣 teamviewer 就可以正常連線 (這就是為什麼有人會說 teamviewer 不受防火牆的限制).

但是公司還是可以直接封鎖目的端使用 TCP PORT 5938 來防止內部員工使用 TeamViewer ( 也可以封鎖 *.teamviewer.com 來連接 ) .

TeamViewer 適合的使用時機.

  1. 公司內部 (使用 Private IP)
    Teamviewer 不需要知道對方的 IP 就可以進行連線,主要透過 ID 與 password ,這都還需要透過 Teamviewer 的 server 協助連線,所以你的電腦需有 5938(TeamViewer) 或是 443 (https) ,80 (http) 連線的功能.

    如果是使用在內部網路,無網際網路連線時,是無法透過 teamviewer 連線的,建議使用 Linux VNC – http://benjr.tw/3318 或是 Windows Remote Desktop.

  2. 有網際網路連線的電腦
    一般使用者不會查詢自己電腦使用的 IP ,這時候透過 Teamviewer 不需要知道對方的 IP 就可以進行連線,透過 ID 與 password.
沒有解決問題,試試搜尋本站其他內容

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料