久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Linux中proc/sys/net目錄是什么

163次閱讀
沒有評論

共計 9177 個字符,預計需要花費 23 分鐘才能閱讀完成。

這篇文章主要為大家展示了“Linux 中 proc/sys/net 目錄是什么”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領大家一起研究并學習一下“Linux 中 proc/sys/net 目錄是什么”這篇文章吧。

Linux 這幾年發展迅速,推出了很多版本。讓我們眼花繚亂,不過在每個 Linux 的發行版本中,都存在一個 /proc/ 目錄,這就是 Linux 系統目錄。有的也稱它為 Proc 文件系統。對于那些網絡管理員必須要掌握 Linux 系統目錄。

在這個目錄中,包括了一些特殊的文件,不僅能用來反映內核的現行狀態和查看硬件信息,而且,有些文件還允許用戶來修改其中的內容,以調節內核的現行工作狀態,例如 /proc/sys/ 子目錄下的文件。

與 /proc/ 目錄中其它目錄不相同的是,/proc/sys/ 目錄下的文件不僅能提供系統的有關信息,而且還允許用戶立即停止或開啟內核的某些特性及功能。在 /proc/sys/ 目錄中的 /proc/sys/net/ 子目錄更是與網絡息息相關,我們可以通過設置此目錄下的某些文件來開啟與網絡應用相關的特殊功能,同時,也可以通過設置這個目錄下的某些文件來保護我們的網絡安全。因此,作為一名 Linux 下的網絡管理員,就很有必要詳細了解 /proc/sys/net/ 目錄下文件的各種功能和設置方法,讓它能更好地為我們工作。

一、/proc/sys/net/ 目錄說明。

/proc/sys/net/ 目錄主要包括了許多網絡相關的主題,例如:appletalk/,ethernet/,ipv4/,ipx/, 及 ipv6/。通過改變這些目錄中的文件,網絡管理員能夠在系統運行時調整相關網絡參數。雖然在 Linux 中還有很多有關網絡的配置方法,但熟悉此目錄中的相關內容對網絡應用是有很大的幫助的。

在 /proc/sys/net/ 目錄下有兩個目錄,與現在的 IPV4 網絡的運行息息相關,調整這兩個目錄下的某些文件的參數,能為我們的網絡應用帶到意想不到的效果,這兩個目錄就是 /proc/sys/net/core/ 目錄和 /proc/sys/net/ipv4/ 目錄,下面筆者將會對這兩個目錄中的重要文件分別作一個詳細的說明。

1、/proc/sys/net/core/ 目錄。

此目錄中包括許多設置用來控制 Linux 內核與網絡層的交互,即當網絡有什么動作時,內核做出什么樣的相應反應。

在其中有以下的一些重要文件:

(1)、message_burst:設置每十秒寫入多少次請求警告;此設置可以用來防止 DOS***,缺省設置為 50;

(2)、message_cost:設置每一個警告的度量值,缺省為 5,當用來防止 DOS*** 時設置為 0;

(3)、netdev_max_backlog:設置當個別接口接收包的速度快于內核處理速度時允許的最大的包序列,缺省為 300;

(4)、optmem_max: 設置每個 socket 的最大補助緩存大小;

(5)、rmem_default:設置接收 socket 的缺省緩存大小(字節);

(6)、rmem_max:設置接收 socket 的最大緩存大小(字節);

(7)、wmem_default: 設置發送的 socket 缺省緩存大小(字節);

(8)、wmem_max: 設置發送的 socket 最大緩存大小(字節)。

2、/proc/sys/net/ipv4/ 目錄。

此目錄中的內容用來添加網絡設置,在其中的許多設置,可以用來阻止對系統的 ***,或用來設置系統的路由功能。

其中有以下的這些重要的文件:

(1)、icmp_destunreach_rate、icmp_echoreply_rate、icmp_paramprob_rate、icmp_timeexeed_rate:設置發送和回應的最大 icmp 包的速率,最好不要為 0;

(2)、icmp_echo_ignore_all 和 icmp_echo_ignore_broadcasts:設置內核不應答 icmp echo 包,或指定的廣播,值為 0 是允許回應,值為 1 是禁止;

(3)、ip_default_ttl:設置 IP 包的缺省生存時間(TTL),增加它的值能減少系統開銷;

