iptables服务
一、iptables介绍iptables服务是用户管理内核空间的iptables的管理工具通过iptables书写内核空间的iptables策略iptables的规则是至上而下的读取方式遇到与数据包信息匹配的规则后直接采用iptables的规则默认保存在内存中如果需要永久保存需要把策略以字符的形式保存到/etc/sysconfig/iptables中二、iptables命令的语法格式及常用参数语法格式如下iptables -t 表名 -A/I/D/R 规则链名[规则号] -i/o 网卡名 -p 协议名 -s 源ip/源子网 --sport 源端口 -d 目标IP/目标子网 --dport 目标端口 -j 动作常用参数如下参数说明-t对指定的表进行操作table必须是raw,nat,filter,mangle中的一个。默认是filter表。-p指定要匹配的数据包协议类型-S-source address/mask:把指定的一个或者一组地址作为源地址按此规则进行过滤。当后面没有mask时address是一个地址比如192.168.1.1;当mask指定时可以表示一组范围内的地址比如192.168.1.0/255.255.255.0-d--destinationaddress/mask:地址格式同上但这里指定地址为目的地址按此进行过滤-i--in-interface name:指定数据包的来自来自网络接口比如最常见的eth0。注意它只对INPUT,FORWARD,PREROUTING这三个链起作用。如果没有指定此选项说明可以来自任何一个网络接口。同前面类似!表示取反-0---0ut-interfacename:指定数据包出去的网络接口。只对OUTPUT,FORWARD,POSTROUTING三个链起作用-L--list[chain]列出链chain上面的所有规则如果没有指定链列出表上所有链的所有规则-A--append chain rule-specification:在指定链chain的末尾插入指定的规则也就是说这条规则会被放到最后最后才会被执行。规则是由后面的匹配来指定-i--insert chain[rulenum]rule-specification:在链chain中的指定位置插入一条或多条规则。如果指定的规则号是1,则在链的头部插入。这也是默认的情况如果没有指定规则号-D--delete chain rule-specification -D,-delete chain rulenum:在指定的链chain中删除一个或多个指定规则-RnumReplays替换/修改第几条规则-P--policy chain target:为指定的链chain设置策略target。注意只有内置的链才允许有策略用户自定义的是不允许的-F--flush[chain]清空指定链chain上面的所有规则。如果没有指定链清空该表上所有链的所有规则-N--new-chain chain用指定的名字创建一个新的链-X--delete-chain[chain]:删除指定的链这个链必须没有被其它任何规则引用而且这条上必须没有任何规则。如果没有指定链名则会删除该表中所有非内置的链-E--rename-chain old-chain new-chain:用指定的新名字去重命名指定的链。这并不会对链内部照成任何影响-Z--zero[chain]:把指定链或者表中的所有链上的所有计数器清零-j--jump target指定目标:即满足某条件时该执行什么样的动作。target可以是内置的目标比如ACCEPT,也可以是用户自定义的链-h显示帮助信息三、firewalld服务管理方式与iptables的管理方式区别iptables是基于Linux内核的Netfilter子系统构建的直接操作Netfilter; 而firewalld则通过libnftables库与Netfilter交互提供了一个更高的抽象层iptables使用基于表的规则集包括filter、nat、mangle、raw及securty五个表firewalld采用基于区域的规则集包括default、public、internal、external和dmz五个区域iptables的配置较为复杂需要用户掌握特定的命令行语法firewalld提供了更直观和灵活的配置方式支持命令行和图形界面由于firewalld通过libnftables库与Netfilter交互其性能相对于直接操作Netfilter的iptables来说较低。由于firewalld通过libnftables库与Netfilter交互其性能相对于直接操作Netfilter的iptables来说较低。四、实验环境主机名 网卡 用途node1 nat-172.25.254.10 外网主机node2 nat-172.25.254.100 路由器hostonly-192.168.0.100node3 hostonly-192.168.0.10 内网主机五、iptables启用[rootnode2 ~]# dnf install iptables-nft-services.noarch -y[rootnode2 ~]# systemctl start iptables.service[rootnode2 ~]# iptables -nLChain INPUT (policy ACCEPT)target prot opt source destinationACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHEDACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0ACCEPT all -- 0.0.0.0/0 0.0.0.0/0ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain FORWARD (policy ACCEPT)target prot opt source destinationREJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain OUTPUT (policy ACCEPT)target prot opt source destination六、三张表五条链Iptables是基于Netfilter框架实现的报文选择系统iptables用于报文的过滤、网络地址转换和报文修改等功能Iptables本质上是包含了5个规则表而规则表则包含了一些列的报文的匹配规则以及操作目标1、raw表第一优先级的表设置raw表规则后不会对数据包进行链接跟踪和NAT转换使用于PREROUTING和OUTPUT链对应的动作为NOTRACK。2、mangle表第二优先级的表根据规则修改数据包的TOS(Type Of Service,服务类型)、TTL(TimeToLive,生存周期)以及设置Mark标记以实现Qos以及策略路由等。3、nat表第三优先级的表网络地址转换表用于修改源和目的的地址分SNAT(源目的地址转换)和DNAT(目的地址转换)。4、filter表第四优先级的表用于控制到达链(forward链、input链、output链)上的数据包是放行(accepte)、丢弃(drop)或者拒绝(reject)。5、security表最不常用的表(通常我们说iptables只有4张表security表是新加入的特性),用于在数据包上应用SELinux。NFIPPREROUTING:位于路由之前报文一致性检查之后(报文一致性检查包括报文版本、报文长度和checksumNF_IP_LOCAL_IN:位于报文经过路由之后并且目的是本机的NF_IP_FORWARD:位于在报文路由之后目的地非本机的。NF_IP_LOCAL_OUT:由本机发出去的报文并且在路由之前。NF_IP_POST_ROUTING:所有即将离开本机的报文七、filter表在本机设定apache只能被192.168.0.0/24网段访问[rootnode2 ~]# echo 172.25.254.100 /var/www/html/index.html[rootnode2 ~]# systemctl enable --now httpdCreated symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.[rootnode2 ~]# iptables -I INPUT 5 -p tcp --dport 80 -s 192.168.0.0/24 -m state --state new -j ACCEPT[rootnode2 ~]# iptables -nLChain INPUT (policy ACCEPT)target prot opt source destinationACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHEDACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0ACCEPT all -- 0.0.0.0/0 0.0.0.0/0ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22ACCEPT tcp -- 192.168.0.0/24 0.0.0.0/0 tcp dpt:80 state NEWREJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited测试[rootnode1 ~]# curl 172.25.254.100curl: (7) Failed to connect to 172.25.254.100 port 80: 没有到主机的路由[rootnode3 ~]# curl 192.168.0.100172.25.254.100八、nat表1.内网访问外网[rootnode3 ~]# ping 172.25.254.10ping: connect: 网络不可达#设定网关[rootnode3 ~]# nmcli connection modify eth0 ipv4.gateway 192.168.0.100[rootnode3 ~]# route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0[rootnode3 ~]# nmcli connection reload[rootnode3 ~]# nmcli connection up eth0连接已成功激活D-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/6[rootnode3 ~]# route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface0.0.0.0 192.168.0.100 0.0.0.0 UG 100 0 0 eth0192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0在双网卡主机中设置出战策略把所有从此主机中出去的数据包来源都转换成eth0网卡的ip[rootnode2 ~]# iptables -D FORWARD 1[rootnode2 ~]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.100[rootnode2 ~]# iptables -t nat -nLChain PREROUTING (policy ACCEPT)target prot opt source destinationChain INPUT (policy ACCEPT)target prot opt source destinationChain OUTPUT (policy ACCEPT)target prot opt source destinationChain POSTROUTING (policy ACCEPT)target prot opt source destinationSNAT all -- 0.0.0.0/0 0.0.0.0/0 to:172.25.254.100#打开内核路由功能[rootnode2 ~]# sysctl -a | grep ip_forwardnet.ipv4.ip_forward 0[rootnode2 ~]# vim /etc/sysctl.confnet.ipv4.ip_forward1[rootnode2 ~]# sysctl -pnet.ipv4.ip_forward 1[rootnode2 ~]# sysctl -a | grep ip_forwardnet.ipv4.ip_forward 1测试[rootnode3 ~]# ping 192.168.0.100PING 192.168.0.100 (192.168.0.100) 56(84) 比特的数据。64 比特来自 192.168.0.100: icmp_seq1 ttl64 时间0.292 毫秒[rootnode1 ~]# w -i11:37:55 up 1:36, 3 users, load average: 0.00, 0.00, 0.00USER TTY FROM LOGIN IDLE JCPU PCPU WHATroot tty1 - 10:02 1:35m 0.01s 0.01s -bashroot pts/0 172.25.254.1 10:32 2.00s 0.04s 0.00s w -iroot pts/1 172.25.254.100 11:37 6.00s 0.00s 0.00s -bash2.外网访问内网[rootnode3 ~]# ping 192.168.0.100PING 192.168.0.100 (192.168.0.100) 56(84) 比特的数据。64 比特来自 192.168.0.100: icmp_seq1 ttl64 时间0.292 毫秒[rootnode1 ~]# w -i11:37:55 up 1:36, 3 users, load average: 0.00, 0.00, 0.00USER TTY FROM LOGIN IDLE JCPU PCPU WHATroot tty1 - 10:02 1:35m 0.01s 0.01s -bashroot pts/0 172.25.254.1 10:32 2.00s 0.04s 0.00s w -iroot pts/1 172.25.254.100 11:37 6.00s 0.00s 0.00s -bash测试[rootnode1 ~]# ssh -l root 172.25.254.100Activate the web console with: systemctl enable --now cockpit.socketRegister this system with Red Hat Insights: rhc connectExample:# rhc connect --activation-key key --organization orgThe rhc client and Red Hat Insights will enable analytics and additionalmanagement capabilities on your system.View your connected systems at https://console.redhat.com/insightsYou can learn more about how to register your systemusing rhc at https://red.ht/registrationLast login: Tue Jul 21 10:33:22 2026 from 192.168.0.1[rootnode3 ~]# ip a1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:1e:58:f3 brd ff:ff:ff:ff:ff:ffaltname enp3s0altname ens160inet 192.168.0.10/24 brd 192.168.0.255 scope global noprefixroute eth0valid_lft forever preferred_lft foreverinet6 fe80::575a:d7ac:c15a:3503/64 scope link noprefixroutevalid_lft forever preferred_lft forever[rootnode3 ~]#

