โปรแกรมระยะไกลเช่น Team Viewer ทำงานอย่างไร


34

หากคุณใช้ Windows RDP หรือ Remmina โดยปกติคุณจะใช้ IP (สาธารณะ) หรือชื่อโฮสต์ที่แนบของเซิร์ฟเวอร์เพื่อเข้าสู่ระบบ ฉันสงสัยว่าโปรแกรมระยะไกลเช่นTeam Viewerทำงานอย่างไร และโปรแกรมรู้ได้อย่างไรว่าจะกำหนดเส้นทางการรับส่งข้อมูลผ่านอินเทอร์เน็ตได้อย่างไร


ฉันยังอยากรู้เกี่ยวกับเรื่องนี้ : D
gumuruh

คำตอบ:


25

TeamViewer, LogMeIn และโปรแกรมอื่น ๆ ที่อนุญาตให้zero configเซสชันเดสก์ท็อประยะไกลใช้เซิร์ฟเวอร์บุคคลที่สาม

ตัวอย่างเช่น LogMeIn เป็นโปรแกรมที่คล้ายกับ TeamViewer ซึ่งคุณสามารถเข้าสู่ระบบจากระยะไกลไปยังคอมพิวเตอร์นอกเครือข่ายที่คุณใช้งานอยู่ คุณจะสังเกตเห็นว่าไม่มีการกำหนดค่าภายนอกที่จำเป็นสำหรับเซสชันระยะไกลประเภทนี้ นี่เป็นเพราะความจริงที่ว่าซอฟต์แวร์ที่คุณติดตั้งบนเครื่องระยะไกล (ไคลเอนต์ LogMeIn) เริ่มต้นการร้องขอขาออกไปยังเซิร์ฟเวอร์ LogMeIn เนื่องจากไคลเอนต์นี้เริ่มต้นคำขอไม่จำเป็นต้องส่งต่อพอร์ตบนไฟร์วอลล์

บนคอมพิวเตอร์ของคุณนอกเครือข่ายของคอมพิวเตอร์ LogMeIn สามารถเข้าถึงคอมพิวเตอร์เครื่องนี้จากระยะไกลผ่านเว็บไซต์ของ LogMeIn เว็บไซต์นี้ยอมรับการร้องขอที่เริ่มต้นจากคอมพิวเตอร์ระยะไกลและทำให้การเชื่อมต่อมีชีวิตอยู่เพื่อรับฟังคำขอของเซสชันระยะไกล

เมื่อคุณเรียกใช้ TeamViewer คุณจะได้รับ ID บนเซิร์ฟเวอร์โบรกเกอร์ คุณทำการเชื่อมต่อกับ Teamviewer ID และ TeamViewer ส่งการเชื่อมต่อผ่านอุโมงค์ที่ลูกค้าสร้างขึ้นของ TeamViewer ไปยังปลายทางจากนั้นคุณจะได้รับพร้อมท์ให้ใส่รหัสผ่านจากนั้นการเชื่อมต่อจะเกิดขึ้นในภายหลัง


3
คำถามเพิ่มเติม: มีความเป็นไปได้ที่จะเรียกใช้เซิร์ฟเวอร์บุคคลที่สามดังกล่าวด้วยตัวคุณเองและทำให้ VNC (หรือไคลเอนต์อื่น ๆ ) ทำงานในลักษณะเดียวกันได้หรือไม่?
TheStoryCoder

2
คำถามที่ดี. ด้วยวิธีนี้คุณจะอยู่บนเส้นทางสำหรับการสร้าง บริษัท TeamViewer ใหม่ ...
giuseppe

@TheStoryCoder โชคใด ๆ ฉันคิดว่าเราจำเป็นต้องสร้างโปรโตคอลการสื่อสารก่อนระหว่างเซิร์ฟเวอร์และไคลเอนต์จากนั้นสร้างเซิร์ฟเวอร์ tcp RDP เป็นโปรโตคอลเริ่มต้นโดย windows แต่ฉันเดาว่ามันไม่ได้ออกแบบมาเพื่อรองรับสิ่งนี้ ฉันรู้ว่า TeamViewer ใช้โปรโตคอลของตนเอง ผมหวังว่าคนที่ออกมีอยู่แล้วสร้างโครงการ opensource มัน :)
Altiano Gerung

@TheStoryCoder วิธีง่ายๆ แต่มีความปลอดภัยน้อยกว่า: คุณสามารถมีเซิร์ฟเวอร์ที่ติดตั้ง OpenVpn (เซิร์ฟเวอร์ A) และพีซีของคุณ (PC A) เชื่อมต่อกับอินเทอร์เน็ตผ่านเซิร์ฟเวอร์นั้น และคุณมีพีซีอื่น (PC B) ยอมรับเฉพาะการเชื่อมต่อขาเข้าหรือเดสก์ท็อประยะไกล (ถ้า Windows) จากเซิร์ฟเวอร์ VPN ของคุณ ด้วยวิธีนี้คุณสามารถเชื่อมต่อกับพีซี B จากพีซี A ของคุณซึ่งสร้างการเชื่อมต่อผ่านเซิร์ฟเวอร์ A.
Janaka R Rajapaksha

