我們可以在sysctl.conf中看到linux的配置 這裏可以修改內核參數來達到功能優化的目的
**
修改對外連接的端口
默認32768
**
net.ipv4.ip_local_port_range
**
修改syn等待隊列長度
默認爲1024
用來修改可以容納等待連接的網絡連接數。
**
net.ipv4.tcp_max_syn_backlog
**
關閉ipv6:
**
首先可以通過ifconfig查看是否開啓了ipv6(ifconfig route netstat 命令不多說)
運行netstat會發現沒有相關的ipv6了
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
**
防止放大攻擊
**:黑客利用DNS服務器 使得被攻擊者因氾濫的流量而變得不堪重負(應答包比請求包大),最終導致拒絕服務
net.ipv4.icmp_echo_ignore_broadcasts = 1 防止拒絕服務攻擊,設置爲1來忽略這些子網廣播消息
**
開啓syn cookie 防止syn攻擊
可以少量防止syn攻擊:一般客戶端發送syn給服務器後會導致服務器開啓數據區(估計是爲了在半連接狀態下可以存儲來自客戶端的數據吧)—改成–》服務器接受syn之後返回這個syn計算出來的cookie 在下次接受時對比 成功才最終建立連接
**
net.ipv4.tcp_syncookies = 1
**
表示開啓重用
允許將TIME-WAIT sockets重新用於新的TCP連接,默認爲0,表示關閉;
需要有tcp_timestamps
解決端口65535問題 TIME_OUT過多直接影響處理能力
**
net.ipv4.tcp_tw_reuse = 1
**
開啓快速回收
表示開啓TCP連接中TIME-WAIT sockets的快速回收,默認爲0,表示關閉;
**
net.ipv4.tcp_tw_recycle = 1
**
修改timeout時間
修改系統默認的 TIMEOUT 時間。
**
net.ipv4.tcp_fin_timeout
**
修改發送keepalive
主要在長鏈接情況下 服務器端用來探測連接的對端是否存活 在此時間後發送
**
net.ipv4.tcp_keepalive_time
**
發送探測客戶端是否存活的次數
配合tcp_keepalive_time
**
tcp_keepalive_probes
**
探測消息發送的頻率
乘以次數就是用來判斷是否死亡的總時間
**
tcp_keepalive_intvl
**
系統可以同時保持的timewait連接的數量
在 TIME_WAIT達到你所設置的 tcp_max_tw_buckets 時就不會有新的 TIME_WAIT狀態的連接 產生了。
在內存大的時候當然可以適當增大這個值
**
net.ipv4.tcp_max_tw_buckets
**
尚未收到客戶端ack確認信息的連接的最大值
即半連接最大值
**
net.ipv4.tcp_max_syn_backlog
**
每次軟中斷處理的網絡包個數
會影響軟中斷次數?
**
net.core.netdev_budget
**
當個別接口接收包的速度快於內核處理速度時允許的最大的包序列
**
net.core.netdev_max_backlog
**
指服務端所能accept即處理數據的最大客戶端數量,即完成連接上限
**
net.core.somaxconn
**
服務器端在放棄連接前重傳2次握手 syn+ack的包的數量
**
net.ipv4.tcp_synack_retries
**
內核放棄建立連接之前允許客戶端發送SYN包的數量
用來定義客戶端主機發送第一次握手syn後 一直得不到反饋的最大超時時間
**
tcp_syn_retries
**
系統中最多可以有多少TCP套接字不被關聯到任何一個用戶文件句柄上
超過設置的值就會復位並警告 可防止簡單的DOS攻擊
**
net.ipv4.tcp_max_orphans