Linux系統如何低於TCP洪水攻擊

#最關鍵參數,默認爲5,修改成0 表示不要重發
net.ipv4.tcp_synack_retries = 0
#半鏈接隊列長度
net.ipv4.tcp_max_syn_backlog = 200000

#系統容許的文件句柄的最大數目,由於鏈接須要佔用文件句柄
fs.file-max = 819200
#用來應對突發的大併發connect 請求
net.core.somaxconn = 65536
#最大的TCP 數據接收緩衝(字節)
net.core.rmem_max = 1024123000

#最大的TCP 數據發送緩衝(字節)
net.core.wmem_max = 16777216
#網絡設備接收數據包的速率比內核處理這些包的速率快時,容許送到隊列的數據包的最大數目
net.core.netdev_max_backlog = 165536
#本機主動鏈接其餘機器時的端口分配範圍
net.ipv4.ip_local_port_range = 10000 65535

# ……省略其它……

注意,如下參數面對外網時,不要打開。由於反作用很明顯,具體緣由請google,若是已打開請顯式改成0,而後執行sysctl -p關閉。由於通過試驗,大量TIME_WAIT狀態的鏈接對系統沒太大影響:cookie

#當出現 半鏈接 隊列溢出時向對方發送syncookies,調大 半鏈接 隊列後不必
net.ipv4.tcp_syncookies = 0
#TIME_WAIT狀態的鏈接重用功能
net.ipv4.tcp_tw_reuse = 0
#時間戳選項,與前面net.ipv4.tcp_tw_reuse參數配合
net.ipv4.tcp_timestamps = 0
#TIME_WAIT狀態的鏈接回收功能
net.ipv4.tcp_tw_recycle = 0
#當出現 半鏈接 隊列溢出時向對方發送syncookies,調大 半鏈接 隊列後不必
net.ipv4.tcp_syncookies = 0
#TIME_WAIT狀態的鏈接重用功能
net.ipv4.tcp_tw_reuse = 0
#時間戳選項,與前面net.ipv4.tcp_tw_reuse參數配合
net.ipv4.tcp_timestamps = 0
#TIME_WAIT狀態的鏈接回收功能
net.ipv4.tcp_tw_recycle = 0

爲了處理大量鏈接,還需改大另外一個參數:網絡

# vi /etc/security/limits.conf

在底下添加一行表示容許每一個用戶都最大可打開409600個文件句柄(包括鏈接):併發

*                –       nofile          409600
相關文章
相關標籤/搜索