Team Viewerのようなリモートプログラムはどのように機能しますか?


34

Windows RDPまたはRemminaを使用する場合、通常はサーバーのIP(パブリック)または接続されたホスト名を使用してログオンします。Team Viewerのようなリモートプログラムがどのように機能するのか疑問に思っていましたか?また、プログラムはそのトラフィックをインターネット経由でルーティングする方法をどのように知っていますか?


私もこれに興味があります。:D
ガムル

回答:


25

TeamViewer、LogMeIn、およびzero configリモートデスクトップセッションを許可するその他のプログラムは、サードパーティのサーバーを使用します。

たとえば、LogMeInはTeamViewerに似たプログラムで、現在使用しているネットワーク外のコンピューターにリモートでログインできます。このタイプのリモートセッションに必要な外部構成はないことに気付くでしょう。これは、リモートマシン(LogMeInクライアント)にインストールしたソフトウェアがLogMeInサーバーへの送信要求を開始するためです。このクライアントが要求を開始したため、ファイアウォールでのポート転送は不要です。

LogMeInコンピューターのネットワークの外部にあるコンピューターで、LogMeInのWebサイトからこのコンピューターにリモートでアクセスできます。このWebサイトは、リモートコンピューターからの開始された要求を受け入れ、リモートセッション要求をリッスンするために接続を維持します。

TeamViewerを実行すると、ブローカーサーバーでIDが割り当てられます。Teamviewer IDに接続すると、TeamViewerはTeamViewerクライアントの確立されたトンネルを介して宛先に接続を渡し、パスワードの入力を求められ、その後接続が確立されます。


3
拡張質問:そのようなサードパーティのサーバーを自分で実行して、VNC(または他のクライアント)が同じように動作する可能性はありますか?
TheStoryCoder

2
良い質問。この方法で、新しいTeamViewer会社を作成するためのパスになります
...-ジュゼッペ

@TheStoryCoder運はありますか?最初にサーバーとクライアント間の通信プロトコルを作成し、次にtcpサーバーを構築する必要があると思います。RDPはWindowsのデフォルトプロトコルですが、これをサポートするようには設計されていないと思います。TeamViewerは独自のプロトコルを使用することを知っています。私は本当に誰かがそれのためにオープンソースプロジェクトをすでに作成していることを本当に願っています:)
Altiano Gerung

@TheStoryCoder簡単な方法ですが、セキュリティは低くなります。サーバーにOpenVpn(サーバーA)をインストールし、PC(PC A)をそのサーバー経由でインターネットに接続できます。また、VPNサーバーからの着信接続またはリモートデスクトップ(Windowsの場合)のみを受け入れる別のPC(PC B)があります。あなたはサーバA経由の接続を確立し、あなたのPC AからそのPC Bに接続することができますこの方法
ジャナカR Rajapaksha

8

Teamviewerはポート80を使用して、中央サーバーに接続します。接続が確立されると、一意のIDが取得され、サーバーはオンラインであることを認識します。他のポートがブロックされている場合、すべての通信はポート80で行われます。

Teamviewerでは、IPアドレスに直接接続できます。着信LAN接続を許可するには、オプションでこれを設定する必要があります。これはローカルネットワークでも、おそらくWANネットワークでも機能しますが、ポート80をルーター/ファイアウォールの背後にある適切なコンピューターに接続するには、ポートフォワーディングを機能させる必要があります。これにより、ほとんどの人にとって物事が難しくなり、他のほとんどの人にとっては管理不能になります。そこで、Teamviewer IDメソッドを使用します。

これがすべてのトラフィックがチームビューアーサーバーを経由することを意味するかどうかはわかりませんが、可能性はあります。(そして、すべてのクリックとキー押下を登録するため、おそらく理論上は-おそらく実際にはPRISMなどについても知っているので-すべてのログインと秘密鍵を知っていることを意味します。)


3

これは、会社がセキュリティステートメントで述べていることです。

セッションを確立する際、TeamViewerは最適な接続タイプを決定します。マスターサーバーを介したハンドシェイク後、UDPまたはTCPを介した直接接続がすべてのケースの70%で確立されます(標準ゲートウェイ、NAT、およびファイアウォールの背後であっても)。残りの接続は、TCPまたはhttps-tunnellingを介して非常に冗長なルーターネットワークを介してルーティングされます。TeamViewerで作業するためにポートを開く必要はありません!

「暗号化と認証」の段落で後述するように、ルーティングサーバーのオペレーターとして、暗号化されたデータトラフィックを読み取ることはできません。

そう:

  • 1)他の人が示唆したように、両方のクライアントからの最初の接続はクライアントが開始し、ポート80を経由するため、NATまたはファイアウォールに問題はなく、Webプロキシを経由できます。その後、すべてがセットアップされ、両方クライアントは相互に接続する必要があります:
  • 2.1)おそらくUPnPまたはNATホールパンチを使用して、2つのクライアント間で実際の接続を行うことができる、または
  • 2.2)不可能な場合、サーバーを介してトラフィックをルーティングしますが、速度が遅く、スパイされる可能性があります(ただし、データはエンドツーエンドで暗号化されていると述べていますが、その場合は問題ありません)

あなたが知っているかもしれないオープンソースソリューション?
アルティアーノゲルン

@AltianoGerung私はTeamViewerのようなポートを開くことなく作業することを任意のオープンソースのものを知らない
golimar

0

TeamViewerのようなほとんどのアプリケーションは、直接パスが利用できない場合にサーバーを経由してルーティングするため、パブリックIPとオープンポートを使用する必要がありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.