IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當前所在位置: 首頁操作系統(tǒng)LINUX → linux可設(shè)置tcp/ip協(xié)議參數(shù)說明

linux可設(shè)置tcp/ip協(xié)議參數(shù)說明

時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)

  tcp_syn_retries :INTEGER

  默認值是5

  對于一個新建連接,內(nèi)核要發(fā)送多少個 SYN 連接請求才決定放棄。不應該大于255,默認值是5,對應于180秒左右時間。(對于大負載而物理通信良好的網(wǎng)絡而言,這個值偏高,可修改為2.這個值僅僅是針對對外的連接,對進來的連接,是由tcp_retries1 決定的)

  tcp_synack_retries :INTEGER

  默認值是5

  對 于遠端的連接請求SYN,內(nèi)核會發(fā)送SYN + ACK數(shù)據(jù)報,以確認收到上一個 SYN連接請求包。這是所謂的三次握手( threeway handshake)機制的第二個步驟。這里決定內(nèi)核在放棄連接之前所送出的 SYN+ACK 數(shù)目。不應該大于255,默認值是5,對應于180秒左右時間。(可以根據(jù)上面的 tcp_syn_retries 來決定這個值)

  tcp_keepalive_time :INTEGER

  默認值是7200(2小時)

  當keepalive打開的情況下,TCP發(fā)送keepalive消息的頻率。(由于目前網(wǎng)絡攻擊等因素,造成了利用這個進行的攻擊很頻繁,曾經(jīng)也有cu的朋友提到過,說如果2邊建立了連接,然后不發(fā)送任何數(shù)據(jù)或者rst/fin消息,那么持續(xù)的時間是不是就是2小時,空連接攻擊? tcp_keepalive_time就是預防此情形的.我個人在做nat服務的時候的修改值為1800秒)

  tcp_keepalive_probes:INTEGER

  默認值是9

  TCP發(fā)送keepalive探測以確定該連接已經(jīng)斷開的次數(shù)。(注意:保持連接僅在SO_KEEPALIVE套接字選項被打開是才發(fā)送.次數(shù)默認不需要修改,當然根據(jù)情形也可以適當?shù)乜s短此值.設(shè)置為5比較合適)

  tcp_keepalive_intvl:INTEGER

  默認值為75

  探 測消息發(fā)送的頻率,乘以tcp_keepalive_probes就得到對于從開始探測以來沒有響應的連接殺除的時間。默認值為75秒,也就是沒有活動的 連接將在大約11分鐘以后將被丟棄。(對于普通應用來說,這個值有一些偏大,可以根據(jù)需要改小.特別是web類服務器需要改小該值,15是個比較合適的 值)

  tcp_retries1 :INTEGER

  默認值是3

  放棄回應一個TCP連接請求前﹐需要進行多少次重試。RFC 規(guī)定最低的數(shù)值是3﹐這也是默認值﹐根據(jù)RTO的值大約在3秒 - 8分鐘之間。(注意:這個值同時還決定進入的syn連接)

  tcp_retries2 :INTEGER

  默認值為15

  在丟棄激活(已建立通訊狀況)的TCP連接之前﹐需要進行多少次重試。默認值為15,根據(jù)RTO的值來決定,相當于13-30分鐘(RFC1122規(guī)定,必須大于100秒).(這個值根據(jù)目前的網(wǎng)絡設(shè)置,可以適當?shù)馗男?我的網(wǎng)絡內(nèi)修改為了5)

  tcp_orphan_retries :INTEGER

  默認值是7

  在近端丟棄TCP連接之前﹐要進行多少次重試。默認值是7個﹐相當于 50秒 - 16分鐘﹐視 RTO 而定。如果您的系統(tǒng)是負載很大的web服務器﹐那么也許需要降低該值﹐這類 sockets 可能會耗費大量的資源。另外參的考 tcp_max_orphans 。(事實上做NAT的時候,降低該值也是好處顯著的,我本人的網(wǎng)絡環(huán)境中降低該值為3)

  tcp_fin_timeout :INTEGER

  默認值是 60

  對 于本端斷開的socket連接,TCP保持在FIN-WAIT-2狀態(tài)的時間。對方可能會斷開連接或一直不結(jié)束連接或不可預料的進程死亡。默認值為 60 秒。過去在2.2版本的內(nèi)核中是 180 秒。您可以設(shè)置該值﹐但需要注意﹐如果您的機器為負載很重的web服務器﹐您可能要冒內(nèi)存被大量無效數(shù)據(jù)報填滿的風險﹐FIN-WAIT-2 sockets 的危險性低于 FIN-WAIT-1 ﹐因為它們最多只吃 1.5K 的內(nèi)存﹐但是它們存在時間更長。另外參考 tcp_max_orphans。(事實上做NAT的時候,降低該值也是好處顯著的,我本人的網(wǎng)絡環(huán)境中降低該值為30)

  tcp_max_tw_buckets :INTEGER

  默認值是180000

  系 統(tǒng)在同時所處理的最大 timewait sockets 數(shù)目。如果超過此數(shù)的話﹐time-wait socket 會被立即砍除并且顯示警告信息。之所以要設(shè)定這個限制﹐純粹為了抵御那些簡單的 DoS 攻擊﹐千萬不要人為的降低這個限制﹐不過﹐如果網(wǎng)絡條件需要比默認值更多﹐則可以提高它(或許還要增加內(nèi)存)。(事實上做NAT的時候最好可以適當?shù)卦黾?該值)

  tcp_tw_recycle :BOOLEAN

  默認值是0

  打開快速 TIME-WAIT sockets 回收。除非得到技術(shù)專家的建議或要求﹐請不要隨意修改這個值。(做NAT的時候,建議打開它)

  tcp_tw_reuse:BOOLEAN

  默認值是0

  該文件表示是否允許重新應用處于TIME-WAIT狀態(tài)的socket用于新的TCP連接(這個對快速重啟動某些服務,而啟動后提示端口已經(jīng)被使用的情形非常有幫助)

