我有一个家庭网络,配有 3G 调制解调器,可提供互联网。我刚刚安装了一些安全摄像头,我想远程访问它们。摄像头系统附带免费的 DDNS 服务,我已经设置好了一切(在提供商处、在我的摄像头系统中以及在我的路由器中设置了端口转发)。但是,当我尝试使用 DDNS 地址访问它时,我开始意识到我的 ISP 正在阻止从外部到内部的流量。我去了http://mypublicip.com并获取了 IP。我尝试 ping 该 IP,但没有得到回复:
PING 186.2.136.123 (186.2.136.123): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
不过,我也有一些WeMo 设备在家里,我可以远程控制。我认为WeMo 设备以某种方式调用远程服务器来维持连接以接收命令。
因此,我的问题分为两部分:
- 有没有办法让我的端口转发和 DDNS 解决方案与我的安全系统协同工作,即使我的 ISP 想让我很难做到这一点?
- 如果没有,有没有办法可以做我想做的事情,可能有点类似于 WeMo 设备的远程工作方式?
答案1
首先,Ping 掉线并不意味着您的提供商阻止了您。这意味着 ICMP 已关闭(在您的路由器或他们的路由器中)、被阻止或被丢弃。超时表示掉线或 ICMP 已关闭。您可能需要检查路由器中的设置以查看是否已关闭 ICMP。接下来,您可以在网络中构建 VPN 服务器。使用 IP 地址返回 VPN 服务器,任何连接到您的网络的计算机都看起来像是您网络中的计算机。
向您提供有关如何构建 VPN 服务器的说明超出了答案的范围。网络上有许多说明集。有关 VPN 隧道、SSH 隧道和代理的良好指导来源是 Hak5。他们提供了如何在 Windows 和 Linux 上执行这些操作的说明。
仅仅因为 ICMP 流量不起作用并不意味着所有入站流量都被阻止。
如果您还有其他问题,请告诉我。
答案2
值得怀疑。提供商通常会将移动客户端 NAT 到单个或一组 IP 地址后面。在这种情况下,您没有任何外部可见的 IP 地址,因此您的端口转发规则将不起作用,因为您的转发设备永远不会看到它应该转发的数据包。
不过,有时提供商也会提供不同类型的(通常是商务)移动计划,该计划允许外部可见(但很少是静态)IP 地址。这是通过在移动设备上使用不同的 APN 来实现的,而且使用这样的计划通常更昂贵。
实现此目的的一种方法是将始终在线的工作站放置在本地网络中,并在其上运行 TeamViewer 或 Log Me In 等服务。此类服务会维护与服务提供商服务器的客户端连接,从而使它们能够绕过 NAT 等限制。
答案3
如果您家中的调制解调器为您的设备提供了 192.168.xx 地址并执行 NAT,则除非您公开相关端口以便将传入的数据包路由到正确的设备,否则这些设备无法从外部访问。
我的 Kodak esp 3.2 打印机也遇到了类似的问题,该打印机应该支持云连接,但通过无线连接。我的老式 WTR54G 无线路由器分配了 192.168.xx 地址,因此无法从外部访问打印机。
解决方法是在无线路由器中安装 DD-WRT 软件,分配一些要分发的真实 IP,并为打印机固定 IP,以便始终可以通过该 IP 访问打印机。
我经营一家 ISP,我们通过 ssh 和 NX 为 Unix shell 帐户提供资金,因此如果您需要执行端口转发的功能,这是一种替代方法,但如果您的路由器分发内部地址并将一个 IP 地址映射到它们,您必须将其配置为分发一个真正的外部可达 IP(就像我做的那样)或将特定端口硬连线到该设备,以便路由器知道将传入的数据包分发到该端口的哪个设备。
如果您需要一个具有 ssh 和设置端口转发功能的 Unix shell 帐户,请访问 www.eskimo.com。