百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

Linux iptables 命令详解 iptables的命令

sinye56 2024-12-17 16:09 15 浏览 0 评论

简介

iptables 是一个在 Linux 中的管理防火墙规则的命令行工具,它作为 Linux 内核的 netfilter 框架的一部分运行,以控制传入和传出的网络流量。

与firewalld相比

  • iptables 是基于规则的,每个规则必须独立定义,firewalld 是基于区域的,规则适用于预定义或自定义区域。
  • iptables 适合高度精细和手动的配置,firewalld 动态规则更简单且更加用户友好。
  • iptables 需要刷新或重新启动才能应用更改,firewalld 支持不间断的即时更改。
  • iptables 对于静态、简单的配置来说非常高效,firewalld 由于抽象层,速度稍微慢一些,但大多数情况下可以忽略不计。

基础概念

Chains

处理数据包的一组规则

  • INPUT: 控制传入数据包。
  • FORWARD: 控制通过系统转发的数据包。
  • OUTPUT: 控制传出的数据包。

Tables

规则处理类别

  • filter: 基本数据包过滤的默认表。
  • nat: 处理网络地址转换(NAT)。
  • mangle: 改变数据包。
  • raw: 在连接跟踪之前配置数据包。

Rules

对数据包应用的操作,例如:ACCEPTDROP

常用操作

列出所有链的规则

sudo iptables -L

列出带行号的规则

sudo iptables -L --line-numbers

列出特定表中的规则

sudo iptables -t nat -L

允许指定端口传入流量

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

# -A INPUT: 追加到 INPUT链

# -p tcp: 指定协议为 TCP

# --dport 80: 指定目标端口为80

# -j ACCEPT: 接受数据包

阻止来自指定IP的流量

sudo iptables -A INPUT -s 192.168.1.100 -j DROP

# -s 192.168.1.100: 指定源IP地址

允许来自子网的流量

sudo iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

允许端口 22 (SSH) 上的传出流量

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

在网络之间转发流量

sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

按行号删除规则

sudo iptables -D INPUT 2

# -D INPUT 2: 删除 INPUT 链的第二个规则

将传入流量的默认策略设置为 DROP

sudo iptables -P INPUT DROP

将传出流量的默认策略设置为 ACCEPT

sudo iptables -P OUTPUT ACCEPT

保存当前规则到指定文件

sudo iptables-save > /etc/iptables.rules

从文件中恢复规则

sudo iptables-restore < /etc/iptables.rules

将端口 8080 转发至 80

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

伪装流量(NAT)

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

转发流量到其他IP

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

记录丢弃的数据包

sudo iptables -A INPUT -j LOG --log-prefix "Dropped Packet: " --log-level 4

记录已接受的数据包

sudo iptables -A INPUT -j LOG --log-prefix "Accepted Packet: " --log-level 4

查看数据包和字节数

sudo iptables -L -v

重置计数器

sudo iptables -Z

刷新所有规则

sudo iptables -F

在指定的Table上刷新规则

sudo iptables -t nat -F

删除所有用户定义的Chains

sudo iptables -X

常用选项

  • -A:追加到规则到链中
  • -D:从链中删除一个规则
  • -P:为链设置默认策略
  • -F:刷新链中的所有规则
  • -L:列出链中的所有规则
  • -t [table]:指定 table
  • -i:指定输入接口,例如:eth0
  • -o:指定输出接口
  • -s:指定源IP地址
  • -d:指定目标IP地址
  • -p:指定协议类型,例如:tcpudpicmp

相关推荐

一个不错的软件版本命名规范!

之前写了一篇如何自动生成版本号的文章,《让你的C程序,自动打印版本信息》初衷是让自己的程序在运行时自动打印与版本相关的信息,避免测试时因为版本信息不确定导致的一些功能对应不上去的问题,当时留了一个坑,...

国产操作系统迎来发展风口 公务领域更能培育起Linux生态

谷歌和微软在俄罗斯市场的一番套路猛如虎,就让我们深刻地意识到了,只有自己的东西才能靠得住。也由此,国内操作系统发展迎来了发展风口。我就看到有朋友就秀出了他们单位采购的纯国产的主机,一款华为的主机,纯国...

