清理防火墙
1 | iptables -F |
iptables 命令选项输入顺序
1 | iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作 |
表名包括
- raw:高级功能,如网址过滤
- mangle:数据包修改(QoS),用于实现服务质量
- nat:地址转换,用于网关路由器
- filter:包过滤,用于防火墙规则
规则链名包括
- INPUT 链:处理输入数据包
- OUTPUT 链:处理输出数据包
- FORWARD 链:处理转发数据包
- PREROUTING 链:用于目标地址转换(DNAT),路由前
- POSTROUTING 链:用于源地址转换(SNAT),路由后
动作包括
- ACCEPT:接收数据包
- DROP:丢弃数据包
- REDIRECT:重定向、映射、透明代理
- SNAT:源地址转换
- DNAT:目标地址转换
- MASQUERADE:IP 伪装(NAT),用于 ADSL
- LOG:日志记录
iptables 里面的 dport 和 sport
首先先来翻译一下 dport 和 sport 的意思:
- dport:目的端口
- sport:来源端口
dport 和 sport 字面意思来说很好理解,一个是数据要到达的目的端口,一个是数据来源的端口。
但是在使用的时候要分具体情况来对待,这个具体情况就是你的数据包的流动行为方式(INPUT 还是 OUTPUT)。
INPUT 示例 1
1 | /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT |
注意里面的 INPUT 参数,这个代表你的这条数据包的"进入"操作!那么这条数据包可以这么描述:
- 这是一条从外部进入内部本地服务器的数据
- 数据包的目的(
dport)地址是 80,就是要访问我本地的 80 端口 - 允许以上的数据行为通过
总结:允许外部数据访问我的本地服务器 80 端口。
INPUT 示例 2
1 | /sbin/iptables -A INPUT -p tcp --sport 80 -j ACCEPT |
- 这是一条从外部进入内部本地服务器的数据
- 数据包的来源端口是(
sport)80,就是对方的数据包是 80 端口发送过来的 - 允许以上数据行为
总结:允许外部的来自 80 端口的数据访问我的本地服务器。
INPUT 方式总结:dport 指本地,sport 指外部。
OUTPUT 示例
如果数据包是(OUTPUT)行为,那么就是另外一种理解方式:
1 | /sbin/iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT |
- 这是一条从内部出去的数据
- 出去的目的(
dport)端口是 80 - 允许以上数据行为
OUTPUT 行为总结:dport 指外部,sport 指本地。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小五的个人杂货铺!
