diff --git a/command/iptables.md b/command/iptables.md index 4acd0afd26..e58786858f 100644 --- a/command/iptables.md +++ b/command/iptables.md @@ -42,28 +42,61 @@ iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协 表名包括: -* **raw** :高级功能,如:网址过滤。 -* **mangle** :数据包修改(QOS),用于实现服务质量。 -* **net** :地址转换,用于网关路由器。 -* **filter** :包过滤,用于防火墙规则。 +- **raw** :高级功能,如:网址过滤。 +- **mangle** :数据包修改(QOS),用于实现服务质量。 +- **net** :地址转换,用于网关路由器。 +- **filter** :包过滤,用于防火墙规则。 规则链名包括: -* **INPUT链** :处理输入数据包。 -* **OUTPUT链** :处理输出数据包。 -* **PORWARD链** :处理转发数据包。 -* **PREROUTING链** :用于目标地址转换(DNAT)。 -* **POSTOUTING链** :用于源地址转换(SNAT)。 +- **INPUT链** :处理输入数据包。 +- **OUTPUT链** :处理输出数据包。 +- **PORWARD链** :处理转发数据包。 +- **PREROUTING链** :用于目标地址转换(DNAT)。 +- **POSTOUTING链** :用于源地址转换(SNAT)。 动作包括: -* **ACCEPT** :接收数据包。 -* **DROP** :丢弃数据包。 -* **REDIRECT** :重定向、映射、透明代理。 -* **SNAT** :源地址转换。 -* **DNAT** :目标地址转换。 -* **MASQUERADE** :IP伪装(NAT),用于ADSL。 -* **LOG** :日志记录。 +- **ACCEPT** :接收数据包。 +- **DROP** :丢弃数据包。 +- **REDIRECT** :重定向、映射、透明代理。 +- **SNAT** :源地址转换。 +- **DNAT** :目标地址转换。 +- **MASQUERADE** :IP伪装(NAT),用于ADSL。 +- **LOG** :日志记录。 + +```bash + ┎╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍┓ + ┌───────────────┐ ┃ Network ┃ + │ table: filter │ ┖━━━━━━━│━━━━━━━┛ + │ chain: INPUT ◀────┐ │ + └───────┬───────┘ │ │ + │ │ ┌─────────▼─────────┐ + ┌ ▼ ┐ │ │ table: nat │ + │local process│ │ │ chain: PREROUTING │ + └ ┘ │ └─────────┬─────────┘ + │ │ │ + ▼ │ ▼ ┌─────────────────┐ +┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ │ ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ │table: nat │ + Routing decision └────── outing decision ─────▶│chain: PREROUTING│ +┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ └────────┬────────┘ + │ │ + │ │ + ┌───────▼───────┐ │ + │ table: nat │ ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ │ + │ chain: OUTPUT │ ┌─────▶ outing decision ◀──────────────┘ + └───────┬───────┘ │ ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ + │ │ │ + ┌───────▼───────┐ │ ┌──────────▼─────────┐ + │ table: filter │ │ │ table: nat │ + │ chain: OUTPUT ├────┘ │ chain: POSTROUTING │ + └───────────────┘ └──────────┬─────────┘ + │ + ┎╍╍╍╍╍╍╍▼╍╍╍╍╍╍╍┓ + ┃ Network ┃ + ┖━━━━━━━━━━━━━━━┛ +``` + ### 实例 @@ -133,4 +166,4 @@ iptables -D INPUT 8 ``` - \ No newline at end of file +