Linux iptables IP映射 跨网段访问

iptables 针对网段/某段IP 操作 iptables 针对网段/某段IP 操作 1、禁用某网段(-p后也可以是udp 也可以是all) iptables -I INPUT -p tcp -s 192.168.116.0/24 -j DROP 2、禁用某网段的22端口 iptables -I INPUT -p tcp -s 192.168.116.0/24 --dport 22 -j DROP 3、禁用192.168.116.1~192.168.116.20 IP段的 22 端口 iptables -I INPUT -m iprange - 阅读详情

                        Linux iptables IP映射 跨网段访问 

19.1 前言

开发中,遇到一个跨多个网段访问设备内部局域网的问题。刚开始对这个跨网段的问题无从下手,但后面想了又想,难道不能让一个网口直接桥接到另外一个网口吗?顺着这个想法,于是就想到了IP映射,后面又深入到Linux中的netfilter机制。我们可以使用Linux中netfilter的机制将数据包源地址、目标地址进行“如假包换”,改变数据包的流向,从而实现跨网段的访问。该机制其实就是将Linux当做防火墙,局域网内部的IP为服务器IP,外网通过访问Linux,Linux作为中间组件再访问内部服务器,再将服务器的数据给到外网的客户端,从而避免服务器直接与外网相连带来的安全隐患。

如上图示,Linux Device跟PC机是在同一网段,我们要PC机直接访问server,但是server和PC机是在不同网段的,因此不能直接访问。解决这种访问的方法有两个:

第一:将PC的网关配成设备的IP=192.168.36.28,然后开启Linux Device的网络转发功能:(echo 1 > /proc/sys/net/ipv4/ip_forward),让Linux Device作为PC与server之间的网关,这样便PC就可以直接访问server了。(注:此方式只支持一个两个网段不同设备之间的访问,如果中间经过了很多路由,此方法失效。另外此方法需要更改PC的IP比较麻烦)。

第二:使用Linux的netfilter机制,利用Linux进行IP映射。(该方式克服了跨越多网段访问的问题,另外无需更改PC端的IP网关也能实现跨网段访问)。

 

19.2 IP映射过程简介

如果开启了IP映射功能,那么其数据的转发流程将如下示:

第一:当PC发起到服务器的连接请求时,数据包从192.168.36.59发出,到达linux主机192.168.36.28,经过Linux防火墙时将数据包重新构造,把数据包的目的地址由192.168.36.28改为192.168.168.168。

第二:经过第一步处理的数据包进入192.168.168.100,数据包从192.168.168.100发向192.168.168.168时,将数据包的源地址192.168.36.59改为192.168.168.100。

第三:server接收到请求数据包之后响应,响应数据包从192.168.168.168发送到192.168.168.100,在接收到src为192.168.168.168的数据包时,将其目的地址192.168.168.100改为192.168.36.59.

第四:数据包第三步处理后流向192.168.36.28,当数据包流出192.168.36.28时,将其源地址192.168.168.168改为192.168.36.28。

经过上述四个步骤,Linux Device相当于一个透明设备,只是作为中间桥梁。

 

19.3 Iptables移植

第一步:从网上下载iptables源码、Linux2.6以上Linux3.1以下 kernel源码。

第二步:配置内核支持netfilter,相关自行网上查阅。

第三步:编译iptables,编译时一定要加上--enable-static --disable-shared,否则运行命令时会出现一些问题。

./configure --host=arm-linux --prefix=/home/veryarm/iptables/install --enable-static --disable-shared --with-ksource=/home/veryarm/board/kernel

备注:Linux内核3.10版本以上源码存在头文件包含问题,因此我选择了Linux内核3.0版本跟iptables一起编译。

附:编译参考博客:https://blog.youkuaiyun.com/zhang_danf/article/details/50461350

 

19.4 Linux netfilter简介

对于网络数据包转发,IP映射其涉及的是计算机网络知识。Linux内核包含几个模块,其中一大模块就是网络相关部分,里面涉及很多的网络协议栈,其中包含现在要讲述的Linux 防火墙。

当主机收到一个数据包后,数据包先在内核空间中处理,若发现目的地址是自身,则传到用户空间中交给对应的应用程序处理,若发现目的不是自身,则会将包丢弃或进行转发。而iptables实现防火墙功能的原理是:在数据包经过Linux内核的过程中有五处关键地方(PREROUTING、INPUT、OUTPUT、FORWARD、POSTROUTING)时,数据包会经过由iptables在用户空间在这5处设置规则关卡,对经过的数据包进行处理,规则一般的定义为“如果数据包头符合这样的条件,就这样处理数据包”。

