配置文档:Ubuntu 服务器转发网络访问

一、网络拓扑

以以下网络拓扑为示例

在这里插入图片描述

  • Ubuntu 服务器(两个网卡)
    • eth1 = 10.66.71.222 (接入内网)
    • eno1 = 192.168.2.100 (直连相机)
  • 相机ip
    • 192.168.2.1
  • Windows 客户端ip
    • 10.66.71.205 (接入内网)
  • 目标
    Windows 能直接访问相机 (ping 192.168.2.1)。

二、Ubuntu 配置步骤

1. 确认网卡

ip addr
ip route

确认:

  • eth1 → 10.66.71.222/24
  • eno1 → 192.168.2.100/24

2. 开启 IPv4 转发

# 临时生效
sudo sysctl -w net.ipv4.ip_forward=1# 永久生效
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

验证:

sysctl net.ipv4.ip_forward   # 输出为 1 即可

3. 配置 iptables 转发与 NAT

执行以下脚本:

#!/usr/bin/env bash
set -euxo pipefailWAN_IF=eth1          # 内网网卡
LAN_IF=eno1          # 相机网卡
WIN_NET=10.66.71.0/24
CAM_NET=192.168.2.0/24# 确保 IP 转发
sudo sysctl -w net.ipv4.ip_forward=1# 允许内外转发
sudo iptables -C FORWARD -i $WAN_IF -o $LAN_IF -s $WIN_NET -d $CAM_NET -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT 2>/dev/null \|| sudo iptables -A FORWARD -i $WAN_IF -o $LAN_IF -s $WIN_NET -d $CAM_NET -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPTsudo iptables -C FORWARD -i $LAN_IF -o $WAN_IF -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 2>/dev/null \|| sudo iptables -A FORWARD -i $LAN_IF -o $WAN_IF -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT# NAT 转发
sudo iptables -t nat -C POSTROUTING -s $WIN_NET -d $CAM_NET -o $LAN_IF -j MASQUERADE 2>/dev/null \|| sudo iptables -t nat -A POSTROUTING -s $WIN_NET -d $CAM_NET -o $LAN_IF -j MASQUERADE

查看规则:

sudo iptables -S FORWARD

在这里插入图片描述

sudo iptables -t nat -S

在这里插入图片描述

4. 持久化规则

sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y iptables-persistent
sudo netfilter-persistent save

规则会保存到 /etc/iptables/rules.v4,重启不会丢失。


三、Windows 配置

1. 删除错误的直连路由(如果存在)

如果网卡上绑定了 192.168.2.x 地址,请移除:

#示例
netsh interface ip delete address "以太网" 192.168.2.205

2. 添加静态路由

在管理员 CMD 执行:

route -p add 192.168.2.0 mask 255.255.255.0 10.66.71.222 metric 1

验证:

route print 192.168.2.0

在这里插入图片描述

四、测试流程

A. Ubuntu ↔ 相机

ping -c 3 192.168.2.1
arp -n | grep 192.168.2.1
sudo tcpdump -i eno1 -n icmp

B. Windows ↔ Ubuntu

ping 10.66.71.222
tracert 10.66.71.222

C. Windows ↔ 相机

tracert 192.168.2.1   # 第一跳应为 10.66.71.222
ping 192.168.2.1

在这里插入图片描述

Ubuntu 抓包观察:

sudo tcpdump -i eth1 -n icmp and host 192.168.2.1
sudo tcpdump -i eno1 -n icmp and host 192.168.2.1

五、常见问题排查

  1. Windows 绑定了 192.168.2.x → 必须删除,否则路由冲突。

  2. UFW 防火墙阻止转发 → 修改 /etc/default/ufw/etc/ufw/before.rules,允许 NAT + FORWARD。

  3. 接口名错误 → 用 ip addr 确认。

  4. 相机未响应 → 检查相机是否禁 ICMP,可改用 curlffplay 测试 HTTP/RTSP。

  5. rp_filter 拦截 → 可宽松模式:

    sudo sysctl -w net.ipv4.conf.all.rp_filter=2
    sudo sysctl -w net.ipv4.conf.default.rp_filter=2
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/98030.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/98030.shtml
英文地址,请注明出处:http://en.pswp.cn/web/98030.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么企业需要高防IP

1. 抵御日益猖獗的DDoS攻击 现代DDoS攻击规模已突破Tbps级别 传统防火墙无法应对大规模流量攻击 高防IP采用分布式清洗中心,可轻松抵御300Gbps以上的攻击流量 2. 保障业务连续性 网络中断1小时可能造成数百万损失 高防IP确保服务99.99%可用性 智能切换机制实…

CSS基础 - 选择器备忘录 --笔记5

目录基础选择器组合器伪类选择器属性选择器选择器可以选中页面上的特定元素并为其指定样式。 CSS有多种选择器。 基础选择器 标签选择器 – tagname:匹配目标元素的标签名。优先级是0,0,1。如:p、h1、div类选择器 – .class:匹配class属性中…

自动驾驶中的传感器技术46——Radar(7)

卫星雷达(又称为分布式雷达)主要讲当前雷达的雷达信号处理计算以及雷达目标相关的一些感知算法都迁移到中央域控进行,雷达端基本只负责数据采集,这样做的影响如下: 雷达端成本与功耗降低; 雷达端采样得到的…

【论文阅读】Diff-Privacy: Diffusion-based Face Privacy Protection

基于扩散模型的人脸隐私保护方法——DiffPrivacy,解决了两类人脸隐私任务:匿名化(anonymization)和视觉身份信息隐藏(visual identity information hiding)。1. 研究背景随着人工智能和大数据技术的普及&am…

React 原理篇 - 深入理解虚拟 DOM

