Linux中iptables命令

iptables 命令详解

iptables 是 Linux 系统内核级防火墙工具,用于配置、维护和检查 IPv4 数据包过滤规则(IPv6 使用 ip6tables)。以下是核心用法:


一、基本概念
  1. 表(Tables)

    • filter:默认表,用于数据包过滤(允许/拒绝)。
    • nat:网络地址转换(如端口转发)。
    • mangle:修改数据包头部(如 TTL)。
    • raw:连接跟踪前处理数据包。
  2. 链(Chains)

    • INPUT:处理进入本机的数据包。
    • OUTPUT:处理本机发出的数据包。
    • FORWARD:处理经本机转发的数据包。
    • PREROUTING/POSTROUTING:用于 nat 表(路由前/后处理)。

二、命令语法
iptables [-t 表名] 命令选项 [链名] [规则匹配] -j 目标动作

  • -t 表名:指定表(默认 filter)。

  • 命令选项

    • -A:追加规则到链尾。
    • -I:插入规则到链首(可指定位置)。
    • -D:删除规则。
    • -L:列出规则。
    • -F:清空链中所有规则。
    • -P:设置链的默认策略(如 ACCEPT/DROP)。
  • 规则匹配

    • -p:协议(tcp, udp, icmp)。
    • -s:源 IP 地址。
    • -d:目标 IP 地址。
    • --dport:目标端口(需配合 -p tcp/udp)。
    • -i:输入网卡(如 eth0)。
  • 目标动作(-j

    • ACCEPT:允许数据包。
    • DROP:丢弃数据包(无响应)。
    • REJECT:拒绝并返回错误。
    • SNAT:源地址转换(用于 nat 表)。
    • DNAT:目标地址转换(用于 nat 表)。

三、常用示例
  1. 允许 SSH 访问(端口 22)

    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    

  2. 拒绝来自特定 IP 的访问

    iptables -A INPUT -s 192.168.1.100 -j DROP
    

  3. 端口转发(将 8080 转发到 80)

    iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80
    

  4. 允许 ping 请求

    iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
    

  5. 设置默认策略

    iptables -P INPUT DROP    # 默认丢弃所有输入
    iptables -P FORWARD DROP  # 默认丢弃所有转发
    


四、规则管理
  1. 查看规则

    iptables -L -n -v  # -n 禁用域名解析,-v 显示详细信息
    

  2. 清空所有规则

    iptables -F        # 清空 filter 表
    iptables -t nat -F # 清空 nat 表
    

  3. 保存规则(重启后生效)

    iptables-save > /etc/iptables/rules.v4  # Debian/Ubuntu
    service iptables save                   # CentOS/RHEL
    


五、注意事项
  1. 规则顺序:iptables 按从上到下顺序匹配规则,首条匹配后停止。
  2. 连接跟踪:使用 -m state --state ESTABLISHED,RELATED 允许已建立的连接。
  3. 测试前勿锁死:远程操作时,先允许 SSH 端口,再设置 DROP 策略,避免断开连接。

提示:复杂场景建议结合 iptables-persistentfirewalld 管理规则。

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

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

相关文章

【springboot 技术代码】集成mongodb 详细步骤

SpringBoot 深度集成 MongoDB 详细步骤1. MongoDB 简介与 SpringBoot 集成概述1.1 SpringBoot 集成 MongoDB 的优势2. 环境准备与依赖配置2.1 版本兼容性矩阵2.2 详细依赖配置2.3 详细配置说明2.3.1 单节点配置2.3.2 集群配置3. 实体映射与集合管理3.1 详细实体类注解3.2 索引管…

云计算-K8s 运维:Python SDK 操作 Job/Deployment/Pod+RBAC 权限配置及自定义 Pod 调度器实战

简介 在 Kubernetes 运维中,自动化资源管理与定制化调度是提升效率的核心需求,而 Python SDK 是实现这一目标的关键工具。本次围绕 K8s Python SDK 展开全场景实战,以 “代码 + 效果” 双维度,覆盖 5 大核心运维场景,Job 自动化创建(先清理重名资源再部署计算任务)、De…

Excel 转化成JSON

Excel 转化成JSON import pandas as pd import json import osdef excel_to_json(excel_path, sheet_name0, orientrecords, save_pathNone):"""将Excel文件转换为JSON格式并可选择保存到文件参数:excel_path: Excel文件路径sheet_name: 工作表名称或索引&#…

Linux 进阶用法

一、系统性能调优系统性能调优是 Linux 管理中的关键技能,它能显著提升系统在不同应用场景下的表现。通过针对性的调优,可以解决资源瓶颈问题,提高服务响应速度,优化资源利用率。(一)CPU 性能调优知识点详解…

14.苹果ios逆向-app的调试方式

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于:图灵Python学院 工具下载: 链接:https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取码&#xff1…

深入理解 React useEffect

一、useEffect基础概念 1、什么是副作用(Side Effects)? 在React中,副作用是指那些与组件渲染结果无关的操作,例如: 数据获取(API调用)手动修改DOM设置订阅或定时器记录日志 2、useE…

Yapi中通过MongoDB修改管理员密码与新增管理员

如何在Docker部署的Yapi中通过MongoDB修改管理员密码与新增管理员便捷管理Yapi权限:无需前端重置,直接通过数据库操作修改密码及添加管理员一、进入MongoDB容器并连接数据库 首先,通过以下命令进入运行中的MongoDB容器: docker ex…

【EasyR1】GRPO训练

官方github:https://github.com/hiyouga/EasyR1 参考:https://opendeep.wiki/hiyouga/EasyR1/quickstart 代码和环境配置 github:https://github.com/hiyouga/EasyR1 新建一个虚拟环境: python -m venv easyr1 source easyr1/b…

2025年KBS SCI1区TOP,新颖奖励与ε-贪婪衰减Q-learning算法+局部移动机器人路径规划,深度解析+性能实测

目录1.摘要2.新颖奖励与ε-贪婪衰减Q-learning算法3.结果展示4.参考文献5.代码获取6.算法辅导应用定制读者交流1.摘要 路径规划是移动机器人的核心任务,需要在高效导航的同时规避障碍。本文提出了一种改进Q-learning算法——定制化奖励与ε-贪婪衰减Q-learning&…

运行npm run命令报错“error:0308010C:digital envelope routines::unsupported”

下载的前后端分离架构的开源项目,运行“npm run serve”命令启动前端服务时报错“error:0308010C:digital envelope routines::unsupported”,这个错误通常是由于Node.js版本与项目依赖不兼容导致的,特别是在Node.js v17版本中,百…

AI计算提效关键。自适应弹性加速,基于存算架构做浮点运算

一、自适应弹性加速是提升芯片能效比的有力手段自适应弹性加速技术是现代芯片设计中提升能效比的关键路径之一。它摒弃了传统芯片在设计时采用的静态、固化的资源分配与功能设定模式,通过引入动态调整机制,使得芯片能够根据实时的应用需求和负载变化&…

Spring Boot测试陷阱:失败测试为何“传染”其他用例?

一个测试失败,为何“传染”其他测试?——Spring Boot 单元测试独立性与泛型陷阱实战解析 🚩 问题背景 在日常开发中,我们常会遇到这样的场景: 正在开发新功能 A,写了一个 testFeatureA() 测试方法&#xff…

Web开发中的CGI:通用网关接口详解

一、CGI的设计意图:解决Web的"静态"困境 在CGI出现之前,Web服务器只能做一件事:返回预先写好的静态文件(HTML、图片等)。每个用户看到的内容都是一模一样的。 设计意图很简单但却革命性: 让Web服…

在 SSMS 中查找和打开已保存的查询文件

在 SSMS 中查找和打开已保存的查询文件 在 SQL Server Management Studio (SSMS) 中,您可以轻松地查找并打开已保存的查询文件(通常以 .sql 扩展名保存)。SSMS 提供了直观的界面支持直接打开这些文件,无需额外工具。以下是详细步骤…

Protues使用说明及Protues与Keil联合仿真实现点亮小灯和流水灯

目录 1Protues介绍及新建工程 1.1进入软件 1.2文件创建 1.3默认选项 1.5设计面板 1.6添加元器件 1.7终端模式 1.8激励源模式 1.9探针模式 1.10仪表 1.11二维直线 1.12字符 2 Protues电路原理图仿真 2.1 220V交流电转5V直流电稳压电路仿真原理图 2.1.1 仿真原理图…

Linux PCI 子系统:工作原理与实现机制深度分析

Linux PCI 子系统:工作原理与实现机制深度分析 1. Linux PCI 子系统基础概念 1.1 PCI/PCIe 基础概念回顾 总线拓扑: PCI/PCIe 系统是一个树形结构。CPU 连接到 Root Complex (RC),RC 连接至 PCIe 交换机 (Switch) 和 PCIe 端点设备 (Endpoint…

RabbitMQ 全面指南:架构解析与案例实战

目录一、RabbitMQ 简介1.1 什么是 RabbitMQ1.2 RabbitMQ 的核心组件1.3 RabbitMQ 的应用场景二、环境搭建2.1 安装 RabbitMQ2.2 安装 Erlang2.3 配置 RabbitMQ三、RabbitMQ 核心概念与工作原理3.1 消息模型3.2 交换机类型3.3 队列特性3.4 消息确认机制四、Spring Boot 集成 Rab…

6.2 el-menu

一、 <el-menu>: 菜单组件&#xff0c;定义了侧边栏内部的具体导航项、层级结构和交互行为。<el-container><!-- 侧边栏容器 --><el-aside width"200px"><!-- 菜单内容 --><el-menu default-active"1" class"el-men…

Windows 笔记本实现仅关屏仍工作:一种更便捷的 “伪熄屏” 方案

在使用 Windows 笔记本作为临时服务器或需要后台持续运行程序时&#xff0c;我们常面临一个需求&#xff1a;关闭屏幕以节省电量或减少光污染&#xff0c;同时保持系统正常工作。然而&#xff0c;网络上流传的诸多方法往往存在局限&#xff0c;要么无法兼顾 “熄屏” 与 “工作…

Linux应急响应一般思路(二)

进程排查进程(Process)是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的基本单位&#xff0c;是操作系统结构的基础无论是在Windows系统还是Linux系统中&#xff0c;主机在感染恶意程序后&#xff0c;恶意程序都会启动相应的进程&#x…