由图可知,当一个数据包进入计算机时,首先进入POSTROUTING链,然后内核根据路由表决定数据包的方向。若数据包的目的地址是本机,则将数据包送往INPUT链进行规则检查,当数据包进入INPUT链后,系统的任何进程都会收到它,本机上运行的程序可以发送该数据包,这些数据包会经过OUTPUT链,再POSTROUTING链发出;若数据包的目的地址不是本机,则检查内核是否允许转发,若允许,则将数据包送FORWARD链进行规则检查,若不允许,则丢弃该数据包。若是防火墙主机本地进程产生并准备发出的包,则数据包被送往OUTPUT链进行规则检查。

 

附:具体学习iptables相关网站链接:http://www.zsythink.net/archives/1199

 

19.5 iptables介绍

首先,iptables是用户层可直接修改内核网络协议栈配置的命令。iptables中定义有表,分别表示提供的功能,有filter表(实现包过滤)、nat表(实现网络地址转换)、mangle表(实现包修改)、raw表(实现数据跟踪),这些表具有一定的优先级:raw-->mangle-->nat-->filter。还定义了链,5个链(PREROUTING、INPUT、OUTPUT、FORWARD、POSTROUTING)其实就是每个链都会有自己的规则,那把这些规则挂起来的变成一条规则链,这就是链的由来。

 

Iptables四个表:

filter表:  负责过滤功能,防火墙;内核模块:iptables_filter

nat表:     network address translation,网络地址转换功能;内核模块:iptable_nat

mangle表:  拆解报文,做出修改,并重新封装 的功能;iptable_mangle

raw表:     关闭nat表上启用的连接追踪机制;iptable_raw

Iptables链概念:

PREROUTING      的规则可以存在于:raw表,mangle表,nat表。
INPUT          的规则可以存在于:mangle表,filter表,(centos7中还有nat表,centos6中没有)。
FORWARD         的规则可以存在于:mangle表,filter表。
OUTPUT         的规则可以存在于:raw表mangle表,nat表,filter表。
POSTROUTING      的规则可以存在于:mangle表,nat表。

Iptables中链与表的关系:

 

Iptables匹配规则之后的动作参数。

DNAT:      目标地址转换
ACCEPT:    允许数据包通过
DROP:      丢弃数据包,不做任何回复
EWJECT:    拒绝数据包通过
SNAT:      源地址转换、解决内网用户同一个公网地址上网问题。
MASQUERADE: 是SNAT特殊模式,用于动态的、临时的ip上

iptables -t filter -A INPUT -s 192.168.36.28 -j DROP

-t 指定要操作的表,后接表名

-A 后面添加规则到哪个链,后接chains

-s 指明匹配条件的“源地址”,后接IP地址

-j 表示条件满足时所对应的动作,后接上述动作

-L 表示list

 

以下是配置Linux设备IP映射的脚本。

#!/bin/sh  

SOURCE_CLIENT_IP_ADDR="192.168.36.59"  
ETH_OUTER_IP_ADDR="192.168.12.60"  

TARGET_SERVER_IP_ADDR="192.168.168.168"  
ETH_INTER_IP_ADDR="192.168.168.100"  

help()  
{  

    echo "[inform] visit through multi-networks script";  
    echo "1:your system must support netfilter";  
    echo "2:your system have two ethx at least";  
    echo "3:you must have ipptables tools";  
    echo "4:ifconfig eth0:1 xxx for telnet";  
    echo ">>after you finish operation please shutdown eth:1<<";  
}  

# message  
help;  

echo ">>>> config start!";  
# clear nat tables first(it's selectable)  
iptables -t nat -F;  

# Start Network Forwarding  
echo 1 > /proc/sys/net/ipv4/ip_forward  
sleep 2;  

iptables -t nat -I PREROUTING -d $ETH_OUTER_IP_ADDR -i eth0 -j DNAT --to-destination $TARGET_SERVER_IP_ADDR  

iptables -t nat -I POSTROUTING -d $TARGET_SERVER_IP_ADDR -o eth1 -j SNAT --to-source $ETH_INTER_IP_ADDR  

