iptables 基础示例
一、命令简介
iptables
是Linux操作系统中用于配置网络包过滤规则的工具,它是netfilter项目的一部分。iptables
可以用来设置、维护和检查Linux内核中的IP包过滤规则表。
iptables的知识点比较多,更详细的内容会在个人网站中推出。
顺便提一下个人网站:
这几天已经尝试使用typecho搭建动态网站,但是不太满足效果。
最终决定使用 Docusaurus 构建我比较喜欢的文档型网站。
网站的内容:学习计算机整理出来的笔记。
进度:学习前端和Docusaurus中。
二、命令参数
常用选项
-
-A, --append
:在链的末尾添加一条规则。 -
-D, --delete
:从链中删除一条规则。 -
-I, --insert
:在链中的指定位置插入一条规则。 -
-F, --flush
:清空链中的所有规则。 -
-L, --list
:列出链中的所有规则。 -
-N, --new-chain
:创建一个新的用户定义链。 -
-X, --delete-chain
:删除一个用户定义的空链。 -
-P, --policy
:设置链的默认策略。 -
-p, --protocol
:指定协议(tcp, udp, icmp等)。 -
-s, --source
:指定源地址或范围。 -
-d, --destination
:指定目标地址或范围。 -
--dport
:指定目标端口。 -
--sport
:指定源端口。 -
-j, --jump
:指定目标规则(例如,ACCEPT, DROP, REJECT等)。
三、命令示例
以下是基础用法
查看当前规则
iptables -L
添加规则
添加规则到指定的链(chain)中。以下是一些常用的链:
-
INPUT
:处理入站数据包。 -
FORWARD
:处理转发数据包。 -
OUTPUT
:处理出站数据包。
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许所有到端口80的TCP连接
删除规则
删除指定链中的规则。需要知道规则的编号。
iptables -D INPUT 1 # 删除INPUT链中的第一条规则
清空规则
清空指定链中的所有规则。
iptables -F INPUT # 清空INPUT链中的所有规则
示例
以下是一些 iptables
命令的示例:
iptables -A INPUT -s 192.168.1.100 -j DROP # 添加规则,丢弃来自192.168.1.100的所有入站数据包
iptables -I OUTPUT -p tcp --dport 22 -j ACCEPT # 在OUTPUT链的开头插入规则,允许所有出站SSH连接
iptables -P FORWARD DROP # 设置FORWARD链的默认策略为DROP
iptables -L -n -v # 以数字形式和详细模式列出所有规则
iptables -F # 清空所有链中的所有规则
注意
-
iptables
规则不会立即生效,需要保存规则。通常,可以使用iptables-save
命令保存规则,并在系统启动时通过iptables-restore
命令加载它们。 - 在修改
iptables
规则时,需要小心,因为错误的规则可能导致网络连接问题。