#p#副標題#e#

  tcp_max_orphans :INTEGER

  缺省值是8192

  系 統(tǒng)所能處理不屬于任何進程的TCP sockets最大數(shù)量。假如超過這個數(shù)量﹐那么不屬于任何進程的連接會被立即reset,并同時顯示警告信息。之所以要設(shè)定這個限制﹐純粹為了抵御那些 簡單的 DoS 攻擊﹐千萬不要依賴這個或是人為的降低這個限制(這個值Redhat AS版本中設(shè)置為32768,但是很多防火墻修改的時候,建議該值修改為2000)

  tcp_abort_on_overflow :BOOLEAN

  缺省值是0

  當 守護進程太忙而不能接受新的連接,就象對方發(fā)送reset消息,默認值是false。這意味著當溢出的原因是因為一個偶然的猝發(fā),那么連接將恢復狀態(tài)。只 有在你確信守護進程真的不能完成連接請求時才打開該選項,該選項會影響客戶的使用。(對待已經(jīng)滿載的sendmail,apache這類服務的時候,這個 可以很快讓客戶端終止連接,可以給予服務程序處理已有連接的緩沖機會,所以很多防火墻上推薦打開它)

  tcp_syncookies :BOOLEAN

  默認值是0

  只有在內(nèi)核編譯時選擇了CONFIG_SYNCOOKIES時才會發(fā)生作用。當出現(xiàn)syn等候隊列出現(xiàn)溢出時象對方發(fā)送syncookies。目的是為了防止syn flood攻擊。

  注意:該選項千萬不能用于那些沒有收到攻擊的高負載服務器,如果在日志中出現(xiàn)synflood消息,但是調(diào)查發(fā)現(xiàn)沒有收到synflood攻擊,而是合法用戶的連接負載過高的原因,你應該調(diào)整其它參數(shù)來提高服務器性能。參考:

  tcp_max_syn_backlog

  tcp_synack_retries

  tcp_abort_on_overflow

  syncookie 嚴重的違背TCP協(xié)議,不允許使用TCP擴展,可能對某些服務導致嚴重的性能影響(如SMTP轉(zhuǎn)發(fā))。(注意,該實現(xiàn)與BSD上面使用的tcp proxy一樣,是違反了RFC中關(guān)于tcp連接的三次握手實現(xiàn)的,但是對于防御syn-flood的確很有用.)

  tcp_stdurg :BOOLEAN

  默認值為0

  使用 TCP urg pointer 字段中的主機請求解釋功能。大部份的主機都使用老舊的 BSD解釋,因此如果您在 Linux 打開它﹐或會導致不能和它們正確溝通。

  tcp_max_syn_backlog :INTEGER

  對于那些依然還未獲得客戶端確認的連接請求﹐需要保存在隊列中最大數(shù)目。對于超過 128Mb 內(nèi)存的系統(tǒng)﹐默認值是 1024 ﹐低于 128Mb 的則為 128。如果服務器經(jīng)常出現(xiàn)過載﹐可以嘗試增加這個數(shù)字。警告﹗假如您將此值設(shè)為大于 1024﹐最好修改 include/net/tcp.h 里面的 TCP_SYNQ_HSIZE ﹐以保持 TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog ﹐并且編進核心之內(nèi)。(SYN Flood攻擊利用TCP協(xié)議散布握手的缺陷,偽造虛假源IP地址發(fā)送大量TCP-SYN半打開連接到目標系統(tǒng),最終導致目標系統(tǒng)Socket隊列資源耗 盡而無法接受新的連接。為了應付這種攻擊,現(xiàn)代Unix系統(tǒng)中普遍采用多連接隊列處理的方式來緩沖(而不是解決)這種攻擊,是用一個基本隊列處理正常的完 全連接應用(Connect()和Accept() ),是用另一個隊列單獨存放半打開連接。 這種雙隊列處理方式和其他一些系統(tǒng)內(nèi)核措施(例如Syn-Cookies/Caches)聯(lián)合應用時,能夠比較有效的緩解小規(guī)模的SYN Flood攻擊(事實證明<1000p/s)加大SYN隊列長度可以容納更多等待連接的網(wǎng)絡連接數(shù),所以對Server來說可以考慮增大該 值.)

  tcp_window_scaling :INTEGER

  缺省值為1

  該 文件表示設(shè)置tcp/ip會話的滑動窗口大小是否可變。參數(shù)值為布爾值,為1時表示可變,為0時表示不可變。tcp/ip通常使用的窗口最大可達到 65535 字節(jié),對于高速網(wǎng)絡,該值可能太小,這時候如果啟用了該功能,可以使tcp/ip滑動窗口大小增大數(shù)個數(shù)量級,從而提高數(shù)據(jù)傳輸?shù)哪芰?RFC 1323)。(對普通地百M網(wǎng)絡而言,關(guān)閉會降低開銷,所以如果不是高速網(wǎng)絡,可以考慮設(shè)置為0)

  tcp_timestamps :BOOLEAN

  缺省值為1

  Timestamps 用在其它一些東西中﹐可以防范那些偽造的 sequence 號碼。一條1G的寬帶線路或許會重遇到帶 out-of-line數(shù)值的舊sequence 號碼(假如它是由于上次產(chǎn)生的)。Timestamp 會讓它知道這是個 '舊封包'。(該文件表示是否啟用以一種比超時重發(fā)更精確的方法(RFC 1323)來啟用對 RTT 的計算;為了實現(xiàn)更好的性能應該啟用這個選項。)

  tcp_sack :BOOLEAN

  缺省值為1

  使 用 Selective ACK﹐它可以用來查找特定的遺失的數(shù)據(jù)報--- 因此有助于快速恢復狀態(tài)。該文件表示是否啟用有選擇的應答(Selective Acknowledgment),這可以通過有選擇地應答亂序接收到的報文來提高性能(這樣可以讓發(fā)送者只發(fā)送丟失的報文段)。(對于廣域網(wǎng)通信來說這個 選項應該啟用,但是這會增加對 CPU 的占用。)

  tcp_fack :BOOLEAN

  缺省值為1

  打開FACK擁塞避免和快速重傳功能。(注意,當tcp_sack設(shè)置為0的時候,這個值即使設(shè)置為1也無效)

  tcp_dsack :BOOLEAN

  缺省值為1

  允許TCP發(fā)送"兩個完全相同"的SACK。

  tcp_ecn :BOOLEAN

  缺省值為0

  打開TCP的

關(guān)鍵詞標簽:linux,tcp/ip協(xié)議

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法 Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法 多種操作系統(tǒng)NTP客戶端配置 多種操作系統(tǒng)NTP客戶端配置 Linux操作系統(tǒng)修改IP Linux操作系統(tǒng)修改IP

相關(guān)下載

    人氣排行 Linux下獲取CPUID、硬盤序列號與MAC地址 dmidecode命令查看內(nèi)存型號 linux tc實現(xiàn)ip流量限制 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 linux下解壓rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 關(guān)機、重啟、注銷 命令 查看linux服務器硬盤IO讀寫負載