我的家庭网络有两个部分:
Internet -- | router | ---- | switch | -----|--PC1 192.168.2.1
| 192.168.2.254 | |--PC2 192.168.2.2
|
|
|----| 192.168.2.8 |
| PC3 |
| router | |----| 192.168.23.101 |
| IP CAM |-----| 192.168.23.1 |-----------|
| 192.168.23.100 |
一个普通部分(IP 范围192.168.2.xxx
),带有一个交换机和一些 PC。第二部分(IP 范围192.168.23.xxx
)包含一台 PC(PC3)、路由器和 IP 摄像机。
PC3(Windows 7) 有两块网卡,一块用于2.xxx
,一块用于23.xxx
。在 PC3 上,我运行一个从 IP 摄像头接收图像的 ftp 服务器和一个 apache 服务器。到目前为止,一切顺利。一切正常。
现在我也可以利用相机的直播:192.168.23.100:800/video.cgi
。我在PC3仅包含
<div class="live"></div>
.live{
background-image: url:(http://192.168.23:100/video.cgi);
border: 1px solid red;
}
当我在浏览器中运行这个PC3它可以正常显示直播流。但是当我在 PC1 或 PC2 上打开页面时,它确实会显示红色边框,但不会显示直播视频。
遗憾的是,这里和 SO 上关于路由的大多数答案都与 Linux 有关,这是 Windows 7,所以我找不到我的问题的答案:我需要在 apache 配置或 Windows 配置中进行哪些更改,以便视频流也显示在网络的第二部分之外。 (我已关闭 PC3 上的防火墙)
答案1
您已经分离了网络,因此我希望这样做有一个很好的理由 - 例如:安全性。
因此,允许 PC3 在网络之间路由不是一个好选择……这完全违背了您的设置。
相反,你可以将 Apache 配置为代理摄像机的实时供稿页面。通过此配置,你可以维护严格的访问控制策略(仅这URL 可以通过 PC3 访问,这样您就可以保持网络隔离,同时还可以避免配置特定的路由。
为此,请查看使用ProxyPass
或者ProxyPassMatch
指令mod_proxy
。
注意:如果video.cgi
生成任何使用 HTTP 以外的技术的内容(例如:调用 RTP 流的 HTML),则这种方法会存在问题。你在 CSS 中直接使用 URL 这一事实对background-image
我来说意味着这种方法可以正常工作……(这种技术也感觉有点不靠谱)
确认是否video.cgi
这样做很容易 - 如果有必要,您将需要研究 Windows 等效项,iptables
以允许网络之间进行精确/安全的端口转发,理想情况下使用伪装(我对此无能为力——也许netsh
就足够了?)。
答案2
答案3
PC1 或 PC2 与摄像头之间根本没有任何联系。
如果你想连接两个网段,你需要一个路由器,该路由器可以链接到每个网段。你可以开启 IP 转发在 PC3 上,并在 PC1/PC2 上设置静态路由 192.168.23.0/24 => 192.168.2.8。在摄像机上,您需要将默认网关设置为 192.168.23.101。