(4)、ip_forward:設置接口是否可以轉發包,缺省為 0,設置為 1 時允許網絡進行包轉發;

(5)、ip_local_port_range:當本地需要端口時指定 TCP 或 UDP 端口范圍。第一數為低端口,第二個數為高端口;

(6)、tcp_syn_retries: 提供限制在建立連接時重新發送回應的 SYN 包的次數;

(7)、tcp_retries1:設置回應連入重送的次數,缺省為 3;

(8)、tcp_retries2: 設置允許重送的 TCP 包的次數,缺省為 15。

二、/proc/sys/net/ 目錄下文件的設置方法。

在了解了 /proc/sys/net/core/ 目錄和 /proc/sys/net/ipv4/ 目錄中一些重要文件的意義和作用后,下面說說如何設置這兩個目錄中的這些重要文件來為我們工作的。

讀者應該了解,在 Linux 系統中,要改變某種服務或設備的工作狀態和功能,主要是通過使用命令方式和直接修改它的配置文件方式來達到目的,對于這兩個目錄下的文件,我們也可以通過這兩種方式來修改這些文件內容中的值,使它們按照我們的意圖工作。

在進行設置之前,應當注意的是,當你確定要修改某個文件的當前值時,一定要保證輸入的命令格式和值的內容都是正確的,因為任何的錯誤設置都會引起內核的不穩定,如果你不小心造成了這種問題,你就不得不重新引導系統了。在下面的說明中,筆者會將注意的地方特別說明出來的。

首先來看看如何使用命令方式來修改這兩個目錄下文件的。我們可以通過 echo 和 sysctl 這兩個命令來修改這兩個目錄中的文件,下面筆者將這兩個命令的使用方法分別列出來。

1、sysctl 命令是為設置這兩個目錄中的文件而定制的, 它被默認安裝在 /sbin/ 目錄中,我們可以通過使用此命令來顯示和設置 /proc/sys/net/ 目錄下的文件內容。例如:/sbin/sysctl - a 命令用來顯示此目錄下的所有文件配置內容;/sbin/sysctl - w 命令用來修改此目錄下指定文件中的變量值,如:/sbin/sysctl -w net.ipv4.ip_forward= 1 用來設置允許 IP 包轉發。其它的參數,讀者可以通過輸入 /sbin/sysctl - h 命令來得到,在這里就不再具體全部列出了。要注意的是,這個命令的使用需要管理員權限的,如果用戶不是以管理員身份登錄的,在使用此命令前用 SU 命令得得管理權限后再操作。

2、/proc/sys/net/ 目錄下的文件內容也可以通過用 echo 命令來修改。例如:echo 1 /proc/sys/net/ipv4/ip_forward 用來設置允許 IP 包轉發;echo 1 /proc/sys/net/ipv4/icmp_echo_ignore_all 用來設置不回應 ICMP ECHO 包。在使用 echo 命令時,還應特別注意此命令的輸入格式,即在 echo 命令和值之間,以及值與在于符號()之間,在于符號與要修改的文件路徑之間都必需有一個空格。而且,在這兩個目錄中的有些文件有不上一個的值,所以,如果你想一次性傳遞多個值,那么,每一個值之間也應保證用空格隔開。

同時也要注意的是,用此方法修改 /proc/sys/net/ 目錄下文件中的內容在系統重新啟動后,所設置的內容會全部變為默認值,因此,如果要想設置的值永久有效,可以直接把這個命令加入到 /ect/rc.d/rc.local 文件中,在這里,這個文件的路徑是指 Red Hat Linux 發行版本中的,其它發行版本讀者根據具體情況來定。如果命令項太多,也可以把這些命令項編寫成一個腳本后,加上可執行權限,再放到這個文件中,這樣當系統啟動時,就會按 /etc/rc.d/rc.local 中的設置自動執行。如果你不想修改 /etc/rc.d/rc.local 文件,那么筆者推薦你使用 /sbin/sysctl 命令。

使用命令方式設置 /proc/sys/net/ 目錄下的文件固然方便易行,但有一部分讀者更喜歡直接修改它們的配置文件的方式,因為這種方式更加直觀,但它比較適合對系統了解比較深的用戶。

