如何使用防火墙后面的直接端口进行Teamviewer图像共享

4
我找到了这个链接:如何通过Teamviewer找到我的电脑,但我无法理解其中的内容,而且答案也不是我要找的。我正在寻找一个.NET解决方案。
如果我有一个图像发送应用程序,Teamviewer如何连接到图像接收应用程序?是否包含任何隧道系统?还是Teamviewer只使用端口80?
Skype是否使用相同的语音聊天方法?
* 示例 *
我在PC-A上,这里有一个50KB的图像作为屏幕截图框架,我想将其发送到我的PC-B。现在,TV(teamviewer)在整个端口范围从1到65,000中查找任何可以连接服务器PC的端口。我认为最小端口80会成功,对吗?但是在我的计算机上,端口4001也是开放的,因此TV将使用4001进行功能。在PC-B上,它还检查开放的端口,并发现端口80和6500,将使用6500进行功能。现在我的问题是,数据去哪里了?我的图像首先通过端口4001发送到SERVER-PC,并在那里短时间存储50KB,然后PC-B将在端口6500上下载它吗?我不相信这是真的,因为它会产生太多的TV-SERVER-PC流量。但是它如何工作?
2个回答

7
其他答案已经涵盖了基本要点。 这篇文章(虽然有点旧,但仍然相关)描述了Skype如何绕过防火墙-也许它可以更好地解释这种方法。
据我所知,TeamViewer采用完全相同的方法-TeamViewer客户端应用程序都会主动连接到中央服务器,然后像文章中描述的那样协商连接。
我的问题现在是,数据去哪里了?我的图像首先通过端口4001发送到SERVER-PC,然后50KB短时间内存储在那里,PC-B将在端口6500上下载它吗?我不相信这是真的,因为这会产生太多的TV-SERVER-PC流量。但是它是如何工作的呢?
PC-A和PC-B直接相互通信。 SERVER-PC仅用于在两者之间建立通信,在两台计算机的防火墙上打洞。文章中的关键技巧是这个(我强调):
Bob的Skype程序随后会在其网络防火墙中打洞:它向1.1.1.1端口1414发送一个UDP数据包。这个数据包被Alice的防火墙丢弃,但Bob的防火墙不知道这一点。现在它认为来自1.1.1.1端口1414并寻址到Bob的IP地址2.2.2.2和端口2828的任何内容都是合法的 - 这必须是刚刚发送的查询的响应。

谢谢您的评论。我已经更新了我的问题,并提供了一个示例,以显示我遇到的大问题标记。您能否尝试回答一下? - goldengel
@goldengel,我添加了更多的细节,也许会有所帮助。 - Pekka
@社区。我创建了100个赏金,现在无法将其发送给Pekka。 - goldengel
@ goldengel 当赏金到期时,社区用户会授予您赞助金额的一半。没关系 - 我只希望这些信息有所帮助。 - Pekka
但这是关键问题。因为如果服务器上的端口被切换,那么数据怎么办? - goldengel
显示剩余2条评论

1
其他Teamviewer问题的第一个答案是正确的 - 它使用中央服务器来通过防火墙工作 - 可能会回退到使用更严格的防火墙进行HTTP POST。这样,两个Teamviewer之间不会相互通信,只与中央服务器通信。

我并不是在要求代码,voltagex,你误解了。我想知道使用DotNet让东西正常工作的工具。我已经更新了我的问题。 - goldengel
创建一个Web服务,从A接收图像。拥有一个让B接收图像的方法。你的客户端A发送 {image,ID, for-b}。你的客户端B请求 {image,for-b} 并下载所有可用的图片。 - Adam Baxter
好的,这听起来像是共享图像的默认方式。关键问题是为什么防火墙不能工作,但电视可以做到这一点?使用了哪个端口?(在我的问题示例中) - goldengel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接