之前一直對iptables的sport、dport不清楚,因此這裏記錄一下。linux
(1)清理防火牆:服務器
iptables -F iptables -X iptables -Z
(2)iptables命令選項輸入順序:tcp
iptables -t 表名 <-A/I/D/R> 規則鏈名 [規則號] <-i/o 網卡名> -p 協議名 <-s 源IP/源子網> --sport 源端口 <-d 目標IP/目標子網> --dport 目標端口 -j 動做
表名包括:spa
規則鏈名包括:.net
動做包括:翻譯
iptables裏面的dport和sport代理
首先先來翻譯一下dport和sport的意思:日誌
dport:目的端口
sport:來源端口
初學iptables比較容易迷糊,可是我儘可能用通俗的語言給你講解。blog
dport 和sport字面意思來講很好理解,一個是數據要到達的目的端口,一個是數據來源的端口。ip
可是在使用的時候要分具體狀況來對待,這個具體狀況就是你的數據包的流動行爲方式。(INPUT仍是OUTPUT)
好比你的例子:/sbin/iptables -A INPUT -p tcp –dport 80 -j ACCEPT
注意裏面的INPUT參數,這個表明你的這條數據包的進行的 「進入」 操做!
那麼你的這條數據包能夠這麼描述:
1.這是一條從外部進入內部本地服務器的數據。
2.數據包的目的(dport)地址是80,就是要訪問我本地的80端口。
3.容許以上的數據行爲經過。
總和:容許外部數據訪問個人本地服務器80端口。
再看第2條列子:/sbin/iptables -A INPUT -p tcp –sport 80 -j ACCEPT
1.這是一條從外部進入內部本地服務器的數據。
2.數據包的來源端口是(sport)80,就是對方的數據包是80端口發送過來的。
3.容許以上數據行爲。
總結:容許外部的來自80端口的數據訪問個人本地服務器。
input方式總結: dport指本地,sport指外部。
若是你的數據包是(OUTPUT)行爲,那麼就是另一種理解方式:
好比:
/sbin/iptables -A OUTPUT -p tcp –dport 80 -j ACCEPT
1.這是一條從內部出去的數據。
2.出去的目的(dport)端口是80。
3.容許以上數據行爲。
output行爲總結:dport只外部,sport指本地。
推薦博客:
http://www.zsythink.net/archives/1199