首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Windows上模拟在端口80上阻塞RTMP?

如何在Windows上模拟在端口80上阻塞RTMP?
EN

Stack Overflow用户
提问于 2010-05-24 21:44:36
回答 3查看 9.5K关注 0票数 3

我有一个简单的Flash客户端连接到,我希望能够模拟客户机执行以下操作:

  • 试图连接到1935年端口上的RTMP流,但失败,
  • 回到第443端口的RTMP上失败了,
  • 回到80端口的RTMP,失败,最终
  • 通过端口80返回到RTMPT (HTTP)并成功。

这应该是Flash的默认行为,例如如前所述

在许多情况下,这是您在不使用HTTP隧道的情况下通过许多防火墙所需要的全部。这是因为在NetConnection对象中内置了一个特性。当您没有在RTMP地址中指定端口号时,Macromedia Flash将尝试连接到端口1935。如果失败,它将尝试连接到端口443;如果失败,它将尝试端口80。因此,如果您没有在RTMP地址中指定端口,则不需要对端口1935、443或端口80进行编码。

还有这里

当连接到FMS时,您将在客户端使用netConnection对象,在connect方法的参数范围内,您可以设置要使用的协议:nc.connect(“rtmp://什么”)。如果这样做,应该注意闪存播放器将循环通过不同的端口和协议,试图自动连接。当然,您可以通过更改rtmp部分来设置要使用的协议。 Flash将尝试通过端口1935连接到rtmp,然后通过端口80连接到rtmp,然后通过端口80尝试rtmpt (如下所述)。

我在Windows 7机器上,本质上我在寻找如何模拟Flash无法连接到任何端口上的RTMP流并返回到RTMPT的环境的技巧。Windows防火墙似乎允许设置“协议号”(除了通常的端口号--例如TCP是6、UDP 17等),但我似乎找不到RTMP的协议号。

如果有人对我如何简单地模拟这种行为有任何建议,我会非常感激的。在此之前,非常感谢您。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-07 13:18:15

我能够在Windows 7上使用Firefox完成这项工作,并在本地计算机(localhost)上运行代理服务器。我使用Windows防火墙阻止到端口1935、443和80的出站连接,用于进程的特定目的IP地址:“plugin-tainer.exe”。(请相信Firefox 3.6和更多地使用“plugin-收集器. the”来运行Flash插件。)然后我设置Windows系统代理设置(通过IE、Tools->Internet选项->Connections->LAN设置)来使用本地http代理服务器。有趣的是,Flash显然使用Windows代理设置,而不是Firefox的,即使在Firefox内部运行时也是如此。

票数 1
EN

Stack Overflow用户

发布于 2010-05-24 21:50:17

RTMP是建立在TCP之上的,所以您应该能够选择TCP和相应的端口来使用防火墙进行测试。

您需要为每个端口创建一个自定义规则。

代码语言:javascript
复制
name: RTMP Default (1935)
protocol: TCP
local port: any
remote port: 1935
local ip: any
remote ip: any

name: RTMP over 443
protocol: TCP
local port: any
remote port: 443
local ip: any
remote ip: any

name: RTMP over 80
protocol: TCP
local port: any
remote port: 80
local ip: any
remote ip: any

然后将RTMP默认规则设置为阻止所有通信量,但将其他规则设置为允许。然后测试并确保它在端口443上失败。然后将RTMP over 443规则设置为块,并确保它在端口80上失败。

票数 0
EN

Stack Overflow用户

发布于 2010-06-17 15:16:39

您必须使用HTTP代理服务器中间层,该中介将为无效请求抛出HTTP错误。我不知道RTMP协议是如何做到这一点的,但我怀疑您可能错误地声称它在端口80上尝试RTMP,然后返回到相同端口上的RTMPT。这真的没什么意义。但是--如果真的是这样,我个人认为这是非常不可能的,而且我个人也不会设计一个协议,在同一个端口上使用两种不同的格式,那么您需要一个中间层,比如HTTP代理服务器,这是我在实践中看到这种情况的唯一现实方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2900547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档