1. 程式人生 > >Linux基礎(二)——/proc檔案系統

Linux基礎(二)——/proc檔案系統

1、/proc檔案系統簡介
    /proc檔案系統由一組目錄和檔案組成,裝配(mount)於/proc目錄下。/proc檔案系統是一種虛擬檔案系統,以檔案系統目錄和檔案形式提供一個只想核心資料結構的介面。這為檢視和改變各種系統屬性開啟了方便之門。此外,還能通過一組以/proc/PID形式命名的的目錄檢視系統中各種程序的相關資訊。
    通常,/proc目錄下的檔案內容都採取人類可讀取的文字形式,shell指令碼也能對其解析。程式可以開啟、讀取和寫入/proc目錄下的既定檔案。大多數情況下,只有特權級程序才能修改/proc目錄下的內容。
2、 /proc/sys/net目錄


    /proc/目錄中其它目錄不相同的是,/proc/sys/目錄下的檔案不僅能提供系統的有關資訊,而且還允許使用者立即停止或開啟核心的某些特性及功能。在/proc/sys/目錄中的/proc/sys/net/子目錄更是與網路息息相關,我們可以通過設定此目錄下的某些檔案來開啟與網路應用相關的特殊功能,同時,也可以通過設定這個目錄下的某些檔案來保護我們的網路安全。因此,作為一名Linux下的網路管理員,就很有必要詳細瞭解/proc/sys/net/目錄下檔案的各種功能和設定方法,讓它能更好地為我們工作。 
2.1/proc/sys/net/目錄說明
 
  /proc/sys/net/
目錄主要包括了許多網路相關的主題,例如:appletalk/,ethernet/,ipv4/,ipx/,ipv6/。通過改變這些目錄中的檔案,網路管理員能夠在系統執行時調整相關網路引數。雖然在Linux中還有很多有關網路的配置方法,但熟悉此目錄中的相關內容對網路應用是有很大的幫助的。

/proc/sys/net/目錄下有兩個目錄,與現在的IPV4網路的執行息息相關,調整這兩個目錄下的某些檔案的引數,能為我們的網路應用帶到意想不到的效果,這兩個目錄就是/proc/sys/net/core/目錄和/proc/sys/net/ipv4/目錄,下面筆者將會對這兩個目錄中的重要檔案分別作一個詳細的說明。
2.1.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.2.2 
/proc/sys/net/ipv4/目錄

此目錄中的內容用來新增網路設定,在其中的許多設定,可以用來阻止對系統的攻擊,或用來設定系統的路由功能。

其中有以下的這些重要的檔案:

  1)、icmp_destunreach_rateicmp_echoreply_rateicmp_paramprob_rateicmp_timeexeed_rate:設定傳送和迴應的最大icmp包的速率,最好不要為0

  (2)、icmp_echo_ignore_allicmp_echo_ignore_broadcasts:設定核心不應答icmp echo包,或指定的廣播,值為0是允許迴應,值為1是禁止;

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

  (4)、ip_forward:設定介面是否可以轉發包,預設為0,設定為1時允許網路進行包轉發;

  (5)、ip_local_port_range:當本地需要埠時指定TCPUDP埠範圍。第一數為低埠,第二個數為高階口;

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

  (7)、tcp_retries1:設定迴應連入重送的次數,預設為3

    (8)、tcp_retries2:設定允許重送的TCP包的次數,預設為15 
2.2.3設定的方法 

 用/sbin/sysctl和echo命令,具體如下:
    
 /sbin/sysctl -w net.ipv4.ip_forward="1" 
     echo 1 > /proc/sys/net/ipv4/ip_forward