linux 網路核心引數注意

2021-09-12 04:30:43 字數 755 閱讀 5277

網上的帖子,大多都寫開啟net.ipv4.tcp_tw_recycle這個開關,可以快速**處於time_wait狀態的socket(針對server端而言)。

而實際上,這個開關,需要net.ipv4.tcp_timestamps(預設開啟的)這個開關開啟才有效果。

更不為提到卻很重要的乙個資訊是:當tcp_tw_recycle開啟時(tcp_timestamps同時開啟,快速**socket的效果達到),對於位於nat裝置後面的client來說,是一場災難——會導到nat裝置後面的client連線server不穩定(有的client能連線server,有的client不能連線server)。也就是說,tcp_tw_recycle這個功能,是為「內部網路」(網路環境自己可控——不存在nat的情況)設計的,對於公網,不宜使用。

通常,「**」time_wait狀態的socket是因為「無法主動連線遠端」,因為無可用的埠,而不應該是要**記憶體(沒有必要)。即,需求是「client」的需求,server會有「埠不夠用」的問題嗎?除非是前端機,需要大量的連線後端服務——即充當著client的角色。

正確的解決這個總是辦法應該是:

net.ipv4.ip_local_port_range = 9000 6553 #預設值範圍較小

net.ipv4.tcp_max_tw_buckets = 10000 #預設值較小,還可適當調小

net.ipv4.tcp_tw_reuse = 1 #

net.ipv4.tcp_fin_timeout = 10 #

參考:

linux 核心引數調整優化網路

linux系統核心設定優化tcp網路,vi etc sysctl.conf,新增以下內容 net.ipv4.tcp syncookies 1 表示開啟syn cookies。當出現syn等待佇列溢位時,啟用cookies來處理,可防範少量syn攻擊,預設為0,表示關閉 net.ipv4.tcp tw...

linux 核心引數

sysctl命令可以檢視和 動態地修改核心的執行引數,可用的核心引數在目錄 proc sys 中。sysctl命令對核心引數的修改僅在當前生效,重啟系統後引數丟失。如果希望引數永久生效可以修改配置檔案 etc sysctl.conf,修改後使用sysctl p生效。例子 net.ipv4.tcp s...

linux核心引數

net.ipv4.ip local port range 當核心版本小於3.2,決定的是客戶端的乙個 ip 可用的埠數量,即乙個 ip 最多只能建立 60k 多一點的連線 1025 65535 如果要突破這個限制需要客戶端 機器繫結多個 ip。當核心版本大於等於3.2,決定的是 socket 四元組...