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

Linux网络服务之防火墙

目录

一.Linux防火墙的基本认识

1.1Netfilter

1.2 防火墙工具介绍

1.2.1 iptables

1.2.2 firewalld

1.3netfilter中五个勾子函数和三种报文流向

1.3.1五个勾子函数

 1.3.2三种报文流向

 二.iptables工具简述

2.1定义

2.2核心概念

(1) 表(Tables)

(2) 链(Chains)

三.iptables配置 

3.1基本语法

3.1.1 管理选项部分

3.1.2 匹配条件部分(基础) 

3.1.3 处理动作部分

 3.2默认策略

3.2.1查看默认策略 

3.2.2设置默认策略

3.2.3删除默认策略 

 3.3扩展匹配条件

3.3.1基础和扩展匹配条件的区别

3.3.2显式和隐式的关键区别

 3.3.3隐式扩展模块

1. TCP 模块 (-p tcp)

2. UDP 模块 (-p udp)

3. ICMP 模块 (-p icmp)

4. 多端口匹配(multiport 模块的特殊情况)

 3.3.4显示扩展模块

1. 状态跟踪(state )

2.多端口匹配(multiport) 

3.IP 范围匹配(iprange)

4.限速控制(limit) 

5.MAC 地址匹配(mac)(不常使用)

 6.字符串匹配(string) 

7. 时间匹配(time) 

8. 连接数限制(connlimit) 

四.SNAT和DNAT

4.1定义

4.2SNAT技术

4.3SNAT功能实现

1.关闭三个虚拟机的防火墙和selinux

2 .下载apache2和httpd

3.配置IP地址和网关 

配置对象:外网服务器

配置对象:网关服务器

 配置对象:内网服务器

4.开启网关服务器的路由转发功能 

5.修改Apache2的配置文件

6. 在网关服务器添加规则

7.配置完毕,进行访问操作

4.4DNAT技术

4.5DNAT功能实现 

实现要求一:

1.配置内网服务器

 2.在网关服务器添加规则

 3.实验验证

​实现要求二:

1.在内网服务器配置

2.在网关服务器

3.实验证明


一.Linux防火墙的基本认识

1.1Netfilter

Linux防火墙是由Netfilter组件提供的,Netfilter工作在内核空间,集成在linux内核中,是linux内核的一个子系统。

1.2 防火墙工具介绍

1.2.1 iptables

由软件包iptables提供的命令行工具,工作在用户空间,用来编写规则,写好的规则被送往netfilter,告诉内核如何去处理信息包。

1.2.2 firewalld

从CentOS 7 版开始引入了新的前端管理工具。

1.3netfilter中五个勾子函数和三种报文流向

1.3.1五个勾子函数

Netfilter 在 Linux 内核协议栈中预设了 5 个钩子点(Hook Points),数据包经过时会触发这些钩子,从而执行相关的防火墙规则(如过滤、NAT、修改等)。

钩子名称触发时机典型用途
PREROUTING数据包刚进入网络层(路由之前)DNAT、raw 处理(如连接跟踪绕过)
INPUT数据包目标是本机(路由之后)过滤进入本机的流量(如 SSH、HTTP)
FORWARD数据包需要被转发(经过本机)过滤转发的流量(如路由器)
OUTPUT本机进程发出的数据包(路由之前)过滤本机发出的流量
POSTROUTING数据包离开网络层(路由之后)SNAT、MASQUERADE(IP 伪装)

 1.3.2三种报文流向

流入本机:PREROUTING --> INPUT-->用户空间进程(访问我的服务, 访问我系统中的应用)

流出本机:用户空间进程 -->OUTPUT--> POSTROUTING(我系统应用发出去的包)

转发:PREROUTING --> FORWARD --> POSTROUTING(分摊流量转发的流量)

 二.iptables工具简述

2.1定义

