여러 장치가 있는 일반적인 로컬(192.168.1.x) 네트워크와 인터넷에 연결된 라우터가 있습니다.
장치 중 하나는 WiFi를 통해 연결된 Raspberry(192.168.1.2)입니다. 또한 다른 IP(LAN IP 192.168.4.1)를 사용하여 이더넷을 통해 IP 카메라(192.168.4.2)에 연결되며, 기본적으로 아래 그림과 같이 2개의 네트워크가 있습니다.
네트워크 카메라에는 HTTP 라이브 스트리밍 기능이 있습니다(위치:http://192.168.4.1)은 Raspberry에서 액세스할 수 있지만 라우터 네트워크의 장치에서는 액세스할 수 없는 것으로 보입니다.
Raspberry를 통해 IP 카메라 페이지에 액세스할 수 있는 방법이 있나요? 예를 들어,http://192.168.1.2라우터 네트워크의 모든 장치에서 내부 네트워크에서 IP 카메라 웹 페이지로 터널링/리디렉션됩니까?
답변1
이를 달성하는 방법에는 여러 가지가 있습니다. 네트워크의 나머지 부분을 고려하더라도 역방향 프록시를 사용하면 그다지 이점이 없을 것입니다.아마도일단 구성되면 다른 방법보다 훨씬 어렵지 않고 훨씬 더 많은 유연성을 제공하며 웹캠과 같은 장치를 인터넷에 노출하는 모든 사람에게 확실히 시작점이 되어야 합니다.
사용할 수 있는 우수한 http 프록시 소프트웨어가 많이 있습니다. 나는 Apache httpd보다 haproxy보다 nginx를 선호합니다. OTOH 이미 Squid를 순방향 프록시로 실행하고 있다면 이 작업도 수행할 수 있습니다.
nginx 구성은 간단할 수 있습니다...
server {
listen 80;
listen [::]:80;
server_name _;
location / {
proxy_pass http://182.168.1.2/;
}
}
하지만 네트워크에 비우호적인 접근이 발생할 가능성이 있는 경우에는 인증, TLS, 화이트리스트 보안 URL을 추가해야 합니다.
답변2
한 가지 방법은 RasPi에서 192.168.4.0/24 네트워크에 대한 고정 경로를 만드는 것이고, 다른 방법은 라우터가 카메라 트래픽을 보낼 위치를 알 수 있도록 라우터에 고정 경로를 만드는 것입니다.
RasPi에서는 다음 명령을 사용할 수 있습니다.
ip route add 192.168.4.0/24 dev eth1
... eth1
카메라 인터페이스로 대체되었습니다.
라우터 설정 어딘가에 고정 경로를 구성하는 옵션이 있습니다. 아래 이미지는 TP-Link 라우터에서 가져온 이미지입니다. 표시되는 이미지는 약간 다르게 보일 수 있지만 동일한 요소를 가지고 있습니다.
192.168.4.1을 대상으로 설정할 수도 있습니다. 이후 내부 네트워크의 장치는 간단히 카메라에 액세스할 수 있습니다.http://192.168.4.1.
라우터에 고정 경로가 없으면 다음과 같은 일이 발생합니다.
- 클라이언트가 192.168.4.1에 액세스하려고 시도합니다.
- 다른 네트워크에 있기 때문에 라우터인 게이트웨이로 패킷을 보냅니다.
- 라우터는 192.168.4.0/24 네트워크에 연결하는 방법을 모르기 때문에 다른 라우터에 경로를 알고 있는지 묻는 메시지를 보냅니다.
- 다른 라우터가 응답하지 않아 패킷을 삭제합니다.
또는 모든 트래픽을 192.168.1.2 포트 80에서 192.168.4.1로 전달하도록 RasPi에 대한 전달 규칙을 구성할 수 있습니다. 그러면 내부 클라이언트가 192.168.1.2로 이동하여 카메라에 액세스할 수 있습니다.