8

Teamviewer ใช้พอร์ต 80 เพื่อเชื่อมต่อกับเซิร์ฟเวอร์กลาง หากทำการเชื่อมต่อคุณจะได้รับ ID ที่ไม่ซ้ำกันและเซิร์ฟเวอร์รู้ว่าคุณออนไลน์ การสื่อสารทั้งหมดสามารถเกิดขึ้นได้ผ่านพอร์ต 80 หากพอร์ตอื่นถูกบล็อก

Teamviewer อนุญาตให้คุณเชื่อมต่อโดยตรงกับที่อยู่ IP คุณต้องตั้งค่านี้ในตัวเลือกเพื่ออนุญาตการเชื่อมต่อ LAN ที่เข้ามา วิธีนี้ใช้ได้กับเครือข่ายท้องถิ่นและอาจใช้กับเครือข่าย WAN ได้เช่นกัน แต่คุณต้องทำงานพอร์ตต่อไปเพื่อรับพอร์ต 80 เพื่อเชื่อมต่อกับคอมพิวเตอร์ด้านขวาหลังเราเตอร์ / ไฟร์วอลล์ นั่นทำให้ทุกอย่างเป็นเรื่องยากสำหรับคนส่วนใหญ่และไม่สามารถจัดการกับส่วนที่เหลือได้ดังนั้นเราจึงใช้วิธี TeamViewer ID

ฉันไม่รู้ว่านี่หมายความว่าทราฟฟิกทั้งหมดทำงานผ่านเซิร์ฟเวอร์ teamviewer หรือไม่ แต่อาจเป็นเช่นนั้น (และเมื่อลงทะเบียนการคลิกและการกดคีย์ทั้งหมดนั่นอาจหมายความว่าพวกเขาทำได้ - ตามทฤษฎี - และเนื่องจากเรารู้เกี่ยวกับ PRISM ฯลฯ อาจเป็นไปได้ในความเป็นจริงเช่นกัน - รู้เกี่ยวกับการเข้าสู่ระบบและคีย์ลับทั้งหมดของคุณ)


3

นี่คือสิ่งที่ บริษัท พูดไว้ในคำชี้แจงความปลอดภัย :

เมื่อสร้างเซสชัน TeamViewer จะกำหนดประเภทการเชื่อมต่อที่เหมาะสมที่สุด หลังจากการจับมือกันผ่านเซิร์ฟเวอร์หลักของเราการเชื่อมต่อโดยตรงผ่าน UDP หรือ TCP นั้นสร้างขึ้นใน 70% ของทุกกรณี (แม้จะอยู่หลังเกตเวย์มาตรฐาน NAT และไฟร์วอลล์) ส่วนที่เหลือของการเชื่อมต่อจะถูกส่งผ่านเครือข่ายเราเตอร์ที่มีความซ้ำซ้อนสูงผ่าน TCP หรือ https-tunneling คุณไม่ต้องเปิดพอร์ตใด ๆ เพื่อทำงานกับ TeamViewer!

ตามที่อธิบายไว้ในวรรค "การเข้ารหัสและการรับรองความถูกต้อง" ไม่ใช่เราในฐานะผู้ดำเนินการเซิร์ฟเวอร์การกำหนดเส้นทางสามารถอ่านทราฟฟิกข้อมูลที่เข้ารหัสได้

ดังนั้น:

  • 1) ตามที่คนอื่น ๆ แนะนำการเชื่อมต่อเริ่มต้นจากไคลเอนต์ทั้งสองเริ่มต้นจากไคลเอนต์และผ่านพอร์ต 80 ดังนั้นจึงไม่มีปัญหากับ NAT หรือไฟร์วอลล์สามารถผ่านเว็บพร็อกซี่ ฯลฯ หลังจากนี้ทุกอย่างจะถูกติดตั้งและทั้งสอง ลูกค้าจะต้องเชื่อมต่อซึ่งกันและกันแล้ว:
  • 2.1) อาจใช้การเจาะรูUPnPหรือNATเพื่อทำการเชื่อมต่อจริงระหว่างไคลเอนต์สองคนหรือ
  • 2.2) หากไม่สามารถทำได้ระบบจะกำหนดเส้นทางทราฟฟิกผ่านเซิร์ฟเวอร์ซึ่งจะช้ากว่าและอาจถูกสอดแนม (แต่พวกเขาระบุว่าข้อมูลถูกเข้ารหัสแบบครบวงจรในกรณีนั้นจะไม่เป็นปัญหา)

โซลูชัน opensource ใด ๆ ที่คุณอาจทราบ?
Altiano Gerung

@AltianoGerung ฉันไม่รู้จักโอเพ่นซอร์สใด ๆ ที่ทำงานได้โดยไม่ต้องเปิดพอร์ตเช่น Teamviewer
golimar

0

แอปพลิเคชันส่วนใหญ่เช่น TeamViewer กำหนดเส้นทางผ่านเซิร์ฟเวอร์หากไม่มีเส้นทางโดยตรงดังนั้นจึงไม่จำเป็นต้องใช้ IP สาธารณะและเปิดพอร์ต

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.