iptables 是 Linux 系统中最经典的防火墙配置工具,基于 Netfilter 框架,用于管理内核中的网络包过滤规则。它通过定义规则(Rules)、链(Chains)和表(Tables)来控制数据包的流向、修改或丢弃,通常位于/sbin/iptables目录下。

 2.2核心概念

iptables由四个表table和五个链chain以及一些规则组成  

(1) 表(Tables)

iptables 使用不同的表来分类规则功能:

表名主要功能常见用途
filter默认表,用于包过滤(允许/拒绝)防火墙规则(INPUT/OUTPUT/FORWARD)
nat网络地址转换(NAT)端口转发、IP 伪装(SNAT/DNAT)
mangle修改数据包头部(TTL、TOS 等)流量标记、策略路由
raw绕过连接跟踪(conntrack)高性能场景或特殊包处理

优先级: security -->raw-->mangle-->nat-->filter

(2) 链(Chains)

每个表中包含预定义的链,对应 Netfilter 的钩子点:

链名触发时机常用表
PREROUTING数据包进入网络层(路由前)nat, mangle, raw
INPUT目标为本机的数据包filter, mangle
FORWARD经过本机转发的数据包filter, mangle
OUTPUT本机进程发出的数据包filter, nat, mangle
POSTROUTING数据包离开网络层(路由后)nat, mangle

三.iptables配置 

注意:CentOS7默认使用firewalld防火墙,没有安装iptables,若想使用iptables防火墙。必须先关闭firewalld防火墙,再安装iptables。

3.1基本语法

iptables  [-t 规则表]  管理选项  [规则链]  [匹配条件]  [-j 处理动作]

参数说明