與其它服務或設備不同的是,Linux 系統只為 /proc/sys/net/ 目錄提供了一個配置文件,那就是 /ect/sysctl.conf,用戶可以通過直接編輯 /ect/sysctl.conf 配置文件,來修改增加相應 /proc/sys/net/ 目錄下文件內容中的變量的值,這樣當系統啟動時就會讀取此文件中的配置內容來設置相應的項。用 vi 來編輯此文件是非常簡單的,此文件中內容格式也非常清晰易讀,如其中有如下條目:net.ipv4.ip_forward=0, 把值修改為 1 后就打開 IP 包轉發。其實,用 /sbin/sysctl 命令修改和直接編輯 /etc/sysctl.conf 文件內容具有相同的效果,因此,為了安全,推薦用戶優先使用 /sbin/sysctl 命令方式。

到這里,想必讀者已經對 /proc/sys/net/ 目錄下的 /proc/sys/net/core/ 和 /proc/sys/net/ipv4/ 這兩個目錄,已經有了一定了解了。可是,這只是筆者為了突出 /proc/ 目錄與 IPV4 網絡的作用而特別選出來說明,其實,在 /proc/ 目錄下,還有許多的文件,雖然不能被用戶如上述的兩個目錄那樣可以被設置,但是,可以通過這些文件來了解系統詳細情況和現行的運行狀態,讀者可以從網絡上找到這個目錄的詳細說明。

補充:
/proc/sys/net/ipv4/icmp_timeexceed_rate
這個在 traceroute 時導致著名的“Solaris middle star”。這個文件控制發送 ICMP Time Exceeded 消息的比率。
/proc/sys/net/ipv4/igmp_max_memberships
主機上最多有多少個 igmp (多播)套接字進行監聽。
/proc/sys/net/ipv4/inet_peer_gc_maxtime
求 助: Add a little explanation about the inet peer storage? Minimum interval between garbage collection passes. This interval is in effect under low (or absent) memory pressure on the pool. Measured in jiffies.
/proc/sys/net/ipv4/inet_peer_gc_mintime
每一遍碎片收集之間的最小時間間隔。當內存壓力比較大的時候,調整這個間隔很有效。以 jiffies 計。
/proc/sys/net/ipv4/inet_peer_maxttl
entries 的最大生存期。在 pool 沒有內存壓力的情況下(比如,pool 中 entries 的數量很少的時候),未使用的 entries 經過一段時間就會過期。以 jiffies 計。
/proc/sys/net/ipv4/inet_peer_minttl
entries 的最小生存期。應該不小于匯聚端分片的生存期。當 pool 的大小不大于 inet_peer_threshold 時,這個最小生存期必須予以保證。以 jiffies 計。
/proc/sys/net/ipv4/inet_peer_threshold
The approximate size of the INET peer storage. Starting from this threshold entries will be thrown aggressively. This threshold also determines entries time-to-live and time intervals between garbage collection passes. More entries, less time-to-live, less GC interval.
/proc/sys/net/ipv4/ip_autoconfig
這個文件里面寫著一個數字,表示主機是否通過 RARP、BOOTP、DHCP 或者其它機制取得其 IP 配置。否則就是 0。
/proc/sys/net/ipv4/ip_default_ttl
數據包的生存期。設置為 64 是安全的。如果你的網絡規模巨大就提高這個值。不要因為好玩而這么做——那樣會產生有害的路由環路。實際上,在很多情況下你要考慮能否減小這個值。
/proc/sys/net/ipv4/ip_dynaddr/proc/sys/net/ipv4/icmp_destunreach_rate

