Chính xác thì một chương trình từ xa như Team Viewer hoạt động như thế nào?


34

Nếu bạn sử dụng Windows RDP hoặc Remmina, bạn thường sử dụng IP (công khai) hoặc tên máy chủ đính kèm của máy chủ để đăng nhập. Tôi đã tự hỏi làm thế nào một chương trình từ xa như Team Viewer hoạt động? Và ngoài ra, làm thế nào để chương trình biết cách định tuyến lưu lượng truy cập đó qua internet?


Tôi cũng tò mò về điều này. : D
gumuruh

Câu trả lời:


25

TeamViewer, LogMeIn và bất kỳ chương trình nào khác cho phép zero configphiên máy tính từ xa sử dụng máy chủ của bên thứ ba.

Ví dụ: LogMeIn là một chương trình tương tự như TeamViewer nơi bạn có thể đăng nhập từ xa vào máy tính bên ngoài mạng mà bạn hiện đang truy cập. Bạn sẽ nhận thấy rằng không có cấu hình bên ngoài cần thiết cho loại phiên từ xa này. Điều này là do phần mềm mà bạn đã cài đặt trên máy từ xa (máy khách LogMeIn) bắt đầu một yêu cầu gửi đến các máy chủ LogMeIn. Vì ứng dụng khách này đã khởi tạo yêu cầu, nên không cần chuyển tiếp cổng trên Tường lửa.

Trên máy tính của bạn, bên ngoài mạng của máy tính LogMeIn, có thể truy cập máy tính này từ xa thông qua trang web của LogMeIn. Trang web này chấp nhận yêu cầu bắt đầu từ máy tính từ xa và giữ cho kết nối tồn tại để lắng nghe yêu cầu phiên từ xa.

Khi bạn chạy TeamViewer, bạn được chỉ định một ID trên máy chủ môi giới của họ. Bạn tạo kết nối với ID Teamviewer và TeamViewer chuyển kết nối xuống qua đường hầm được thiết lập của máy khách TeamViewer đến đích và sau đó bạn được nhắc nhập mật khẩu và sau đó kết nối sẽ được thiết lập.


3
Câu hỏi mở rộng: Có khả năng nào để tự chạy một máy chủ bên thứ ba như vậy và khiến VNC (hoặc bất kỳ máy khách nào khác) hoạt động theo cùng một cách không?
TheStoryCoder 30/03/2016

2
Câu hỏi hay. Theo cách này, bạn sẽ trên con đường tạo ra một công ty TeamViewer mới ...
giuseppe

@TheStoryCoder có may mắn nào không? Tôi nghĩ rằng chúng ta cần tạo giao thức liên lạc trước tiên giữa máy chủ và máy khách, sau đó xây dựng máy chủ tcp. RDP là giao thức mặc định của windows, nhưng tôi đoán nó không được thiết kế để hỗ trợ điều này. Tôi biết rằng TeamViewer sử dụng giao thức riêng của họ. Tôi thực sự hy vọng rằng ai đó ngoài kia đã tạo ra một dự án mã nguồn mở cho nó :)
Altiano Gerung 27/07/18

@TheStoryCoder Một cách đơn giản nhưng ít bảo mật hơn: bạn có thể cài đặt máy chủ OpenVpn (máy chủ A) và PC (PC A) của bạn được kết nối với internet thông qua máy chủ đó. Và bạn có một PC khác (PC B) chỉ chấp nhận các kết nối đến hoặc máy tính để bàn từ xa (nếu windows) từ máy chủ VPN của bạn. Bằng cách đó, bạn có thể kết nối với PC B đó từ PC A, thiết lập kết nối thông qua máy chủ A.
Janaka R Rajapaksha

8

Teamviewer sử dụng cổng 80 để tạo kết nối đến máy chủ trung tâm. Nếu kết nối được tạo, bạn sẽ nhận được một ID duy nhất và máy chủ biết bạn đang trực tuyến. Tất cả các giao tiếp có thể xảy ra trên cổng 80 nếu các cổng khác bị chặn.

Teamviewer không cho phép bạn kết nối trực tiếp với địa chỉ IP. Bạn phải đặt điều này trong các tùy chọn, để cho phép các kết nối LAN đến. Điều này hoạt động cho các mạng cục bộ và có thể cho cả các mạng WAN, nhưng sau đó bạn phải làm việc chuyển tiếp, để có được cổng 80 để kết nối với đúng máy tính phía sau bộ định tuyến / tường lửa. Điều đó gây khó khăn cho hầu hết mọi người và không thể quản lý được phần lớn những người còn lại, vì vậy chúng tôi sử dụng phương pháp ID Teamviewer.

Tôi không biết điều này có nghĩa là tất cả lưu lượng truy cập đều đi qua máy chủ teamviewer, nhưng có thể. (Và vì nó đăng ký tất cả các lần nhấp và nhấn phím, điều đó có thể có nghĩa là họ có thể - về lý thuyết - và vì chúng tôi biết về PRISM, v.v. có lẽ trong thực tế cũng biết về tất cả thông tin đăng nhập và khóa bí mật của bạn.)


3

Đây là những gì công ty nói trong Tuyên bố bảo mật của họ :

Khi thiết lập phiên, TeamViewer xác định loại kết nối tối ưu. Sau khi bắt tay thông qua các máy chủ chính của chúng tôi, một kết nối trực tiếp qua UDP hoặc TCP được thiết lập trong 70% của tất cả các trường hợp (ngay cả sau các cổng, NAT và tường lửa tiêu chuẩn). Phần còn lại của các kết nối được định tuyến qua mạng bộ định tuyến dự phòng rất cao của chúng tôi thông qua TCP hoặc đường hầm https. Bạn không phải mở bất kỳ cổng nào để hoạt động với TeamViewer!

Như được mô tả sau trong đoạn "Mã hóa và xác thực", ngay cả chúng ta, với tư cách là người vận hành các máy chủ định tuyến, có thể đọc lưu lượng dữ liệu được mã hóa

Vì thế:

  • 1) như những người khác đã đề xuất, kết nối ban đầu từ cả hai máy khách là do máy khách khởi tạo và đi qua cổng 80 nên không gặp vấn đề gì với NAT hoặc tường lửa, có thể đi qua proxy web, v.v. Sau đó, mọi thứ được thiết lập và cả hai các khách hàng cần được kết nối với nhau, sau đó:
  • 2.1) có thể sử dụng cú đấm lỗ UPnP hoặc NAT để có thể thực hiện kết nối thực tế giữa hai khách hàng, hoặc
  • 2.2) nếu không thể, nó sẽ định tuyến lưu lượng qua máy chủ của họ, sẽ chậm hơn và có thể bị theo dõi (tuy nhiên họ nói rằng dữ liệu được mã hóa từ đầu đến cuối, trong trường hợp đó sẽ không thành vấn đề)

bất kỳ giải pháp mã nguồn mở nào mà bạn có thể biết?
Altiano Gerung 27/07/18

@AltianoGerung Tôi không biết bất kỳ mã nguồn mở nào hoạt động mà không mở các cổng như
Teamviewer

0

Hầu hết các ứng dụng như TeamViewer định tuyến mọi thứ thông qua máy chủ của họ nếu không có đường dẫn trực tiếp, do đó bỏ qua nhu cầu sử dụng IP công cộng và cổng mở.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.