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 

猜你喜欢

转载自blog.csdn.net/lixiangsheng2012/article/details/83421294