相关新闻

折腾 Docker 后,我为什么让如意浏览器回到 Windows

折腾 Docker 后,我为什么让如意浏览器回到 Windows

OK,OK,大家好,欢迎大家来到大鹏 AI 教育,我是张大鹏。 今天我想复盘一个有点反常的决定。 我不是因为 Docker 做不出来而放弃它。恰恰相反,我已经为如意浏览器做出了多阶段镜像、Compose 开发环境、真实 Camoufox 容器…

2026/10/3 16:59:42 阅读更多 →
WTConv:结合小波变换的卷积神经网络创新设计

WTConv:结合小波变换的卷积神经网络创新设计

1. WTConv技术背景与核心价值 小波变换卷积(WTConv)是ECCV24会议上提出的一种创新性神经网络层设计,它巧妙地将传统小波变换的多分辨率分析与现代卷积神经网络相结合。这种设计在保持参数效率的同时,显著扩大了卷积核的感受野范围…

2026/10/13 12:20:55 阅读更多 →
C2000系统控制寄存器:复位、NMI与软件复位机制深度解析

C2000系统控制寄存器:复位、NMI与软件复位机制深度解析

1. 系统控制寄存器:嵌入式系统的“神经中枢”在嵌入式系统开发,尤其是工业控制、汽车电子这类对可靠性要求极高的领域,系统控制寄存器(System Control Registers)扮演着“神经中枢”的角色。它不像GPIO、UART那样直接与…

