注意:红帽/红旗/CentOS等 7 版本以上已改为使用 firewalld 作为防火墙替换iptables。
一、基本用法
1.1. 基本语法
$ iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作
1.2. 命令参数
参数 | 描述 |
-P | 设置默认策略: iptables -P INPUT (DROP) |
-F | 清空规则链 |
-L | 查看规则链 |
-A | 在规则链的末尾加入新规则 |
-I | num 在规则链的头部加入新规则 |
-D | num 删除某一条规则 |
-s | 匹配来源地址 IP/MASK,加叹号"!"表示除这个 IP 外 |
-d | 匹配目标地址 |
-i | 网卡名称 匹配从这块网卡流入的数据 |
-o | 网卡名称 匹配从这块网卡流出的数据 |
-p | 匹配协议,如 tcp,udp,icmp |
–dport num | 匹配目标端口号 |
–sport num | 匹配来源端口号 |
1.3. 服务管理
$ systemctl status iptables # 查看服务状态
$ systemctl enable iptables # 启用服务
$ systemctl disable iptables # 禁用服务
$ systemctl start iptables # 启动服务
$ systemctl restart iptables # 重启服务
$ systemctl stop iptables # 关闭服务
1.4. 规则配置
# 默认情况下,所有链都配置为接受规则,因此在强化过程中,建议从拒绝所有配置开始,然后只打开需要的端口:
$ iptables --policy INPUT DROP
$ iptables --policy OUTPUT DROP
$ iptables --policy FORWARD DROP
# 按链条和编号删除规则
$ iptables -D INPUT 10
# 按规范删除规则
$ iptables -D INPUT -m conntrack --ctstate INVALID -j DROP
#刷新所有规则,删除所有链,并接受所有
$ iptables -P INPUT ACCEPT
$ iptables -P FORWARD ACCEPT
$ iptables -P OUTPUT ACCEPT
$ iptables -t nat -F
$ iptables -t mangle -F
$ iptables -F
$ iptables -X
# 冲洗所有链
$ iptables -F
# 刷新单链
$ iptables -F INPUT
# 插入规则
$ iptables -I INPUT 2 -s 202.54.1.2 -j DROP
# 详细打印出所有活动的 iptables 规则
$ iptables -n -L -v
# 具有规则规范的相同数据:
$ iptables -S INPUT
# 包含数据包计数的规则列表
$ iptables -L INPUT -v
# 在基于 Debian 的系统上
$ netfilter-persistent save
# 在基于 RedHat 的系统上
$ service iptables save
二、使用示例
2.1. 清空当前的所有规则和计数
$ iptables -F # 清空所有的防火墙规则
$ iptables -X # 删除用户自定义的空链
$ iptables -Z # 清空计数
2.2. 配置允许 ssh 端口连接
$ iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT
这里,22 为你的 ssh 端口, -s 192.168.1.0/24 表示允许这个网段的机器来连接,其它网段的 ip 地址是登陆不了你的机器的。-j ACCEPT 表示接受这样的请求。
2.3. 允许本地回环地址可以正常使用
$ iptables -A INPUT -i lo -j ACCEPT
# 本地圆环地址就是那个127.0.0.1
# 是本机上使用的,它进与出都设置为允许
$ iptables -A OUTPUT -o lo -j ACCEPT
2.4. 设置默认的规则
# 配置默认的不让进
$ iptables -P INPUT DROP
# 默认的不允许转发
$ iptables -P FORWARD DROP
# 默认的可以出去
$ iptables -P OUTPUT ACCEPT
2.5. 配置白名单
# 允许机房内网机器可以访问
$ iptables -A INPUT -p all -s 192.168.1.0/24 -j ACCEPT
# 允许机房内网机器可以访问
$ iptables -A INPUT -p all -s 192.168.140.0/24 -j ACCEPT
# 允许 183.121.3.7 访问本机的3380端口
$ iptables -A INPUT -p tcp -s 183.121.3.7 --dport 3380 -j ACCEPT
2.6. 开启相应的服务端口
# 开启 80 端口,因为web对外都是这个端口
$ iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 允许被 ping
$ iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
# 已经建立的连接得让它进来
$ iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
2.7. 保存规则到配置文件中
$ cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
$ iptables-save > /etc/sysconfig/iptables
$ cat /etc/sysconfig/iptables
2.8. 清除已有规则
# 清空指定链 INPUT 上面的所有规则
$ iptables -F INPUT
# 删除指定的链,这个链必须没有被其它任何规则引用,而且这条上必须没有任何规则
$ iptables -X INPUT
# 如果没有指定链名,则会删除该表中所有非内置的链,把指定链,或者表中的所有链上的所有计数器清零
$ iptables -Z INPUT
2.9. 删除已添加的规则
# 添加一条规则
$ iptables -A INPUT -s 192.168.1.5 -j DROP
# 将所有 iptables 以序号标记显示,执行:
$ iptables -L -n --line-numbers
# 比如要删除 INPUT 里序号为 8 的规则,执行:
$ iptables -D INPUT 8
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/e06f6bdc84d793e83f34be6ddf5efb29.png)
![img](https://img-blog.csdnimg.cn/img_convert/13d32cd45789566a732520865a360f82.png)
![img](https://img-blog.csdnimg.cn/img_convert/5c2a3ed729e22e1d7739e2addf2d74f1.png)
![img](https://img-blog.csdnimg.cn/img_convert/27652341c5549d5aeafd4618cdc6d4c5.png)
![img](https://img-blog.csdnimg.cn/img_convert/e61888ad7fd0845b041471f4deee232b.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)**
![img](https://img-blog.csdnimg.cn/img_convert/0f50a467b6e4dcd9b71fe9c210c97934.jpeg)
为了做好运维面试路上的助攻手,特整理了上百道 **【运维技术栈面试题集锦】** ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,**小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。**
![](https://img-blog.csdnimg.cn/img_convert/d74087811c488a0f90a97c86b0a9925b.png)
本份面试集锦涵盖了
* **174 道运维工程师面试题**
* **128道k8s面试题**
* **108道shell脚本面试题**
* **200道Linux面试题**
* **51道docker面试题**
* **35道Jenkis面试题**
* **78道MongoDB面试题**
* **17道ansible面试题**
* **60道dubbo面试题**
* **53道kafka面试**
* **18道mysql面试题**
* **40道nginx面试题**
* **77道redis面试题**
* **28道zookeeper**
**总计 1000+ 道面试题, 内容 又全含金量又高**
* **174道运维工程师面试题**
> 1、什么是运维?
> 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
> 3、现在给你三百台服务器,你怎么对他们进行管理?
> 4、简述raid0 raid1raid5二种工作模式的工作原理及特点
> 5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
> 6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
> 7、Tomcat和Resin有什么区别,工作中你怎么选择?
> 8、什么是中间件?什么是jdk?
> 9、讲述一下Tomcat8005、8009、8080三个端口的含义?
> 10、什么叫CDN?
> 11、什么叫网站灰度发布?
> 12、简述DNS进行域名解析的过程?
> 13、RabbitMQ是什么东西?
> 14、讲一下Keepalived的工作原理?
> 15、讲述一下LVS三种模式的工作过程?
> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
> 17、如何重置mysql root密码?
**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
![img](https://img-blog.csdnimg.cn/img_convert/cdbec6434aa5f896a4888570f9f9d08e.jpeg)
析的过程?
> 13、RabbitMQ是什么东西?
> 14、讲一下Keepalived的工作原理?
> 15、讲述一下LVS三种模式的工作过程?
> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
> 17、如何重置mysql root密码?
**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
[外链图片转存中...(img-JCJKCKfK-1712732656246)]