如果我列印iptables
概述,iptables -L
我會得到以下輸出:
$ sudo iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- !richtercloud.de anywhere tcp dpt:http to:192.168.178.30:3128
其中最後一列是沒有標題的單獨列(它顯示什麼?為什麼沒有標題?)或目標列的延續(表示「任何地方」條件的限制)。
我可能已經創建了規則sudo iptables -t nat -A PREROUTING -i eth1 ! -s 192.168.178.30 -p tcp --dport 80 -j DNAT --to 192.168.178.30:3128
(不要依賴它,能夠回答問題並不重要) - 我剛開始使用iptables
(並且必須面對這樣的情況 - 讓我們溫柔地稱之為- 已經是廢話了)。
iptables
我在 Ubuntu 15.04 和 Linux 4.0.1 上執行v1.4.21。
答案1
為什麼沒有標題是開發人員需要回答的問題,這可能是因為它是目的地的“某種”部分,或者根據上下文它可能意味著不同的東西 - 所以更多的是通用領域。
來源列和目標列用於匹配資料包 IP 位址,並tcp dpt:http
匹配目標連接埠。
由於這是一條 NAT 規則,因此下一部分將描述如果封包匹配,我們希望對封包發生什麼情況。在本例中,我們要修改封包的目標 IP 和端口,以便它到達代理伺服器。
實際上,這是一個透明的代理規則 - 它將捕獲所有並非源自 richtercloud.de、發送到連接埠 80 上任何位置的資料包,並透過代理伺服器發送它們。