如果你有一個動態地址的自動撥號接口,就得設置它。當你的自動撥號接口激活的時候,本地所有沒有收到答復的 TCP 套接字會重新綁定到正確的地址上。這可以解決引發撥號的套接字本身無法工作,重試一次卻可以的問題。
/proc/sys/net/ipv4/ip_forward
內核是否轉發數據包。缺省禁止。
/proc/sys/net/ipv4/ip_local_port_range
用于向外連接的端口范圍。缺省情況下其實很小:1024 到 4999。
/proc/sys/net/ipv4/ip_no_pmtu_disc
如果你想禁止“沿途 MTU 發現”就設置它。“沿途 MTU 發現”是一種技術,可以在傳輸路徑上檢測出最大可能的 MTU 值。參見 Cookbook 一章中關于“沿途 MTU 發現”的內容。
/proc/sys/net/ipv4/ipfrag_high_thresh
用于 IP 分片匯聚的最大內存用量。分配了這么多字節的內存后,一旦用盡,分片處理程序就會丟棄分片。When ipfrag_high_thresh bytes of memory is allocated for this purpose, the fragment handler will toss packets until ipfrag_low_thresh is reached.
/proc/sys/net/ipv4/ip_nonlocal_bind
如果你希望你的應用程序能夠綁定到不屬于本地網卡的地址上時,設置這個選項。如果你的機器沒有專線連接 (甚至是動態連接) 時非常有用,即使你的連接斷開,你的服務也可以啟動并綁定在一個指定的地址上。
/proc/sys/net/ipv4/ipfrag_low_thresh
用于 IP 分片匯聚的最小內存用量。
/proc/sys/net/ipv4/ipfrag_time
IP 分片在內存中的保留時間(秒數)。
/proc/sys/net/ipv4/tcp_abort_on_overflow
一個布爾類型的標志,控制著當有很多的連接請求時內核的行為。啟用的話,如果服務超載,內核將主動地發送 RST 包。
/proc/sys/net/ipv4/tcp_fin_timeout
如果套接字由本端要求關閉,這個參數決定了它保持在 FIN-WAIT- 2 狀態的時間。對端可以出錯并永遠不關閉連接,甚至意外當機。缺省值是 60 秒。2.2 內核的通常值是 180 秒,你可以按這個設置,但要記住的是,即使你的機器是一個輕載的 WEB 服務器,也有因為大量的死套接字而內存溢出的風險,FIN- WAIT- 2 的危險性比 FIN-WAIT- 1 要小,因為它最多只能吃掉 1.5K 內存,但是它們的生存期長些。參見 tcp_max_orphans。

/proc/sys/net/ipv4/tcp_keepalive_time
當 keepalive 起用的時候,TCP 發送 keepalive 消息的頻度。缺省是 2 小時。
/proc/sys/net/ipv4/tcp_keepalive_intvl
當探測沒有確認時,重新發送探測的頻度。缺省是 75 秒。
/proc/sys/net/ipv4/tcp_keepalive_probes
在認定連接失效之前,發送多少個 TCP 的 keepalive 探測包。缺省值是 9。這個值乘以 tcp_keepalive_intvl 之后決定了,一個連接發送了 keepalive 之后可以有多少時間沒有回應。
/proc/sys/net/ipv4/tcp_max_orphans
系統中最多有多少個 TCP 套接字不被關聯到任何一個用戶文件句柄上。如果超過這個數字,孤兒連接將即刻被復位并打印出警告信息。這個限制僅僅是為了防止簡單的 DoS***,你絕對不能過分依靠它或者人為地減小這個值,更應該增加這個值(如果增加了內存之后)。This limit exists only to prevent simple DoS attacks, you _must_ not rely on this or lower the limit artificially, but rather increase it (probably, after increasing installed memory), if network conditions require more than default value, and tune network services to linger and kill such states more aggressively. 讓我再次提醒你:每個孤兒套接字最多能夠吃掉你 64K 不可交換的內存。
/proc/sys/net/ipv4/tcp_orphan_retries
本端試圖關閉 TCP 連接之前重試多少次。缺省值是 7,相當于 50 秒~16 分鐘(取決于 RTO)。如果你的機器是一個重載的 WEB 服務器,你應該考慮減低這個值,因為這樣的套接字會消耗很多重要的資源。參見 tcp_max_orphans。
/proc/sys/net/ipv4/tcp_max_syn_backlog
記錄的那些尚未收到客戶端確認信息的連接請求的最大值。對于有 128M 內存的系統而言,缺省值是 1024,小內存的系統則是 128。如果服務器不堪重負,試試提高這個值。注意!如果你設置這個值大于 1024,最好同時調整 include/net/tcp.h 中的 TCP_SYNQ_HSIZE,以保證 TCP_SYNQ_HSIZE*16 ≤tcp_max_syn_backlo,然后重新編譯內核。
/proc/sys/net/ipv4/tcp_max_tw_buckets
系統同時保持 timewait 套接字的最大數量。如果超過這個數字,time-wait 套接字將立刻被清除并打印警告信息。這個限制僅僅是為了防止簡單的 DoS***,你絕對不能過分依靠它或者人為地減小這個值,如果網絡實際需要大于缺省值,更應該增加這個值(如果增加了內存之后)。
/proc/sys/net/ipv4/tcp_retrans_collapse
為兼容某些糟糕的打印機設置的“將錯就錯”選項。再次發送時,把數據包增大一些,來避免某些 TCP 協議棧的 BUG。

