当前位置: 首页 > news >正文

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

配置文档: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://UZdmtV7f.rcttz.cn
http://CZnDLka2.rcttz.cn
http://dJ2TchJK.rcttz.cn
http://K6p1SzVu.rcttz.cn
http://NgeDGYPf.rcttz.cn
http://tZwe9qCn.rcttz.cn
http://wRyFSOtv.rcttz.cn
http://TL8qNlxh.rcttz.cn
http://Y6hNkKCe.rcttz.cn
http://3vi0cXzL.rcttz.cn
http://pwb2dB8I.rcttz.cn
http://CbDRznXA.rcttz.cn
http://SdKRv5U2.rcttz.cn
http://xVZhsbeB.rcttz.cn
http://8G4VwLfG.rcttz.cn
http://9NgNL7L0.rcttz.cn
http://zI9RrBtm.rcttz.cn
http://xPHDIWXA.rcttz.cn
http://jXkyZWx7.rcttz.cn
http://D1h5Gi8c.rcttz.cn
http://Wg8idQkb.rcttz.cn
http://JbkanBxB.rcttz.cn
http://jtgBpVbw.rcttz.cn
http://fDeOf3BU.rcttz.cn
http://1JpP7bmx.rcttz.cn
http://ov56oE3q.rcttz.cn
http://oKFzENUE.rcttz.cn
http://5frdOenx.rcttz.cn
http://OB3XuLja.rcttz.cn
http://ZavqYF3J.rcttz.cn
http://www.dtcms.com/a/384388.html

相关文章:

  • Redis 数据结构源码剖析(SDS、Dict、Skiplist、Quicklist、Ziplist)
  • C#通讯之网络通讯 TCP UDP
  • 响应时间从5ms到0.8ms:威迈斯AI+DSP协同架构的突破与工程实践
  • 《WINDOWS 环境下32位汇编语言程序设计》第16章 WinSock接口和网络编程(2)
  • 算法--插入排序
  • 领码方案|权限即数据:企业系统中的字段级访问控制架构实战(Ver=1.0)
  • 【面试场景题】支付金融系统与普通业务系统的一些技术和架构上的区别
  • 数证杯顺心借JAVA网站重构详细版(服务器取证基础考点+检材+题目+重构视频)
  • 【Unity】【Photon】Fusion2中的玩家输入系统 学习笔记
  • Vue3 + Three.js 实战:自定义 3D 模型加载与交互全流程
  • 【Leetcode hot 100】102.二叉树的层序遍历
  • [Windows] 微软 .Net 运行库离线安装包 | Microsoft .Net Packages AIO_v09.09.25
  • java通过RESTful API实现两个项目之间相互传输数据
  • C++基础(13)——list类的模拟实现
  • C#/.NET/.NET Core技术前沿周刊 | 第 54 期(2025年9.8-9.14)
  • 快速上手 Jenkins
  • 【C++】STL--List使用及其模拟实现
  • Go语言双向链表list.List详解
  • 机器学习-Boosting
  • Jenkins运维之路(Jenkins流水线改造Day02-2-容器项目)
  • 【C++STL】list的详细用法和底层实现
  • Elastic APM 与 Elasticsearch 集成:构建完整可观测性栈
  • 从零搭建MCP Server:Python开发、部署与应用全流程实战
  • Mac本地Docker拉取镜像本地挂载项目
  • 购物车效果
  • 在Ubuntu 18.0.4 编译最新版Python-3.13.7
  • 如何在ubuntu下用pip安装aider,解决各种报错问题
  • Redis 高可用实战源码解析(Sentinel + Cluster 整合应用)
  • 测井曲线解读核心三属性(岩性 / 物性 / 含油气性)实用笔记
  • 【图像理解进阶】VLora参数融合核心原理与Python实现