树莓派自启动配置端口映射及启动jar

树莓派自启动配置端口映射及启动jar

背景

项目需要用树莓派代理摄像头,使外部只能通过树莓派才能访问摄像头。树莓派4B有两张网卡,一张有线一张无线,打算使用有线网卡连接摄像头。由于rtsp流树莓派不知道怎样转发,所以使用iptables实现端口映射来代理。

过程

  1. 摄像头配置静态IP。宇视摄像头有EZTools这个软件可以修改配置,可以去官网下载。

    下载 (uniview.com)
    在这里插入图片描述

  2. 树莓派有线网卡配置静态IP,这个IP要为摄像头的网关(不然收不到响应,可能与这个摄像头有些关系,我测试端口映射到其他程序,这个IP在同一个网络下就行)

    sudo vim /etc/dhcpcd.conf
    

    然后重启

  3. 开启网络转发

    sudo vim /etc/sysctl.conf #将net.ipv4.ip_forward=0更改为net.ipv4.ip_forward=1
    sysctl -p  #使数据转发功能生效
    
  4. 配置开机自启动及端口映射、启动jar

    sudo apt install iptables #记得安装iptables
    sudo vim /etc/rc.local
    

    在exit0前,添加如下内容。

    sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 554 -j DNAT --to-destination 192.168.1.2:554 #将从网卡wlan0进入且目标端口为554的包转发到192.168.1.2:554(摄像头rtsp)
    sudo iptables -t nat -A POSTROUTING -d 192.168.1.2 -p tcp --dport 554 -j MASQUERADE  #将源IP为192.168.1.2:554的包的源地址进行伪装
    cd /home/pi #jar包所在路径
    java -jar device-0.0.1-SNAPSHOT.jar
    

启动后截图
在这里插入图片描述
在这里插入图片描述

wireshark抓包,可见摄像头ip(192.168.100.2)已改为树莓派wlan0IP(192.168.0.103)
在这里插入图片描述

RTSP流截图

一些可能用到的命令

sudo systemctl status rc-local	#查看系统启动项状态
sudo iptables -t nat -nvL --line-number #查看nat表
sudo iptables -t nat -D POSTROUTING 1	#删除序号为1的POSTROUTING下规则
sudo iptables -t nat -D PREROUTING 1	#删除序号为1的PREROUTING下规则

参考资料

iptables实现端口映射(本地和远程端口映射) - dzqabc - 博客园 (cnblogs.com)

/etc/profile, rc.local等文件的执行顺序_chao09_01的博客-CSDN博客_/etc/profile rc.local

Linux系统数据包转发_沈万三gz的博客-CSDN博客_linux数据包转发原理

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值