/proc/sys/net/ipv4/tcp_retries1
在認定出錯并向網絡層提交錯誤報告之前,重試多少次。缺省設置為 RFC 規定的最小值:3,相當于 3 秒~8 分鐘(取決于 RIO)。
/proc/sys/net/ipv4/tcp_retries2
在殺死一個活動的 TCP 連接之前重試多少次。RFC 1122 規定這個限制應該長于 100 秒。這個值太小了。缺省值是 15,相當于 13~30 分鐘(取決于 RIO)。
/proc/sys/net/ipv4/tcp_rfc1337
這個開關可以啟動對于在 RFC1337 中描述的“tcp 的 time-wait 暗殺危機”問題的修復。啟用后,內核將丟棄那些發往 time-wait 狀態 TCP 套接字的 RST 包。卻省為 0。
/proc/sys/net/ipv4/tcp_sack
特別針對丟失的數據包使用選擇性 ACK,這樣有助于快速恢復。
/proc/sys/net/ipv4/tcp_stdurg
使用 TCP 緊急指針的主機需求解釋。因為絕大多數主機采用 BSD 解釋,所以如果你在 Linux 上打開它,可能會影響它與其它機器的正常通訊。缺省是 FALSE。
/proc/sys/net/ipv4/tcp_syn_retries
在內核放棄建立連接之前發送 SYN 包的數量。
/proc/sys/net/ipv4/tcp_synack_retries
為了打開對端的連接,內核需要發送一個 SYN 并附帶一個回應前面一個 SYN 的 ACK。也就是所謂三次握手中的第二次握手。這個設置決定了內核放棄連接之前發送 SYN+ACK 包的數量。
/proc/sys/net/ipv4/tcp_timestamps
時間戳可以避免序列號的卷繞。一個 1Gbps 的鏈路肯定會遇到以前用過的序列號。時間戳能夠讓內核接受這種“異常”的數據包。
/proc/sys/net/ipv4/tcp_tw_recycle
能夠更快地回收 TIME-WAIT 套接字。缺省值是 1。除非有技術專家的建議和要求,否則不應修改。
/proc/sys/net/ipv4/tcp_window_scaling
一般來說 TCP/IP 允許窗口尺寸達到 65535 字節。對于速度確實很高的網絡而言這個值可能還是太小。這個選項允許設置上 G 字節的窗口大小,有利于在帶寬 * 延遲很大的環境中使用。
一旦內核認為它無法發包,就會丟棄這個包,并向發包的主機發送 ICMP 通知。
/proc/sys/net/ipv4/icmp_echo_ignore_all
根本不要響應 echo 包。請不要設置為缺省,它可能在你正被利用成為 DoS*** 的跳板時可能有用。
/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts [Useful]
如果你 ping 子網的子網地址,所有的機器都應該予以回應。這可能成為非常好用的拒絕服務 *** 工具。設置為 1 來忽略這些子網廣播消息。
/proc/sys/net/ipv4/icmp_echoreply_rate
設置了向任意主機回應 echo 請求的比率。
/proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
設置它之后,可以忽略由網絡中的那些聲稱回應地址是廣播地址的主機生成的 ICMP 錯誤。
/proc/sys/net/ipv4/icmp_paramprob_rate
一個相對不很明確的 ICMP 消息,用來回應 IP 頭或 TCP 頭損壞的異常數據包。你可以通過這個文件控制消息的發送比率。

以上是“Linux 中 proc/sys/net 目錄是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計9177字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 玉龙| 通州市| 卓尼县| 高清| 澄迈县| 宣武区| 梓潼县| 剑川县| 宝鸡市| 樟树市| 肇东市| 丘北县| 永仁县| 乐山市| 高台县| 丹寨县| 龙南县| 恩施市| 九台市| 屏东县| 施秉县| 奎屯市| 翼城县| 承德县| 固阳县| 宁晋县| 灵丘县| 武城县| 漳浦县| 什邡市| 定日县| 宽城| 青冈县| 廉江市| 仪陇县| 滨州市| 阜新| 大名县| 棋牌| 孙吴县| 五华县|