iptables -t nat -I PREROUTING -d $ETH_INTER_IP_ADDR -i eth1 -j DNAT --to-destination $SOURCE_CLIENT_IP_ADDR  

iptables -t nat -I POSTROUTING -s $TARGET_SERVER_IP_ADDR -o eth0 -j SNAT --to-source $ETH_OUTER_IP_ADDR  

echo ">>>> config finished!";  

 

 

Linux 利用 IP转发使内网连接到公网 项目背景描述 实现方法 我们知道,Linux本身自带iptables包过滤,但是其还有一重要功能,即实现数据的转发,本文就利用Linux 自带 iptables 实现从一个网络接口到另一个接口的IP转发(数据包转发)。IP转发的概念是,使 Linux 机器像路由器一样将数据从一个网络发送到另一个网络。所以,它能作为一个路由器或者代理服务器,实现将一个连接的互联网或者网络连接共享给多个客户端机器。 ...... 阅读详情

相关推荐

NAT 网络地址转换

NAT 网络地址转换。

RAB 2169

通过设置静态路由来实现不同网段可以互相访问的方法

随着宽带接入的普及,很多家庭和小企业都组建了局域网来共享宽带接入。而且随着局域网规模的扩大,很多地方都涉及到2台或以上路由器的应用。当一个局域网内存在2台以上的路由器时,由于其下主机互访的需求,往往需要设置路由。由于网络规模较小且不经常变动,所以静态路由是最合适的选择。可是如果是多网段,又想实现不同网段电脑互访,设置静态路由就要掌握方法了。     本文作为一篇初级入门类文章,会以几个简单实

System Architect 4万+

Linux端口映射转发全解析:iptables、firewalld与socat实战

Linux端口映射转发是网络运维中的高频需求,其本质是借助内核Netfilter框架对数据包进行目标地址与端口的改写。理解DNAT与SNAT的分工、ip_forward开关以及连接跟踪机制,是掌握端口转发的核心前提。内核态工具iptables/nftables适合长期稳定的生产转发,用户态工具socat则便于临时调试与特殊场景,firewalld则提供更友好的管理封装。无论是暴露本机服务到局域网、跨网段访问后端主机,还是配合Docker容器端口映射,都离不开这些基础原理。掌握一套从规则验证到故障排查的完整方

weixin_34072458的博客 461

同一个内网,一台电脑如何跨网段访问,访问多个不同网段的IP

我本机的IP是192.168.1.23,电脑所有的内网有192.168.1.*和192.168.2.*,在没有设置之前,我只能访问192.168.1.*的网段。

有问题可关注公众号:前端研究院 后台输入问题回复 5980

CANdelaStudio实战:如何用19服务快速编辑DTC快照数据(附Excel模板)

本文详细介绍了在CANdelaStudio中利用19服务高效编辑DTC快照数据的进阶技巧。通过导出DTC池至Excel进行批量编辑,结合‘Copy from DTC Pool’功能实现配置复用,并分享了构建自定义Excel模板与字段映射的实用方法,帮助工程师将繁琐的手动配置转化为工程化的批量处理,大幅提升诊断数据库开发效率。

weixin_29230773的博客 191

Simulink标定工作流优化:当A2L文件遇到ELF,如何用Matlab脚本打通‘最后一公里’?

本文探讨了Simulink标定工作流中A2L与ELF文件处理的自动化解决方案。通过Matlab脚本实现A2L文件智能合并与ELF文件自动匹配,解决了传统手动操作效率低下和易出错的问题,显著提升汽车ECU开发效率。重点介绍了脚本实现细节及持续集成系统集成方案。

weixin_30564785的博客 338

ARP的跨网段访问

假设有两台设备A和B在不同的网段,并同时连接在路由器上,当A向B发送ping包时,有以下过程: 1)A查找本地arp表,没有发现B的mac,则A网络内广播arp,arp的源ip和源mac是A自己,目标

m0_51737348的博客 6892

MCP详解:手把手教你理解和如何使用各种开源MCP服务

MCP 作为一种开放协议,为 AI 模型与外部世界的连接提供了标准化的解决方案。它不仅降低了开发门槛,还极大地扩展了 AI 应用的边界。无论是开发者还是普通用户,都可以通过 MCP 更高效地利用 AI 技术,实现更多智能化的功能。

王哥儿聊AI的博客 6056

Linux网络转发和端口映射的笔记

