iptables
我正在尝试弄清楚Ubuntu 路由器设置官方指南。例如,*nat
。我在互联网上找不到任何有 的*nat
地方iptables
。
*nat
-A POSTROUTING -o "$EXTIF" -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i "$INTIF" -o "$EXTIF" -j ACCEPT
-A FORWARD -j LOG
COMMIT
答案1
我认为它是表名称的选择器。*
用于代替-t
命令的命令行变体的选项,使用 选择表。例如,通常通过指定 来选择表-t <tablename>
,因此在本例中-t nat
,选择纳特桌子:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
您提供的示例是使用来自这里的文件注意,不要使用命令行选项(iptables-restore
),而是使用单独的行,如下所示:<<EOF ... EOF
-t
iptables-restore <<-EOF
*nat
-A POSTROUTING -o "$EXTIF" -j MASQUERADE
COMMIT
EOF
有人可能会说,既然-A
还在这份文档中,那为什么-t
不呢?我不知道答案,希望有人知道。
同样,在*nat
表格编辑完成后COMMIT
,然后*filter
选择表格,对其进行处理,然后COMMIT
进行编辑。
iptables-restore <<-EOF
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i "$INTIF" -o "$EXTIF" -j ACCEPT
-A FORWARD -j LOG
COMMIT
EOF
如果你正在寻找教程,你可能会发现这个NAT——网络地址转换教程很有用。