Bagaimana tepatnya cara kerja program jarak jauh seperti Penampil Tim?

34

Jika Anda menggunakan Windows RDP atau Remmina, Anda biasanya menggunakan IP (publik) atau nama host terlampir dari server untuk masuk. Saya bertanya-tanya bagaimana program jarak jauh seperti Team Viewer bekerja? Dan juga, bagaimana program tahu bagaimana mengarahkan lalu lintas itu melalui internet?

Rudolph
sumber
Saya juga ingin tahu tentang ini. : D
gumuruh

Jawaban:

25

TeamViewer, LogMeIn dan program lain apa pun yang memungkinkan zero configsesi desktop jarak jauh menggunakan server pihak ketiga.

Misalnya, LogMeIn adalah program yang mirip dengan TeamViewer di mana Anda dapat login dari jarak jauh ke komputer di luar jaringan tempat Anda berada saat ini. Anda akan melihat bahwa tidak ada konfigurasi eksternal yang diperlukan untuk jenis sesi jarak jauh ini. Ini disebabkan oleh fakta bahwa perangkat lunak yang Anda instal pada mesin jarak jauh (klien LogMeIn) memulai permintaan keluar ke server LogMeIn. Karena klien ini memulai permintaan, tidak diperlukan penerusan port pada Firewall.

Di komputer Anda, di luar jaringan komputer LogMeIn, dapat mengakses komputer ini dari jarak jauh melalui situs web LogMeIn. Situs web ini menerima permintaan yang diinisiasi dari komputer jarak jauh dan menjaga koneksi tetap hidup untuk mendengarkan permintaan sesi jarak jauh.

Ketika Anda menjalankan TeamViewer, Anda diberi ID di server broker mereka. Anda membuat koneksi ke ID Teamviewer, dan TeamViewer melewatkan koneksi melalui terowongan yang didirikan klien TeamViewer ke tujuan dan Anda kemudian Anda diminta untuk kata sandi dan kemudian koneksi terbentuk setelah itu.

kobaltz
sumber
3
Pertanyaan yang diperluas: Apakah ada kemungkinan untuk menjalankan sendiri server pihak ketiga dan membuat VNC (atau klien lain) bekerja dengan cara yang sama?
TheStoryCoder
2
Pertanyaan bagus. Dengan cara ini Anda akan berada di jalur untuk membuat perusahaan TeamViewer baru ...
giuseppe
@TheStoryCoder beruntung? Saya pikir kita perlu membuat protokol komunikasi terlebih dahulu antara server dan klien, kemudian membangun server tcp. RDP adalah protokol default oleh windows, tetapi saya kira itu tidak dirancang untuk mendukung ini. Saya tahu bahwa TeamViewer menggunakan protokol mereka sendiri. Saya benar-benar berharap seseorang di luar sana sudah membuat proyek opensource untuk itu :)
Altiano Gerung
@TheStoryCoder Cara sederhana tetapi dengan keamanan yang lebih rendah: Anda dapat menginstal server OpenVpn (server A) dan PC Anda (PC A) terhubung ke internet melalui server itu. Dan Anda memiliki PC lain (PC B) hanya menerima koneksi masuk atau desktop jarak jauh (jika windows) dari server VPN Anda. Dengan begitu Anda dapat terhubung ke PC B dari PC A Anda yang membuat koneksi melalui server A.
Janaka R Rajapaksha
8

Teamviewer menggunakan port 80 untuk membuat koneksi ke server pusat. Jika koneksi dibuat, Anda mendapatkan ID unik, dan server tahu Anda sedang online. Semua komunikasi dapat terjadi melalui port 80 jika port lain diblokir.

Teamviewer memungkinkan Anda untuk terhubung langsung ke alamat IP. Anda harus mengatur ini di opsi, untuk memungkinkan koneksi LAN yang masuk. Ini bekerja untuk jaringan lokal, dan mungkin untuk jaringan WAN juga, tetapi kemudian Anda harus bekerja portforwarding, untuk mendapatkan port 80 untuk terhubung ke komputer yang tepat di belakang router / firewall. Itu membuat segalanya menjadi sulit bagi kebanyakan orang, dan tidak dapat diatur untuk sebagian besar sisanya, jadi kami menggunakan metode ID Teamviewer.

Saya tidak tahu apakah ini berarti semua lalu lintas berjalan melalui server teamviewer, tapi mungkin saja. (Dan ketika mendaftar semua klik dan penekanan tombol, itu mungkin berarti bahwa mereka bisa - secara teori - dan karena kita tahu tentang PRISM dll mungkin dalam kenyataannya juga - tahu tentang semua login dan kunci rahasia Anda.)

SPRBRN
sumber
3

Inilah yang dikatakan perusahaan dalam Pernyataan Keamanan mereka :

Saat membuat sesi, TeamViewer menentukan jenis koneksi yang optimal. Setelah berjabat tangan melalui server master kami, koneksi langsung melalui UDP atau TCP dibuat di 70% dari semua kasus (bahkan di belakang gateway standar, NAT, dan firewall). Sisa koneksi dirutekan melalui jaringan router kami yang sangat berlebihan melalui TCP atau https-tunneling. Anda tidak perlu membuka port apa pun untuk dapat bekerja dengan TeamViewer!

Seperti kemudian dijelaskan dalam paragraf "Enkripsi dan Otentikasi," bahkan kita, sebagai operator dari server routing, dapat membaca lalu lintas data yang dienkripsi

Begitu:

  • 1) seperti yang disarankan orang lain, koneksi awal dari kedua klien diprakarsai klien dan melewati port 80 sehingga tidak memiliki masalah dengan NAT atau firewall, dapat melalui proxy web, dll. Setelah ini, semuanya sudah diatur dan keduanya klien harus terhubung satu sama lain, maka:
  • 2.1) mungkin menggunakan UPnP atau lubang NAT untuk dapat melakukan koneksi yang sebenarnya antara kedua klien, atau
  • 2.2) jika tidak memungkinkan akan merutekan lalu lintas melalui server mereka, yang akan lebih lambat dan dapat dimata-matai (namun mereka menyatakan bahwa data dienkripsi ujung ke ujung, dalam hal itu tidak akan menjadi masalah)
golimar
sumber
solusi opensource apa saja yang mungkin Anda ketahui?
Altiano Gerung
@AltianoGerung Saya tidak tahu ada yang open source yang bekerja tanpa membuka port seperti Teamviewer
golimar
0

Sebagian besar aplikasi seperti TeamViewer merutekan hal-hal melalui server mereka jika tidak ada jalur langsung yang tersedia, oleh karena itu memotong kebutuhan untuk menggunakan IP publik dan membuka port.

mendalam
sumber