2026/10/13 11:29:07 阅读更多 →

最新新闻

开源AI工具实战:让大模型从聊天到本地自动化干活

开源AI工具实战:让大模型从聊天到本地自动化干活

1. 从聊天到干活:这个开源AI工具到底在解决什么问题大多数人第一次接触AI,都是通过对话框。你问一句,它答一句,聊得挺热闹,但聊完之后呢?该手动复制的还得手动复制,该自己打开软件操作的还得自己…

2026/10/13 22:00:44 阅读更多 →
OpenClaw本地AI助手:工具调用与插件化架构实战指南

OpenClaw本地AI助手:工具调用与插件化架构实战指南

1. 从"能聊天"到"能干活":个人智能助手到底缺了什么大多数人第一次接触AI助手,体验路径都差不多:打开一个对话框,问几个问题,得到几段回答,然后关掉。下次再打开,它不记得你…

2026/10/13 22:00:44 阅读更多 →
Petrel成本透明化:从黑盒到明白账的业务价值展示指南

Petrel成本透明化:从黑盒到明白账的业务价值展示指南

痛点很直接:Petrel这种专业建模软件,年度许可证费用不低,加上配套硬件、算力、数据存储,一年下来是一笔不小的开销。过去这笔钱怎么花的、谁用了多少、给业务带回了什么,基本是一笔糊涂账。业务部门看费用报表只看得到…

2026/10/13 22:00:44 阅读更多 →
Cadence许可证管理平台落地实践:从FlexNet监控到配额治理

Cadence许可证管理平台落地实践:从FlexNet监控到配额治理

做EDA工具管理的朋友应该都有过这种经历:上午十点,仿真任务刚提交,脚本就报出License checkout failed,群里马上炸锅;你随手敲一条lmstat -a,发现某个用户把几十个 feature 占得满满当当,但任务…

2026/10/13 22:00:44 阅读更多 →
COMSOL多物理场耦合模拟烧开水:两相流相变建模全解析

COMSOL多物理场耦合模拟烧开水:两相流相变建模全解析

烧开水这个事,人人都会,但你要是想把“水是怎么烧开的”这事弄得清清楚楚,只靠肉眼真不够。锅里气泡密密麻麻、界面扭来扭去,背后其实是流动、传热、相变三个物理过程在互相纠缠。我第一次在COMSOL里搭流体-热-相场耦合模型去模拟…

2026/10/13 22:00:44 阅读更多 →
LitePal事务实战:保证批量写入原子性与数据一致性

LitePal事务实战:保证批量写入原子性与数据一致性

做客户端开发这些年,“数据写到一半挂了”这种情况碰到的次数真不算少。尤其是一直在用LitePal这种轻量级ORM框架的,前期CRUD写起来确实爽,但真到了批量导入、多表联动这种需要“要么全成、要么全败”的场景,少了官方的事务支持&a…

2026/10/13 21:59:44 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →