我设置了一个 Raspberry Pi 网络摄像头服务器(运行 Raspbian),供公众使用。当我在网络浏览器中访问其内部 IP 和端口时,我可以在内部看到它。但是,我无法通过公共 IP 访问它。
网络摄像头服务器连接到我的无线路由器,该路由器通过以太网电缆连接到我房东的路由器。他的路由器连接到有线调制解调器(Comcast)。我的路由器是 Linksys,但运行 DD-WRT。我房东的路由器是 Netgear,带有原厂固件。我可以访问这两个路由器,并且那里的一切一直运行良好。
我尝试在任一路由器或两个路由器中转发端口,并使用 UDP、TCP 或两者,但仍然无法从外部访问它。我在 Raspberry Pi 上编辑了 /etc/motion/motion.conf,将 DAEMON 更改为 ON,将 webcam_localhost 更改为 OFF。
我该怎么办?理想情况下,我希望整个系统都可以通过端口 80 访问,这样我只需输入外部 IP 即可查看网络摄像头,但现在我只能通过唯一端口来访问它。
以下是我可以(安全地)提供的所有信息。如果我遗漏了其他内容,请告诉我。
他的路由器:Netgear WNR2000v3
Web 访问:192.168.1.1
IP 地址:10.0.0.3
子网掩码:255.255.255.0
默认网关:10.0.0.1
DHCP 服务器:10.0.0.1
DNS 服务器:75.75.75.75/75.75.76.76
我的路由器:运行 DD-WRT v24-sp2 的 WRT54G
Web 访问:192.168.1.150
[WAN 设置]
连接类型:静态 IP
WAN IP:192.168.1.11
子网:255.255.255.0
网关:192.168.1.1
DNS:75.75.75.75/75.75.75.76
[网络设置]
本地 IP:192.168.1.150
子网:255.255.255.0
网关:192.168.1.1
本地 DNS:192.168.1.1
(DHCP 已禁用)
网络摄像头服务器:
IP 地址:192.168.1.17
端口:8081
谢谢!
答案1
这两个网络都在子网 (192.168.1.XXX) 上,因此您的路由器永远不会将您网络上的流量传递到房东的网络(除非您的路由器实际上没有路由)。您应该将您的网络重新配置为位于不同的子网(例如 192.168.2.XXX)。需要更改以下设置:
[Network Setup]
Local IP: 192.168.2.1
Subnet: 255.255.255.0
Gateway: 192.168.2.1
Local DNS: 192.168.1.1
(DHCP disabled)
Webcam server:
IP Address: 192.168.2.17
Port: 8081
答案2
假设 heavyd 提到的可能的网络问题不是问题,那么您必须执行以下操作:
- 房东的路由器- 将端口 80 转发至 192.168.1.11,端口 x
- 你的路由器- 将端口 x 转发至 192.168.1.17,端口 8081
换句话说,您需要从外部转发,通过房东的路由器,通过您的路由器,最后到达您的网络摄像头。
如果您的路由器从技术上讲不充当路由器,而只是一个交换机,那么您只需要在房东的路由器上配置端口转发,并将端口 80 转发到 192.168.1.17,端口 8081(直接到网络摄像头)。