参数作用
-t 规则表指定操作的表(filternatmangleraw),默认 filter
管理选项对规则或链的操作(如添加、删除、查看等)
规则链指定规则所属的链(INPUTOUTPUTFORWARDPREROUTINGPOSTROUTING
匹配条件指定规则匹配的数据包特征(如源IP、目标端口、协议等)
-j 动作匹配规则后的处理动作(ACCEPTDROPREJECTLOG 等)

3.1.1 管理选项部分

管理选项用法示例
-A在指定链末尾追加一条 iptables -A INPUT (操作)
-I在指定链中插入一条新的,未指定序号默认作为第一条 iptables -I INPUT 编号
-P指定默认规则 iptables -P OUTPUT ACCEPT (操作)
-D删除 iptables -t nat -D INPUT 2 (操作)
-R修改、替换某一条规则 iptables -t nat -R INPUT 序号(操作)
-L查看 iptables -t nat -L (查看)
-n所有字段以数字形式显示(比如任意ip地址是0.0.0.0而不是anywhere,比如显示协议端口号而不是服务名) iptables -L -n,iptables -nL,iptables -vnL (查看)
-v查看时显示更详细信息,常跟-L一起使用 (查看)
--line-number规则带编号 iptables -t nat -L -n --line-number /iptables -t nat -L --line-number
-F清除链中所有规则 iptables -F (操作)
-N新加自定义链
-X清空自定义链的规则,不影响其他链 iptables -X
-Z清空链的计数器(匹配到的数据包的大小和总和)iptables -t filter -Z INPUT
-E修改自定义链的名称
-S看链的所有规则或者某个链的规则/某个具体规则后面跟编号

3.1.2 匹配条件部分(基础) 

匹配类型用法示例
协议 (-p)指定要匹配的 协议类型,例如TCP、UDP、ICMP等
源/目标IP (-s-d)指定 源/目标P地址或地址范围
接口 (-i-o)指定 输入/输出网络接口

3.1.3 处理动作部分

处理动作用法示例
ACCEPT允许数据包通过
DROP静默丢弃数据包
REJECT拒绝并返回错误
LOG记录日志
DNAT目标地址转换(端口转发)
SNAT源地址转换(共享上网)
MASQUERADE伪装成一个非固定公网IP地址
REDIRECT端口重定向(透明代理)
RETURN返回上一级链

iptables -t filter -A INPUT -s 192.168.91.101 -j DROP
#拒绝所有来自IP地址192.168.91.101的入站流量,且不返回任何响应iptables -I INPUT 2 -s 192.168.91.101 -j DROP
#在INPUT链的第2条位置插入一条规则,丢弃来自192.168.91.101的所有入站数据包。iptables -I INPUT  -s 192.168.91.101 -j DROP
#在INPUT链的最前面(第1条位置)插入一条规则,丢弃来自192.168.91.101的所有入站数据包。iptables  -D INPUT 2
#删除INPUT链中的第2条规则(按规则序号删除)。iptables -D INPUT -s 192.168.91.101 -j REJECT 
#删除INPUT链中匹配条件为 -s 192.168.91.101 -j REJECT的规则(按规则内容删除)。iptables  -t  表名   -F 
#清空指定表(-t)中所有链的规则(Flush)iptables -t filter -R INPUT 1 -s 192.168.91.0/24 -j ACCEPT
#替换filter表中INPUT链的第1条规则,将其修改为允许来自192.168.91.0/24网段的所有入站流量iptables -P INPUT DROP
#设置 INPUT 链的默认策略为 DROP。iptables -t filter -P FORWARD DROP
#设置 filter 表中 FORWARD 链的默认策略为 DROP。iptables -P OUTPUT ACCEPT
#设置 OUTPUT 链的默认策略为 ACCEPT。iptables -vnL
#显示filter表中所有规则   v详细信息    n是数字形式显示iptables -vnL --line-numbers
#显示规则编号

 3.2默认策略

默认策略是 iptables 链(Chain) 的最终处理动作,当数据包不匹配任何规则时,将按照默认策略执行。默认策略是防火墙的最后一道防线,直接影响未明确允许或拒绝的流量。 

有3种基本的默认策略:ACCEPT、DROP 和 REJECT。

策略效果
ACCEPT允许 未匹配的数据包通过(宽松模式,不安全)。
DROP静默丢弃 未匹配的数据包(不返回任何响应,推荐用于安全防护)。
REJECT拒绝并返回错误(如 ICMP port unreachable,适用于调试)。

3.2.1查看默认策略 

iptables -L #查看当前 iptables 的默认策略

3.2.2设置默认策略

#设置默认策略的命令格式
iptables -P <链名> <默认动作><链名>:可以是 INPUT、OUTPUT、FORWARD 等内置链。<默认动作>:通常是 ACCEPT(允许)、DROP(丢弃)或 REJECT(拒绝并返回错误)。

3.2.3删除默认策略 

在 iptables 中,默认策略(Default Policy) 并不是一条具体的规则,而是链的默认行为。因此无法直接清空或者删除默认策略,iptables -F也不行 

只能将原本ACCEPT改成DROP/REJECT,原本DROP/REJECT改成ACCEPT,某种意义上,也等同于删除

 3.3扩展匹配条件

在 iptables 中,匹配条件用于定义哪些数据包会被规则处理,主要分为 基础匹配条件 和 扩展匹配条件 两类。它们的核心区别在于 是否需要额外内核模块支持 以及 功能的复杂度

3.3.1基础和扩展匹配条件的区别

对比项基础匹配条件扩展匹配条件
是否需要 -m是(如 -m conntrack
功能复杂度简单(IP/端口/协议)复杂(状态、内容、时间、限速等)
性能影响低(内核原生支持)中高(需额外模块处理)
典型用途基础流量放行/拒绝高级安全策略、流量整形、防攻击

而扩展模块中又分为显式和隐式

3.3.2显式和隐式的关键区别

特性显式扩展隐式扩展
加载方式必须用 -m 声明自动加载
使用场景复杂功能(如状态跟踪)基础功能(如端口、协议)
示例-m conntrack --ctstate-p tcp --dport

 为什么需要区分?

  • 显式扩展:明确告知管理员使用了哪些高级功能,便于审计和调试。

  • 隐式扩展:简化基础规则的编写,降低学习成本。

 3.3.3隐式扩展模块

在 iptables 中,隐式扩展模块(Implicit Match Extensions)是指那些无需通过 -m 或 --match 显式加载,而是由 iptables 根据协议(-p)或特定选项自动调用的匹配模块。

1. TCP 模块 (-p tcp)

当使用 -p tcp 时,iptables 会自动加载 tcp 模块,支持以下隐式匹配选项:

常用选项

  1. --sport 或 --source-port:匹配源端口(或端口范围,如 --sport 1000:2000)。

  2. --dport 或 --destination-port:匹配目标端口。

  3. --tcp-flags:匹配 TCP 标志(如 SYN,ACK,FIN,RST)。

  4. --syn:匹配 SYN=1,ACK=0 的数据包(用于阻止新连接)。(了解)

 注意:端口范围的表达方式

以sport为例

--sport 1000              匹配源端口是1000的数据包
--sport 1000:3000     匹配源端口是1000-3000的数据包
--sport :3000             匹配源端口是3000及以下的数据包
--sport 1000:             匹配源端口是1000及以上的数据包

​
​
iptables -A INPUT -p tcp --sport 5000:6000 -j ACCEPT
#允许来自外部网络端口在[5000, 6000]内的目标设备发送至本机的数据包通过iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#允许所有通过TCP协议访问本机80端口的入站流量​iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -j DROP
#丢弃所有 TCP 协议的初始连接请求(SYN 包)​
2. UDP 模块 (-p udp)

当使用 -p udp 时,iptables 会自动加载 udp 模块,支持以下隐式匹配选项:

常用选项

  • --sport / --source-port:匹配源端口。

  • --dport / --destination-port:匹配目标端口。 

iptables -A INPUT -p udp --dport 53 -j ACCEPT
#允许接收UDP协议53端口的数据包iptables -A INPUT -p udp --sport 0:1024 -j DROP
#丢弃源端口为0-1024的所有UDP流量
3. ICMP 模块 (-p icmp)

当使用 -p icmp 时,iptables 会自动加载 icmp 模块,支持以下隐式匹配选项:

常用选项

  • --icmp-type:匹配 ICMP 类型(如 8=ping 请求,0=ping 回复)。

​
#A可以ping通B   B 不可以ping通Aiptables -A INPUT -s 192.168.91.101 -j REJECT    双方都不可以ping拒绝请求包iptables -A INPUT -s 192.168.91.101 -p icmp --icmp-type 8 -j REJECT
允许A向B发送ping请求
iptables -A OUTPUT -d 192.168.91.101 -p icmp --icmp-type 8 -j DROP
阻止B主动向A发送ping请求​
4. 多端口匹配(multiport 模块的特殊情况)

虽然 multiport 通常是显式扩展(-m multiport),但在某些情况下,iptables 允许直接使用 --dports 或 --sports 进行多端口匹配(部分版本支持隐式调用)

 3.3.4显示扩展模块

1. 状态跟踪(state )

state模块用于跟踪和管理网络连接的状态

基本格式--state state 连接状态
连接状态含义
NEW新发起的连接(如 TCP 的 SYN 包)
ESTABLISHED已建立的连接(完成握手,如 TCP 的 SYN-ACK
RELATED与现有连接相关的辅助连接(如 FTP 数据通道、ICMP 错误)
INVALID无效或异常的数据包(如伪造的 SYN-ACK
UNTRACKED没有进行跟踪的连接 如:raw表中关闭追踪
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPTiptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT# 允许新的HTTP(80)和HTTPS(443)连接请求

 

2.多端口匹配(multiport 

multiport模块用于同时匹配多个端口(避免写多条规则),其中端口必须是非连续的,以离散的方式匹配,最多支持15个端口。

基本格式-m multiport --dports /--sports 端口号,端口号,端口号
# 允许访问目标端口80(HTTP)、443(HTTPS)、22(SSH)iptables -A INPUT -p tcp -m multiport --dports 22,80,443 -j ACCEPT# 允许源端口为5000-6000或8000的UDP流量iptables -A INPUT -p udp -m multiport --sports 5000:6000,8000 -j ACCEPT

 

3.IP 范围匹配(iprange

iprange模块用于匹配源或目标 IP 地址范围。

常用选项:
--src-range(源 IP 范围)、--dst-range(目标 IP 范围)。

基本格式
-m iprange --src-range IP范围-m iprange --dst-range IP范围
# 允许 192.168.1.100 ~ 192.168.1.200 访问本机 SSH(22端口)iptables -A INPUT -p tcp --dport 22 -m iprange --src-range 192.168.1.100-192.168.1.200 -j ACCEPT# 阻止本机访问 10.0.0.1 ~ 10.0.0.50 的 HTTP(80端口)iptables -A OUTPUT -p tcp --dport 80 -m iprange --dst-range 10.0.0.1-10.0.0.50 -j DROP

 

4.限速控制(limit 

limit模块用于限制数据包的匹配速率(防止洪水攻击)。

基本格式-m limit --limit (单位时间内允许的包数,如 5/sec)

 

iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/minute -j ACCEPT#每分钟最多允许3个SSH连接尝试
5.MAC 地址匹配(mac(不常使用)

MAC模块用于处理与MAC地址有关的防火墙规则,可以限制特定MAC地址的访问或过滤特定MAC地址的流量。

基本格式
-m mac --mac-source MAC地址            #根据源MAC地址匹配
-m mac --mac-destination MAC地址       #根据目标MAC地址匹配

 

iptables -A INPUT -p tcp --dport 22 -m mac --mac-source 00:1A:2B:3C:4D:5E -j ACCEPT#允许MAC地址为00:1A:2B:3C:4D:5E的设备连接SSH(22 端口)
 6.字符串匹配(string 

string模块用于匹配数据包中的特定字符串。

基本格式
-m string --string "要匹配的字符串" --algo bm/kmp #bm kmp为字符串检测算法
iptables -A OUTPUT -p udp --dport 53 -m string --string "blocked.com" --algo bm -j DROP#阻止本机向 DNS 服务器查询 "blocked.com"iptables -A FORWARD -p tcp -m string --string "BitTorrent" --algo bm -j REJECT
iptables -A FORWARD -p udp -m string --string "BitTorrent" --algo bm -j REJECT#阻止包含 "BitTorrent" 字符串的 TCP/UDP 流量

 

 

7. 时间匹配(time 

time模块用于基于时间段的规则,可以限制特定时间段内进出防火墙的数据包。

基本格式
-m time --匹配选项 时间
匹配选项含义格式示例
--timestart规则生效的起始时间--timestart 09:00
--timestop规则生效的结束时间--timestop 18:00
--weekdays指定生效的星期(可单日或范围)--weekdays Mon,Fri 或 --weekdays Mon-Fri
--monthdays指定生效的日期(每月几号)--monthdays 1,15 或 --monthdays 10-20
--datestart规则生效的起始日期(年月日)--datestart 2025-01-01
--datestop规则生效的结束日期(年月日)--datestop 2025-01-02
--utc使用 UTC 时间(默认使用系统本地时间)--utc
--localtz使用系统本地时区(默认行为,与 --utc 互斥)--localtz
8. 连接数限制(connlimit 

connlimit模块用于限制单个 IP 的连接数(防止 DDoS)。

基本格式
-m connlimit --connlimit-匹配选项 匹配条件
选项作用
-above限制大于指定数量的连接(触发动作)
-mask按IP段限制(掩码位数,类似子网划分)
-upto限制 小于 指定数量的连接(触发动作)
-equal 限制 等于 指定数量的连接(触发动作)
iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP#每个 IP 最多允许 3 个 SSH 连接,超过的直接丢弃。

 

四.SNAT和DNAT

4.1定义

SNAT (源地址转换)

定义:修改数据包的源IP地址,通常用于内网设备访问外网。

DNAT (目的地址转换)

定义:修改数据包的目的IP地址,通常用于将外部请求转发到内网特定设备。

4.2SNAT技术

要求:当192.168.52.100去访问外网服务器12.0.0.100时会将内网地址换成外网地址12.0.0.254

4.3SNAT功能实现

 1.关闭三个虚拟机的防火墙和selinux

systemctl stop firewalld 
setenforce 0

2 .下载apache2和httpd

apt install apache2 -y #在外网服务器
apt install apache2 -y #在网关服务器
yum install httpd -y   #在内网服务器

3.配置IP地址和网关 

配置对象:外网服务器
​
#外网服务器vim /etc/netplan/00-installer-config.yamlnetwork:ethernets:ens33:dhcp4: noaddresses:- 12.0.0.100/24gateway4: 12.0.0.254nameservers:addresses: [218.2.135.1,114.114.114.114]version: 2​netplan apply     #加载并应用新配置

配置虚拟网络适配器

 完成以上操作后Xshell会断开,使用远程登录命令:ssh 12.0.0.100 可以重新连接上Xshell

配置对象:网关服务器

首先添加一块网卡,网络连接为仅主机模式

vim /etc/netplan/00-installer-config.yamlnetwork:ethernets:ens33:dhcp4: noaddresses:- 192.168.52.31/24gateway4: 192.168.52.31         #自己就是网关nameservers:addresses: [8.8.8.8,114.114.114.114]ens37:                            #注意网关名称,我的是ens37dhcp4: noaddresses:- 12.0.0.254/24gateway4: 12.0.0.254            #自己就是网关nameservers:addresses: [8.8.8.8,114.114.114.114]version: 2netplan apply

同理使用ssh 192.168.52.31 重新登录Xshell

 配置对象:内网服务器
​
vim /etc/sysconfig/network-scripts/ifcfg-ens33TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=ecb1bac7-1759-49fc-93f5-f377338d02a2
DEVICE=ens33
ONBOOT=yesIPADDR=192.168.52.100   
NETMASK=255.255.255.0
GATEWAY=192.168.52.31   #修改网关
DNS1=218.2.135.1
DNS2=8.8.8.8​systemctl restart network  #重启网络

4.开启网关服务器的路由转发功能 

​
vim /etc/sysctl.conf       #打开系统内核参数配置文件net.ipv4.ip_forward = 1    #将此行写入配置文件,,启用 IPv4 数据包转发功能sysctl -p                  #重新加载/etc/sysctl.conf中的配置,使修改立即生效​

 

5.修改Apache2的配置文件

cd /var/www/html                      #进入Apache的默认网站根目录。ls                                    #会显示默认文件index.htmlecho "dhf dhf dhf" > index.html       #向index.html文件写入内容 "dhf dhf dhf",覆盖原有内容curl 127.0.0.1                        #测试Apache是否返回新修改的index.html#会显示 dhf dhf dhf​​

6. 在网关服务器添加规则

iptables -t nat -A POSTROUTING -o ens37 -s 192.168.52.0/24 -j SNAT --to-source 12.0.0.254

 为了更好呈现实验结果,还需要在外网客户端添加一条访问监控命令

tail -f /var/log/apache2/access.log
#是一个用于实时监控Apache访问日志的Linux命令,主要用于查看网站的访问情况。

 7.配置完毕,进行访问操作

curl 12.0.0.100   #在内网服务器,通过curl命令访问内网的HTTP请求

 

4.4DNAT技术

要求:

  1. 当12.0.0.100去访问网关服务器12.0.0.254的80端口等于访问内网服务器192.168.52.100的80端口
  2. 当12.0.0.100去访问网关服务器12.0.0.254的80端口等于访问内网服务器192.168.52.100的8080端口

4.5DNAT功能实现 

实现要求一:

1.配置内网服务器
​
​systemctl start httpd #开启之前下载的httpdcd /var/www/html      #切换到Apache的默认网站根目录vim index.html        #创建index.html文件。dhf2025
dhf2025
dhf2025
dhf2025​​

  2.在网关服务器添加规则
iptables -t nat -F   #清空已有规则iptables -t nat -A PREROUTING -i ens37 -d 12.0.0.254 -p tcp --dport 80 -j DNAT --to 192.168.52.100
#用于配置DNAT(目标地址转换)规则,将进入指定接口的TCP 80端口流量转发到内部服务器

 3.实验验证
​
#在外网服务器curl 12.0.0.254#​向IP地址12.0.0.254的默认HTTP端口(80)发送GET请求。curl 192.168.52.100
#向内网IP地址192.168.52.100的默认HTTP端口(80)发送GET请求。
​

实现要求二:

1.在内网服务器配置
vim /etc/httpd/conf/httpd.conf #编辑Apache的主配置文件​Listen 8080#将 Apache 的监听端口从默认的 80 改为 8080systemctl restart httpd.service#重启服务​

 

2.在网关服务器
​
​
iptables -t nat -A PREROUTING -i ens37 -d 12.0.0.254 -p tcp --dport 80 -j DNAT --to 192.168.52.100:8080#​将从ens37网卡进入、目标为12.0.0.254:80的TCP流量,转发到内网服务器192.168.52.100:8080iptables -t nat -D PREROUTING 1#因为新添加的规则匹配条件和上一条规则相同,所以必须删除上一条添加的DNAT规则,不然新添加的规则不会生效​

 

3.实验证明

在内网服务器

​
curl 12.0.0.254#向网关服务器的8080端口发送GET请求。curl 192.168.52.100:8080​#向内网服务器的8080端口发送GET请求。

相关文章:

  • Datawhale AI春训营 世界科学智能大赛--合成生物赛道:蛋白质固有无序区域预测 小白经验总结
  • (附邀请码)探秘扣子空间:排盘优美,魅力无限
  • C#学习第17天:序列化和反序列化
  • 数据结构0基础学习堆
  • PHP获取大文件行数
  • 实现Azure Function安全地请求企业内部API返回数据
  • springAi---智能客服
  • Python语法系列博客 · 第4期[特殊字符] 函数的定义与使用:构建可复用的模块
  • 机器学习误差图绘
  • SEO长尾关键词优化实战
  • JAVAEE(网络原理—UDP报头结构)
  • 一个 CTO 的深度思考
  • Vue+Notification 自定义消息通知组件 支持数据分页 实时更新
  • pycharm中怎么解决系统cuda版本高于pytorch可以支持的版本的问题?
  • 【Linux篇】探索进程间通信:如何使用匿名管道构建高效的进程池
  • 洛谷P3373线段树详解【模板】
  • 如何优雅地为 Axios 配置失败重试与最大尝试次数
  • 掌握 MySQL:从命令行操作到数据类型与字段管理
  • Windows上安装FFmpeg的详细指南
  • 树莓派超全系列教程文档--(33)树莓派启动选项
  • 爱奇艺要转型做微剧?龚宇:是误解,微剧是增量业务,要提高投资回报效益
  • 上海市长会见璞跃全球创始人亚美迪,建设国际AI创新创业网络中心节点
  • 31年前失踪的男孩与家人在重庆一派出所团聚:人像比对后DNA鉴定成功
  • “75后”遂宁市长刘会英调任四川省人社厅党组副书记
  • 马上评|遭强奸之后私刑报复,不属正当防卫
  • 教育部增设29种本科新专业,首建战略急需专业超常设置机制