一、什么是虚拟 DOM? 在前端开发中,“虚拟 DOM” 是一个高频出现的术语,尤其在 React 生态中被广泛讨论。但很多开发者对它的理解往往停留在 “JS 对象” 这个表层认知上。 实际上,虚拟 DOM 是一种编程概念—— 在这个概念里&…

对汇编的初理解

此处是一个简单的函数,里面将调用了一个函数add()函数这里是函数的原型这里是调用lcd函数产生的汇编语言,翻译过来就是r11,r0cnt(r4cnt,前文有提及),然后调用add函数,此处BL是指会回到指令的下一…

《Python 自动化实战:从零构建一个文件同步工具》

《Python 自动化实战:从零构建一个文件同步工具》 一、开篇引入:为什么我们需要文件同步? 你是否有过这样的困扰: 公司电脑和家里电脑上都有工作项目,每次更新都要手动复制? U 盘频繁传输文件,不仅麻烦还容易出错? 项目文件夹动辄几 G,每次同步都耗时长、效率低? 在…

工业相机与镜头的靶面尺寸详解:选型避坑指南

在机器视觉系统中,相机与镜头的靶面尺寸匹配是一个非常关键却又经常被忽略的细节。选错了,不但影响图像质量,还可能导致画面“黑角”、视野不符、镜头浪费等问题。 今天我们就用通俗易懂的方式,聊一聊相机与镜头靶面尺寸的那些事儿…

使用 Go 和 go-commons 实现内存指标采集并对接 Prometheus

文章目录一、准备工作二、编写内存采集代码三、运行 Exporter四、接入 Prometheus五、可扩展思路总结在运维和监控领域,资源指标采集 是必不可少的一环。CPU、内存、磁盘、网络这些系统资源,需要实时采集并上报到监控系统中。 本文以 内存指标采集 为例&…

webrtc弱网-IntervalBudget类源码分析与算法原理

一、核心功能 IntervalBudget 类用于基于时间窗口的带宽预算管理。它根据设定的目标比特率(kbps)和一个固定时间窗口(500ms),计算在该时间窗口内可用的字节数(即“预算”),并支持预…

深度学习基本模块:RNN 循环神经网络

循环神经网络(RNN)是一种专门用于处理序列数据的神经网络架构。与处理空间数据的卷积神经网络(Conv2D)不同,RNN通过引入循环连接使网络具有"记忆"能力,能够利用之前的信息来影响当前的输出&#…

React18学习笔记(二) React的状态管理工具--Redux,案例--移动端外卖平台

文章目录一.Redux的基础用法1.示例:普通网页中的Redux计步器2.Redux管理数据的流程3.配套工具和环境准备3.1.配套工具3.2.环境准备4.示例:React项目中的Redux计步器思路步骤step1:创建子模块step2:导入子模块step3:注入store实例step4:React组件内使用store中的数据step5:在组件…

34.Socket编程(UDP)(上)

点分十进制字符串IP 转 32位网络序列IP 分析:1)IP转成4字节 2)4字节转成网络序列 思路: "192.168.1.1" 进行字符串划分,以 "." 为分割符,分割出"192",&qu…

Redis的持久化工具包—RDB AOF

文章目录 前言 一、RDB 持久化(快照持久化) 1. 定义 2. RDB 触发机制 (1)手动触发 (2)自动触发 3. RDB 持久化流程 4. RDB 核心配置 5. RDB 优缺点 二、AOF 持久化(日志持久化) 1. 定…

【Web安全】XXL-JOB框架SRC高频漏洞分析总结

文章目录前言一、核心漏洞分类与技术细节二、漏洞关联利用与攻击路径三、版本演进与修复策略四、安全运维建议五、典型漏洞复现环境搭建六、总结前言 XXL-JOB是国内主流的开源分布式任务调度框架,由徐雪里开发维护,以轻量易用、高可用、适配分布式场景等…

Capacitor 打包后接口访问不到的排查经历

我最近在用 Quasar Capacitor 6 做一个 Android App,前端用的是 Vue3 Quasar,打包交给 Capacitor 去跑在手机的 WebView 里,后端是 FastAPI 提供接口。开发模式下一切顺利,浏览器里访问接口没有任何问题,我甚至觉得打…

【正点原子】Linux应用编程入门~概念及环境介绍

应用编程概念 应用编程(也可称为系统编程)与驱动编程、裸机编程有何不同?系统调用;何为库函数;应用程序的 main()函数;应用程序开发环境的介绍;系统调用 定义系统调用(system call&a…

一、HTML 完全指南:从零开始构建网页

文章目录前言一、 HTML 结构认识 HTML 标签HTML 文件基本结构标签层次结构快速生成代码框架二、 HTML 常见标签详解2.1 注释标签2.2 标题标签 (h1 - h6)2.3 段落标签 (p)2.4 换行标签 (br)2.5 格式化标签2.6 图片标签 (img)2.7 超链接标签 (a)2.8 表格标签基本使用合并单元格2.…

基于POI-TL实现动态Word模板的数据填充:【散点图】特殊处理方案

基于POI-TL实现动态Word模板的数据填充:散点图特殊处理方案 在使用POI-TL进行Word模板动态数据填充时,图表生成是一个常见需求。最近在项目中使用POI-TL处理散点图时遇到了一个特殊问题,经过研究后找到了解决方案,特此记录分享。 问题背景 POI-TL作为一款优秀的Java Wor…

使用node-Express框架写一个学校宿舍管理系统练习项目-前后端分离

今天继续分享一个新的练习项目,是使用node做为后端语言,来写的一个前后端分离项目:学校宿舍管理系统。我们如果想掌握一门编程语言,就是需要大量的练习。所以当我们学习到了一些知识,自己想一下 可以拿学到的知识&…