在 CentOS 系統中,使用 iptables
設置連接超時時間可以通過配置 iptables
規則來實現。具體來說,你可以使用 --timeout
選項來為特定的連接設置超時時間。以下是一些常見的用法示例:
設置 TCP 連接的超時時間為 300 秒:
iptables -A INPUT -p tcp --syn -m conntrack --ctstate NEW -m timeout --timeout 300s -j ACCEPT
這條規則的意思是,對于新的 TCP 連接請求(--syn
),如果它在 300 秒內沒有完成三次握手,則會被自動丟棄。
設置 UDP 連接的超時時間為 60 秒:
iptables -A INPUT -p udp -m conntrack --ctstate NEW -m timeout --timeout 60s -j ACCEPT
這條規則的意思是,對于新的 UDP 連接請求,如果它在 60 秒內沒有收到任何數據包,則會被自動丟棄。
設置所有新連接的超時時間為 180 秒:
iptables -A INPUT -m conntrack --ctstate NEW -m timeout --timeout 180s -j ACCEPT
這條規則適用于所有新的連接請求,不論協議類型,如果在 180 秒內沒有活動,則會被自動丟棄。
刪除現有的超時規則:
如果你需要刪除或修改現有的超時規則,可以使用 iptables -D
命令。例如,刪除之前設置的 TCP 連接超時規則:
iptables -D INPUT -p tcp --syn -m conntrack --ctstate NEW -m timeout --timeout 300s -j ACCEPT
請注意,iptables
規則的順序很重要,因為它們是按順序匹配的。確保你的超時規則在其他相關規則之前或之后正確放置。
此外,iptables
的 timeout
模塊依賴于內核的 conntrack
子系統,因此確保你的內核配置支持 conntrack
和相關的超時功能。
如果你使用的是較新的 CentOS 版本(例如 CentOS 8 或更高版本),可能需要使用 firewalld
服務來管理防火墻規則。firewalld
提供了更高級的配置選項和更好的用戶體驗。