
问题1:
板1 的 eth0 ip 可以ping 通网络摄像机, 如何配置可以让 板 1 sta 和 电脑 连接同一个 ap 后, 电脑可以 直接拉流 网络摄像机的内容?
实现1:
实现通过板1的 STA IP(假设 192.168.5.90`)拉取网络摄像机的流,需要在板1上配置网络地址转换(NAT)或端口转发,让电脑访问板1的 STA IP 时,流量被转发到网络摄像机的 IP 地址。
假设网络摄像机的 IP 是 192.168.1.252
,RTSP 流端口是 554
,以下是详细的操作步骤
1.1 启用 IP 转发:
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
1.2 配置路由
sudo ip route add 192.168.1.0/24 via 192.168.200.101 dev wlan0 proto 100 src 192.168.200.1 metric 2 onlink
摄像头ip:192.168.1.x
sta wifi ip:192.168.200.101
ap wifi ip:192.168.200.1
这个路由是在ap里面加
1.3 如何确定自己的路由是否添加成功
ip route show //查看当前的路由表
检查输出是否包含以下条目,如果存在,则说明路由规则已成功添加
192.168.1.0/24 via 192.168.200.101 dev ap0 proto 100 src 192.168.200.1 metric 2 onlink
进行确认:
尝试从设备上 Ping 192.168.1.0/24
子网中的一个设备(例如 `192.168.1.252):
思考:经过上面的配置,任何一个 设备 连接上板2 ap热点 都可以 访问
海康威视相机 Gstream 拉流命令:
gst-launch-1.0 rtspsrc location=rtsp://admin:Neardi%3F12345@192.168.1.253:554/Streaming/Channels/001 latency=5000 ! decodebin ! videoconvert ! autovideosink
海康:
rtsp://192.168.1.153:554/stream1
admin/Neardi?12345
大华相机VLC 拉图命令:
rtsp://admin:admin123@192.168.1.252:554/cam/realmonitor?channel=1&subtype=0
问题2:
实现板1 wifi 访问 板1 上连接摄像头
实现2:
启动ip 转发 配置 NAT 转发,和htttp 转发
2.1 启用 IP 转发:
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
2.2 配置 NAT 转发规则:
# 假设 wlan0 是 STA 接口,eth0 是连接摄像机的接口
sudo iptables -t nat -A PREROUTING -i wlan1 -p tcp --dport 554 -j DNAT --to-destination 192.168.1.252:554
sudo iptables -A FORWARD -p tcp -d 192.168.1.252 --dport 554 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
保存 iptables 配置,防止重启失效:
sudo iptables-save | sudo tee /etc/iptables/rules.v4
2.3 配置http协议转发:
# 转发 HTTP 端口 80 的流量到网络摄像机
sudo iptables -t nat -A PREROUTING -i wlan1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.252:80
# 允许转发流量
sudo iptables -A FORWARD -p tcp -d 192.168.1.252 --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
2.4配置https协议转发:
sudo iptables -t nat -A PREROUTING -i wlan1 -p tcp --dport 443 -j DNAT --to-destination 192.168.1.252:443
sudo iptables -A FORWARD -p tcp -d 192.168.1.252 --dport 443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT