码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • iptables结构及使用


    iptables

    • 结构
      • 表(Table)
      • 链(Chain)
      • 目标(Target)
    • 使用规则
      • 常用方法
        • NAT 相关:
        • 状态查询:

    结构

    表(Table)

    1. filter 表:用于过滤数据包,决定是否接受、拒绝或转发。
    2. nat 表:用于网络地址转换,修改数据包的源或目标地址。
    3. mangle 表:用于修改数据包的 TOS/DSCP 字段等。
    4. raw 表:用于配置特殊规则,如连接追踪(connection tracking)。

    链(Chain)

    每个表包含一系列链,每个链定义了对数据包的不同处理方式。以下是一些主要的链:

    1. INPUT: 处理进入本地系统的数据包。
    2. OUTPUT: 处理从本地系统发出的数据包。
    3. FORWARD: 处理通过系统进行的数据包转发。
    4. 用户自定义链: 你可以创建自己的链,以更灵活地组织规则。

    目标(Target)

    1. ACCEPT: 允许数据包通过。
    2. DROP: 丢弃数据包,不给予任何响应。
    3. REJECT: 拒绝数据包,返回错误消息。
    4. DNAT: 目标地址转换,用于端口转发。
    5. SNAT: 源地址转换,用于修改数据包的源地址。

    使用规则

    规则则是按照表、链、目标的顺序进行匹配数据包的操作,相当于在哪里,匹配哪一部分,怎样处理。
    规则结构如下:

    iptables -A <CHAIN> [OPTIONS] -j <TARGET>
    
    • 1

    :链的名称,如 INPUT、OUTPUT、FORWARD 等。

    [OPTIONS]:匹配条件,例如 -p(协议)、–dport(目标端口)等。

    -j :目标,定义了匹配条件满足时的操作,如 ACCEPT、DROP、REJECT 等。

    常用方法

    1. 显示当前规则:

      sudo iptables -L
      加 -v显示详细信息

    2. 清除所有规则:

      sudo iptables -F
      -t nat 删除指定nat上的规则

    3. 添加规则:

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

      允许 SSH 流量通过。

    4. 删除规则:

      sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT

    5. 在指定链的指定位置插入规则:

      sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT

    NAT 相关:

    1. 开启 IP 转发(用于路由器):

      sudo sysctl -w net.ipv4.ip_forward=1
      或者在 /etc/sysctl.conf 中添加 net.ipv4.ip_forward=1 并执行 sudo sysctl -p。

    2. 端口转发(将外部访问的 80 端口转发到内部主机的 8080 端口)

    sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:8080

    状态查询:

    1. 显示连接追踪表(Connection Tracking Table):
      sudo iptables -t raw -L -v
    2. 保存和加载规则:
      保存规则到文件:
      sudo sh -c 'iptables-save > /etc/iptables.rules'
      从文件加载规则:
      sudo sh -c 'iptables-restore < /etc/iptables.rules'
  • 相关阅读:
    k8s学习--kubernetes服务自动伸缩之水平收缩(pod副本收缩)HPA详细解释与案例应用
    人工神经网络的三个要素,神经网络三要素是指
    第11章_数据库的设计规范
    iOS 16.1新功能尝鲜:如何在iPhone上启用实时活动?
    python实现Map+函数式接口替换多级if-else结构
    Tkinter常用功能示例(一)
    什么是腾讯云图数据可视化?它有哪些特性以及应用场景?
    中国象棋棋盘识别
    Godot2D角色导航-自动寻路教程(Godot设置导航代理的目标位置)
    SSM+图书馆电子文件资源管理 毕业设计-附源码091426
  • 原文地址:https://blog.csdn.net/qq_42552091/article/details/134445706
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号