树莓派自启动配置端口映射及启动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数据包转发原理

树莓派自启动配置端口映射及启动jar相关推荐

  1. docker端口映射或启动容器时报错 driver failed programming external connectivity on endpoint quirky_allen

    docker端口映射或启动容器时报错  Error response from daemon: driver failed programming external connectivity on e ...

  2. docker端口映射或启动容器时报错 driver failed programming external connectivity on endpoint

    docker端口映射或启动容器时报错 Error response from daemon: driver failed programming external connectivity on en ...

  3. docker端口映射或启动容器时报错Error response from daemon: Container is not running

    docker端口映射或启动容器时: docker exec -it 7c5a2350c4cb /bin/bash 出现了错误: Error response from daemon: Containe ...

  4. RouterOS配置端口映射的方法

    RouterOS配置端口映射的方法 首先,通过客户端winbox登陆ROS系统 然后,步骤:依次点击IP---Firewall---NAT---红色加号 在下图中的"General" ...

  5. 六面钻调试第二步配置端口映射

    配置端口映射 (1)打开NcConfig密码ncstudio (2)硬件连接设置 (3)端口配置 (4)端口保护配置 (5)手轮设置

  6. 通过putty进行端口映射并且启动jupyter notebook

    通过内网穿透之后,一般而言,我们访问内网中的机器在ubuntu下一句命令: ssh name@阿里云 -p 6000即可进行访问,其中-p是表示端口号:同样的通过windows下的putty也可修改对 ...

  7. 360网神防火系统 配置端口映射_IIS配置证书端口443无法访问

    原文阅读: IIS配置证书端口443无法访问 - 全球可信SSL数字证书解决方案-INFINISIGN​www.infinisign.com 使用Windows中的IIS服务器,我们在配置SSL数字证 ...

  8. VMware NAT 模式配置端口映射

    最近在开发过程中遇到这么一个场景: 老王只有一台 Windows 操作系统的台式机,要对一款嵌入式 Linux 的产品进行开发与调试,需要在 Ubuntu 系统下进行软件编译. 由于公司的网络资源紧张 ...

  9. 利用PuTTY配置端口映射,实现外网对服务器的访问

    实现外网对服务器的访问,有VPN和端口映射. 端口映射大抵有三种: 1-配置路由器,设置虚拟服务器, 2-配置PortTunnel, 3-配置PuTTY 前面两种涉及到硬件路由器,和服务器端配置.在实 ...

  10. (FortiGate)飞塔防火墙配置端口映射(VIP)

    外部IP地址的选项填写说明: 如果外网地址是固定IP的话,将要映射的具体外部IP地址填写上去:如果外网地址是拨号自动获取的话,则在外部IP地址的选项上填写0.0.0.0,以下场景模拟的是拨号线路的情况 ...

最新文章

  1. 如何通过AppDomain用特定的安全上下文加载外部程序集
  2. python程序实例电话本-Python基于递归实现电话号码映射功能示例
  3. 嵌入式开发之davinci--- 8168 电源调试总结
  4. lamda表达式 随机取数据的方法
  5. 【arduino】nodemcu(ESP8266)发送邮件库测试笔记,SMTP email
  6. nl.basjes.parse.useragent.UserAgentAnalyzer内存泄漏问题解决
  7. win10重置此电脑_职场电脑技能跟我学之WIN10系统的重置 数据不会丢哦
  8. 容器安全拾遗 - Rootless Container初探
  9. 8月20日全球六大国际域名解析量变化情况统计报告
  10. ROS学习笔记六:理解ROS服务和参数
  11. 广西计算机一级机试考试试题,2010年12月广西区计算机一级考试机试试题
  12. PE启动盘安装操作系统
  13. 隐形眼镜的评价分析报告
  14. 用gauss消去法解线性方程组(数值数学实验教程P74ex5.2)-2021-11-03
  15. UVA 1600 Patrol Robert 巡逻机器人 (启发搜索BFS)
  16. 点对点语音通信(转)
  17. 《离别小叙》一个感伤的程序员
  18. mysql数据库无法插入中文
  19. 深度学习——序列模型(笔记)
  20. 机器学习之变分推断(三)基于平均场假设变分推断与广义EM

热门文章

  1. word文字校对工具_如何在Word中使用校对面板
  2. 字根校对软件,中文校对行业的一匹黑马!
  3. python dbf转excel,使用Python将.csv文件转换为.dbf?
  4. 基于PROFINET技术的STEP7组态
  5. 小白学 Python 爬虫(18):Requests 进阶操作
  6. 编译原理(第3版) 清华大学出版社 黄贤英等人著作 部分课后习题答案
  7. 获取三角形外接圆的圆心坐标、半径
  8. pdf论文中查看使用的字体
  9. python刷屏代码_python 刷屏
  10. Moodle安装教程以及phpMyAdmin无法访问解决