我試圖弄清楚iptables
規則中的含義設定 Ubuntu 路由器的官方指南。例如,*nat
。我在網路上找不到任何有*nat
for 的地方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 - 網路位址轉換教程很有用。