5个大有“前途”的Linux桌面发行版本

ZD至顶网CIO与应用频道08月27日专栏:Linux无处不在。你的服务器里,你的电话、汽车、手表、烤面包机、冰箱……和台式机里都有Linux的身影。虽然在桌面上见到Linux的用户比在自动调温...

Linux 常用应用软件大全

编译自:https://www.fossmint.com/most-used-linux-applications/作者:MartinsD.Okoi译者:HankChow对于许多应用程序...

Linux 4.1 系列的最大版本 4.1.18 LTS发布,带来大量修改

(LCTT译注:这是一则过期的消息,但是为了披露更新内容,还是发布出来给大家参考)著名的内核维护者GregKroah-Hartman貌似正在度假中,因为SashaLevin2016年2月16日的...

Linux发行版需要杀软吗?卡巴斯基推出免费KVRT病毒扫描清理工具

IT之家6月4日消息,你认为使用Linux发行版,需要杀毒软件吗?或许很多用户认为Linux发行版偏小众,因此受到黑客攻击的风险也相对较小,不过卡巴斯基并不这么认为,近期推出了适用于...

适合开发人员的 5款 Linux 发行版

什么是Linux?Linux是基于Unix的操作系统。由LinusTorvalds开发于1991年首次发布其内核。因为Linux是开源软件,其发行版由不同组织发布,因此不同的发行版具有不同的风格...

VMware Workstation 17.0 Pro 发布:新增 TPM 2.0 完美兼容Win11

IT之家11月18日消息,VMwareWorkstation17.0Pro现已发布,它带来了许多新特性,例如微软Windows11硬性要求:虚拟可信平台模块(TPM)2.0。...

你是否需要一个容器专用的Linux发行版本?

单单使用容器是不够的,提供商们认为你需要一个容器专用的Linux发行版本。我们可以让容器在不同的操作系统上运行,不同的操作系统都有自己的虚拟化服务,如:SolarisZones、BSDJails、...

Tizen 3.0版本发布 采用Linux 4.1内核

2015-09-2111:31:39作者:马荣【中关村在线软件资讯】9月21日消息:尽管三星靠着Android系统设备在移动市场赚钱,但是仍然没有忘记自家的Tizen开发。现在Tizen3.0版...

欧拉操作系统演进:应用累计超130万套 支持鲲鹏、英特尔、飞腾等芯片

21世纪经济报道记者倪雨晴深圳报道4月15日,在欧拉开发者大会(openEulerDeveloperDay2022)的主论坛上,欧拉首个数字基础设施全场景长周期版openEuler22.03...

Papyros:以Material Design为灵感的Linux发行版本

项目团队并不希望只是采用传统的桌面主题,而是致敬谷歌Android系统的MaterialDesign设计语言想要打造出某些不同以往足够吸引用户的Linux发行版本,自然该版本还在不断的更新和改进中,...

比特网早报:全国空间计量技术委员会成立,银河麒麟操作系统上架微信Linux4.0.0版本

2024年11月6日消息,昨夜今晨,科技圈都发生了哪些大事?行业大咖抛出了哪些新的观点?比特网为您带来值得关注的科技资讯:全国空间计量技术委员会在北京成立近日,经市场监管总局批准,全国空间计量技术委员...

2024年最稳定的5个Linux发行版,赶紧收藏!

Linux是最流行的免费开源平台之一。Linux已被广泛使用,因为它安全、可扩展和灵活。Linux发行版收集开源代码,对其进行编译,并将其组合成一个可以轻松启动和安装的操作系统。它们还提供不同的...

彰显Linux生态繁华,Ubuntu、Fedora等四发行版同时发布新版本

上周对于开源社区来说是忙碌的一周。EndeavourOS和TrueNASScale于周二(4月16日)发布,Fedora于周三(4月17日)发布,Ubuntu于周四(4月18日)发布。四个新版本中都...

取消回复欢迎 发表评论: