遠端桌面的第一選擇應該是 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 – https://benjr.tw/22383 ,或是 ss(Socket Statistics) – https://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 連上 https://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 適合的使用時機.
- 公司內部 (使用 Private IP)
Teamviewer 不需要知道對方的 IP 就可以進行連線,主要透過 ID 與 password ,這都還需要透過 Teamviewer 的 server 協助連線,所以你的電腦需有 5938(TeamViewer) 或是 443 (https) ,80 (http) 連線的功能.如果是使用在內部網路,無網際網路連線時,是無法透過 teamviewer 連線的,建議使用 Linux VNC – https://benjr.tw/3318 或是 Windows Remote Desktop.
- 有網際網路連線的電腦
一般使用者不會查詢自己電腦使用的 IP ,這時候透過 Teamviewer 不需要知道對方的 IP 就可以進行連線,透過 ID 與 password.