最近研究了一下Linux平台的网络IP转发和端口映射方面的东西,作了一点笔记。在学习时,查了很多资料,有的写的不是很清楚明白,而自己对这方面了解又不多,花的时间还是不少的。

李迟的专栏 9105

Oracle GoldenGate (OGG) 实战:从安装到故障排查的完整避坑指南

本文提供了一份详尽的Oracle GoldenGate实战指南,涵盖从环境准备、核心进程配置到性能调优与故障排查的全过程。重点解析了OGG安装与部署中的常见陷阱,并分享了确保数据同步链路稳定运行的高级运维技巧与常见故障处理方法,帮助技术人员高效避坑。

weixin_29230649的博客 380

10X Visium空间转录组学入门:从芯片结构到数据分析全流程解析(附避坑指南)

本文全面解析10X Visium空间转录组学技术,从芯片物理结构、探针化学原理到湿实验全流程操作与避坑指南,并详细介绍了从FASTQ数据到空间可视化的核心分析流程。文章旨在帮助科研人员跨越从理论到实操的鸿沟,掌握从样本准备、文库构建到使用Space Ranger和Seurat进行数据分析与可视化的完整路径,为组织生物学研究提供清晰的实践指引。

weixin_29306011的博客 163

ubuntu iptables nat ip 端口映射

1)A机公网IP:112.123.23.49 , B机公网IP:112.123.23.50,公网网卡为eth0 目的:通过访问112.123.23.49:25000访问到112.123.23.50:25000 在A机上输入命令: iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp -d 112.123.23.49 --dport 25000

JK0803_wantao的专栏 2785

在鸿蒙中使用AVPlayer完成视频的播放【坚果派】

播放的全流程包含:创建AVPlayer,设置播放资源和窗口,设置播放参数(音量/倍速/缩放模式),播放控制(播放/暂停/跳转/停止),重置,销毁资源。5.准备播放:调用prepare(),AVPlayer进入prepared状态,此时可以获取duration,设置缩放模式、音量等。8.退出播放:调用release()销毁实例,AVPlayer进入released状态,退出播放。6.视频播控:播放play(),暂停pause(),跳转seek(),停止stop() 等操作。今天我们来看一下视频如何正常播放。

坚果的博客 4057

一台 Ubuntu 搞定两网段互通!手把手教你 iptables 的 SNAT 和 DNAT 实战

特性SNAT (源地址转换)DNAT (目的地址转换)动作修改数据包的源 IP修改数据包的目的 IP挂载点链(出站前修改)PREROUTING链(入站时修改)场景内网机器访问互联网(共享上网)互联网用户访问内网服务器(端口映射)路由影响数据包返回时自动解 NAT,无需额外配置数据包返回时需保证网关路由表正确。

FZSR548190的博客 450

数学建模学习(75):全局敏感性分析Morris 方法

敏感性分析 (SA) 是分析不同应用条件下模型行为的基本实践。提出了许多 SA 技术,从简单的筛选方法到计算成本高昂的基于方差的方法。本篇内容我们通过将 Morris 方法来对模型进行分析。

全栈川川 1万+

操作系统实验一到实验九合集(哈工大李治军)

操作系统实验一到实验九合集(哈工大李治军) 有详细代码及注释,程序已在本地测试,均能跑通

leoabcd12的博客 5万+

iptables配置NAT实现端口转发与ss命令的讲解

nat的使用与ss命令

weixin_47680367的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Linux防火墙:iptables与firewalld详解

摘要:本文系统介绍了Linux防火墙的两种主流工具iptables和firewalld。首先阐述了防火墙的核心价值是作为网络流量的访问控制机制,通过规则实现流量过滤、服务暴露限制和日志记录。其次详细解析了iptables的"四表五链"架构、规则语法和操作命令,以及firewalld基于"区域+服务"的动态管理模型。通过典型场景对比两种工具的实现方式,如SSH/HTTP服务放行、IP禁止和端口转发等。

2301_80792972的博客 1000

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Linux iptables端口转发实战:DNAT+SNAT原理与配置

端口转发是网络通信中的基础能力,指将到达某IP端口的流量重定向至另一目标地址与端口。其底层依赖Linux内核Netfilter框架与iptables工具链,通过DNAT(目的地址转换)修改入向数据包目标,再配合SNAT(源地址转换)确保响应包正确返回,形成完整通信回路。该技术不依赖应用层代理,具备零延迟、低开销、全协议兼容等工程优势,广泛应用于跳板机中转、虚拟机服务暴露、Docker网络桥接及WSL2端口映射等场景。本文聚焦iptables nat表的PREROUTING与POSTROUTING链协同机制,

weixin_33827731的博客 292

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

iptables实战:局域网共享上网与端口映射配置全解析

网络地址转换(NAT)是Linux网络运维中最核心的基础技术之一,它让私有网络能够借助单个公网IP访问互联网,同时也能将内网服务安全地发布到公网。理解NAT的SNAT、DNAT原理以及数据包在Netfilter框架中的转发路径,是配置Linux网关的前提。NAT技术广泛应用于办公室共享上网、实验室服务器发布、云主机端口代理等场景。iptables作为经典的防火墙规则管理工具,凭借其直观的链式结构和强大的排错能力,仍然是实现局域网共享上网与端口映射的可靠选择。本文结合实际踩坑经验,从内核参数、规则编写、回程路

weixin_33816821的博客 237

Iptables-外网地址及端口映射到内网地址及端口

1.要求:把外部IP地址及端口映射到内部服务器地址及端口在10段主机可以通过访问10.0.0.141:80,即可访问到192.168.1.17:9000 提供的web服务2.192.168.1.17主机web环境搭建[root@test ~]# yum install epel-release -yum[root@test ~]# yum install nginx -y   [root@test...

南风喃的博客 3746

嵌入式linux实现NAT端口映射

场景:   1、嵌入式linux系统内已经在2个网卡,分别为eth0(内网物理网卡,ip地址:192.168.1.4)以及ppp1(VPN客户端通过PPTP协议拨号生成的虚拟网卡,ip地址:192.168.6.176)。   2、监控摄像头(ip地址:192.168.1.108,端口:37777)与eth0网卡处于同一个网段;监控摄像头客户端软件(ip地址:192.168.6.8)与...

weixin_30337157的博客 363

从入门到放弃?一次搞懂Linux端口转发的四种姿势(rinetd/iptables/Nginx/SSH)配置避坑指南

本文详细介绍了Linux端口转发的四种主流方法:rinetd、iptables、Nginx和SSH隧道,涵盖从基础配置到高级技巧的全方位指南。针对每种工具提供具体配置示例和常见避坑策略,帮助运维工程师掌握内网穿透、服务暴露等关键技能,特别强调iptables规则优化和SSH隧道安全加固等实用技巧。

weixin_30412167的博客 593

Linux iptables 防火墙原理与实操——从四表五链到 NAT 配置

firewall 是更上层的防火墙管理工具,通常作为 iptables/nftables 的前端,提供简化配置和动态规则管理。firewalld:默认用于 RHEL/CentOS/Fedora,支持动态更新和区域(zone)概念。

m0_63369513的博客 171

linux服务-iptables 原理及示例详解

iptables 是 Linux 内核中的包过滤防火墙工具,基于框架工作。它在数据包传输的关键路径上设置 “钩子点”,通过一系列规则链对数据包进行检查、修改或丢弃,是 Linux 系统网络安全防护的核心工具。数据包到达网卡后,进入内核网络协议栈;数据包按顺序经过不同的,链中包含若干按顺序排列的;规则按添加顺序依次匹配,匹配成功则执行指定,后续规则不再生效;若所有规则均不匹配,数据包将执行该链的。fill:#333;color:#333;color:#333;fill:none;匹配成功。

梁正雄,乱七八糟的都研究研究 876

Lucky|端口转发+DDNS|动态IP不再手动改|快速上手

凌晨三点重启路由,IP又变了,NAS域名全指向旧地址。Lucky是面向家庭网络用户的接入工具:DDNS自动跟踪动态IP,端口转发把公网流量送进内网,还能远程唤醒电脑。 ## ⚙️ Lucky能干什么 Lucky是gdy维护的Go语言网络工具。它跑在x86、ARM Linux上,比如家庭路由器。它把公网访问问题打包处理。动态域名、端口转发、反向代理、远程唤醒,都在一个后台里配置。 - **端口

gitblog_00709的博客 841
上一篇: stm32收发 wiegand 韦根协议开发详解
下一篇: QT 添加背景图像并图像自适应窗口大小
Chasing_Chasing
博客等级 码龄10年 233粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值