当前位置:文档之家› Linux 内核网络参数配置资料

Linux 内核网络参数配置资料

Linux 内核网络参数配置资料
Linux 内核网络参数配置资料

Linux 内核网络参数配置资料

=================================================================== ==

Linux系统内核中网络参数的意义及其应用(1)

在Linux中,我们可以根据不同的需求来调整/proc/sys/net/ipv4/目录下的内核网络参数,通过合理的配置这里内核网络参数,从而达到提高网络的安全性和系统的稳定性的目的。因为这方面的文献比较少,所以我们不可能进行全面的介绍。现在已经有linux组织正在从事这方面的文档的写作,相信在不久的将来,我们就会看到比较完整的文档。下面我们就来看一看一些比较常用的内核网络参数。

注意:

1.参数值带有速度(rate)的参数不能在loopback接口上工作。

2.因为内核是以HZ为单位的内部时钟来定义速度的,通常速度为100HZ,所以设定一个参数值为100就表示允许1个包/秒,假如为20则允许5个包/秒。

3.所有内核网络参数配置文件位于/proc/sys/net/ipv4/目录下。

一、icmp相关内核配置参数

概述:通常我们使用icmp包来探测目的主机上的其它协议(如tcp和udp)是否可用。比如包含“destination unreachable”信息的icmp包就是最常见的icmp包。

◆1.icmp_destunreach_rate:设置内容为“Destination Unreachable”icmp包的响应速率。设置值应为整数。

应用实例:

假设有A、B两部主机,首先我们在主机A上执行以下ipchains语句:

ipchains -A input -p icmp -j REJECT

这里的REJECT和DENY不同,DENY会丢掉符合条件的包如同没有接收到该包一样,而REJECT会在丢掉该包的同时给请求主机发回一个“Destination Unreachable”的icmp。

然后在主机B上ping主机A,这时候我们会发现“Destination Unreachable”icmp包的响应速度是很及时的。接着我们在主机A上执行:

echo "1000" > /proc/sys/net/ipv4/icmp_destunreach_rate

也即每10秒钟响应一个“Destination Unreachable”的icmp包。

这时候再从主机B上ping主机A就会发现“Destination Unreachable”icmp包的响应速度已经明显变慢,我很好奇的测试了一下,发现刚好是每10秒响应一次。

◆2.icmp_echo_ignore_broadcasts:设置是否响应icmp echo请求广播,设置值应为布尔值,0表示响应icmp echo请求广播,1表示忽略。

注意:windows系统是不响应icmp echo请求广播的。

应用实例:

在我的RedHat6.x和RedHat7上该值缺省为0,这样当有个用ping我的服务器所在的网段的网络地址时,所有的linux服务器就会响应,从而也能让让该用户得到我的服务器的ip地址,可以执行

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

来关闭该功能。从而防止icmp风暴,防止网络阻塞。

◆3.icmp_echoreply_rate:设置系统响应icmp echo请求的icmp包的响应速度,设置值为整数。

应用实例:

假设有A、B两部主机,首先我们在主机B上ping主机A,可以看到响应很正常,然后在主机A上执行echo "1000" > /proc/sys/net/ipv4/icmp_echoreply_rate。也即每10秒钟响应一个icmp echo请求包。然后再ping主机A就可以看到响应速度已经变成10秒一次。最好合理的调整该参数的值来防止icmp风暴。

◆4.icmp_echo_ignore_all:设置系统是否忽略所有的icmp echo请求,如果设置了一个非0值,系统将忽略所有的icmp echo请求。其实这是icmp_echoreply_rate的一种极端情况。参数值为布尔值,1表示忽略,0表示响应。

◆5. icmp_paramprob_rate:当系统接收到数据报的损坏的ip或tcp头时,就会向源发出一个包含有该错误信息的icmp包。这个参数就是用来设置向源发送这种icmp包的速度。当然,在通常情况下ip或tcp头出错是很少见的。参数值为整数。

◆6.icmp_timeexceed_rate:数据报在网络上传输时,其生存时间(time to live)字段会不断减少,当生存时间为0时,正在处理该数据报的路由器就会丢弃该数据报,同时给源主机发送一个“time to live exceeded”的icmp包。该参数就是用来设置这种icmp包的发送的速度。当然,这通常用于充当路由器的linux主机。

二、ip相关内核配置参数

linux内核网络参数中关于ip的配置参数通常是用来定义或调整ip包的一些特定的参数,除此之外还定义了系统的一些网络特性。

1.ip_default_ttl:设置从本机发出的ip包的生存时间,参数值为整数,范围为0~128,缺省值为64。在windows系统中,ip 包的生存时间通常为128。如果你的系统经常得到“Time to live exceeded”的icmp回应,可以适当增大该参数的值,但是也不能过大,因为如果你的路由的环路的话,就会增加系统报错的时间。

2.ip_dynaddr:该参数通常用于使用拨号连接的情况,可以使系统动能够立即改变ip包的源地址为该ip地址,同时中断原有的tcp对话而用新地址重新发出一个syn请求包,开始新的tcp对话。在使用ip欺骗时,该参数可以立即改变伪装地址为新的ip地址。该参数的参数值可以是:

1:启用该功能

2:使用冗余模式启用该功能

0:禁止该功能

应用实例:

在使用ipchains配置ip欺骗带动局域网共享一个ppp连接上网时,有时会出现刚开时连接一个站点连不通,再次刷新又可以连接的情况,这时候就可以设置该参数的值为1,从而立即改变伪装地址为新的ip地址,就可以解决这类问题。命令为:

echo "1" > /proc/sys/net/ipv4/ip_dynaddr

3.ip_forward:可以通过该参数来启用包转发功能,从而使系统充当路由器。参数值为1时启用ip转发,为0时禁止ip转发。注意,我们可以在单网卡或双网卡的主机上实现ip转发。

应用实例:

假设我们使用一部装有双网卡的linux主机充当防火墙,这时候我们就必须执行以下命令来打开ip转发功能:

echo "1" > /proc/sys/net/ipv4/ip_forward

4.ip_local_port_range:设置当本地系统向外发起tcp或udp连接请求时使用的端口范围。设置值为两个整数,缺省为“1024 4999”。

应用实例:

echo "1450 6000" > /proc/sys/net/ipv4/ip_local_port_range

三、tcp相关内核配置参数

通过tcp配置参数可以控制tcp会话过程中的各个方面。

a) tcp_fin_timeout:在一个tcp会话过程中,在会话结束时,A首先向B发送一个fin包,在获得B的ack确认包后,A就进入FIN WAIT2状态等待B的fin包然后给B发ack确认包。这个参数就是用来设置A进入FIN WAIT2状态等待对方fin包的超时时间。如果时间到了仍未收到对方的fin包就主动释放该会话。参数值为整数,单位为秒,缺省为180秒。

b) tcp_syn_retires:设置开始建立一个tcp会话时,重试发送syn连接请求包的次数。

参数值为小于255的整数,缺省值为10。假如你的连接速度很快,可以考虑降低该值来提高系统响应时间,即便对连接速度很慢的用户,缺省值的设定也足够大了。

c) tcp_window_scaling:设置tcp/ip会话的滑动窗口大小是否可变。参数值为布尔值,为1时表示可变,为0时表示不可变。Tcp/ip 通常使用的窗口最大可达到65535 字节,对于高速网络,该值可能太小,这时候如果启用了该功能,可以使tcp/ip滑动窗口大小增大数个数量级,从而提高数据传输的能力。

四、有关防止ip欺骗攻击的内核网络参数

假设有如下的情景:

在缺省状态下,路由器根据包的目的地址进行转发,所以路由器缺省是对来自任何地方的包进行转发的。如上图所示,假如路由器的2.2.2.2接口(也即广域网接口)接收到一个包,该包的源地址为1.1.1.100(也即为Intranet地址),虽然这是不可能或者说是不合理的,但是由于路由器的特性,路由器还是会将这个不合法的包转发到Intranet。从而让黑客有了可乘之机,为其进行ip欺骗攻击打开了方便之门。

幸好,我们可以通过Linux的内核系统参数“反向路径过滤”来防止这种情况,该参数位于

/proc/sys/net/ipv4/conf/下的各个子目录中的rp_filter文件。参数值为整数,可能的值有:

2 -进行全面的反向路径过滤,推荐在边缘路由器上使用。但是要注意,在复杂的网络环境中,如果使用了静态路由或rip、ospf路由协议时,不推荐使用该值。

1 -是该参数的缺省值,它只对直接连接的网络进行反向路径过滤。

0 -不进行反向路径过滤。

应用实例:

建立如下的脚本,文件名为rp.sh

#/bin/bash for i in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 2 > $i done

然后更改文件权限chmod 755 rp.sh

最后执行 ./rp.sh

五、针对每一网络接口的内核网络参数

通过针对每一网络接口的内核网络参数,你可以为诸如eth0、eth1等具体的网络接口指

定响应的内核网络参数。

注意:/proc/sys/net/ipv4/conf/all/下的参数将应用于所有的网络接口。

1.accept_redirects:该参数位于/proc/sys/net/ipv4/conf/DEV/accept_redirects (DEV表示具体的网络接口),如果你的主机所在的网段中有两个路由器,你将其中一个设置成了缺省网关,但是该网关在收到你的ip包时发现该ip包必须经过另外一个路由器,这时这个路由器就会给你发一个所谓的“重定向”icmp包,告诉将ip包转发到另外一个路由器。参数值为布尔值,1表示接收这类重定向icmp 信息,0表示忽略。在充当路由器的linux主机上缺省值为0,在一般的linux主机上缺省值为1。建议将其改为0,或者使用“安全重定向”(见下文)以消除安全性隐患。

2.log_martians:将包含非法地址信息的ip包记录到内核日志。参数值为布尔值。

应用实例:

上面我们讲过rp_filter反向路径过滤参数,同时我们可以执行下面的语句

echo “1” > /proc/sys/net/ipv4/conf/all/log_martians

然后就可以将进行ip假冒的ip包记录到/var/log/messages。

3.forwarding:启用特定网络接口的ip转发功能。参数值为布尔值,1表示进行记录。

应用实例:

echo "1" > /proc/sys/net/ipv4/conf/eth0/forwarding

4.accept_source_route:是否接受含有源路由信息的ip包。参数值为布尔值,1表示接受,0表示不接受。在充当网关的linux主机上缺省值为1,在一般的linux主机上缺省值为0。从安全性角度出发,建议你关闭该功能。

5.secure_redirects:前面我们已经提到过“安全重定向”的概念,其实所谓的“安全重定向”就是只接受来自网关的“重定向”icmp包。该参数就是用来设置“安全重定向”功能的。参数值为布尔值,1表示启用,0表示禁止,缺省值为启用。

6.proxy_arp:设置是否对网络上的arp包进行中继。参数值为布尔值,1表示中继,0表示忽略,缺省值为0。该参数通常只对充当路由器的linux主机有用。

=================================================================== ==

linux 内核调优2 及配置文件

关键字: linux 内核调优2及配置文件

1 /etc/sysctl.conf

Sysctl是一个允许您改变正在运行中的Linux系统的接口。它包含一些TCP/IP 堆栈和虚拟内存系统的高级选项,这可以让有经验的管理员提高引人注目的系统性能。用sysctl可以读取设置超过五百个系统变量。基于这点,sysctl(8) 提供两个功能:读取和修改系统设置。

2 /etc/security/limits.conf

linux limits.conf 配置limits.conf 文件实际是Linux PAM (插入式认证模块,Pluggable Authentication Modules)中pam_limits.so 的配置文件,而且只针对于单个会话。

limits.conf的格式如下:

username|@groupname type resource limit

username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。

type:有soft,hard 和-,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用- 就表明同时设置了soft 和hard 的值。resource:

core - 限制内核文件的大小

date - 最大数据大小

fsize - 最大文件大小

memlock - 最大锁定内存地址空间

nofile - 打开文件的最大数目

rss - 最大持久设置大小

stack - 最大栈大小

cpu - 以分钟为单位的最多CPU 时间

noproc - 进程的最大数目

as - 地址空间限制

maxlogins - 此用户允许登录的最大数目

要使limits.conf 文件配置生效,必须要确保pam_limits.so 文件被加入到启动文件中。查看/etc/pam.d/login 文件中有:

session required /lib/security/pam_limits.so

3 /etc/pam.d/login

查看/etc/pam.d/login 文件中有:

session required /lib/security/pam_limits.so

4 /etc/profile

每个用户需要两个.profile 。

1 /etc/profile 是系统的,所有用户公用的

2 /home/waterstream/.profile或者.bash_profile 是每个用户的,你可以在这里配置自己的东西。

当你登陆时,系统验证用户,和密码。随后根据你在/etc/passwd的信息,来执行/etc/profile,然后再来执行/home/waterstream/下面的.profile或.bash_file,你明白了吗?如果不明白,可看一下shell编程。

profile是unix上有的。bash_profile是Linux下有的。

反正,我用的unix,和linux是这样的。

编辑完环境变量配置文件 .bash_profile之后,需要重新启动系统。也可以

用 . .bash_profile 来重新读取环境变量的配置信息,不必重新启动系统

ps:

/etc/sysctl.conf 调优2007年10月11日星期四下午12:03sysctl.conf 优化

The sysctl.conf of a server is something that is seldom optimized for performance. You can get a tremendous boost in throughput by adjusting these settings. This configuration has been written by Steve from Rack911. I have applied this configuration to servers ranging from Celeron 1.7Ghz to Dual Xeon 2.8Ghz servers, and on the whole, the load on each lowered after making the changes.

First make a backup of your old /etc/sysctl.conf file by running the following command, logged in as root:

cp /etc/sysctl.conf /etc/sysctl.conf.bak

Now enter:

pico /etc/sysctl.conf

and replace the contents of the file with the following:

# Kernel sysctl configuration file for Red Hat Linux

#

# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and

# sysctl.conf(5) for more details.

# Disables packet forwarding

net.ipv4.ip_forward=0

# Disables IP source routing

net.ipv4.conf.all.accept_source_route = 0

net.ipv4.conf.lo.accept_source_route = 0

net.ipv4.conf.eth0.accept_source_route = 0

net.ipv4.conf.default.accept_source_route = 0

# Enable IP spoofing protection, turn on source route verification

net.ipv4.conf.all.rp_filter = 1

net.ipv4.conf.lo.rp_filter = 1

net.ipv4.conf.eth0.rp_filter = 1

net.ipv4.conf.default.rp_filter = 1

# Disable ICMP Redirect Acceptance

net.ipv4.conf.all.accept_redirects = 0

net.ipv4.conf.lo.accept_redirects = 0

net.ipv4.conf.eth0.accept_redirects = 0

net.ipv4.conf.default.accept_redirects = 0

# Enable Log Spoofed Packets, Source Routed Packets, Redirect Packets net.ipv4.conf.all.log_martians = 0

net.ipv4.conf.lo.log_martians = 0

net.ipv4.conf.eth0.log_martians = 0

# Disables the magic-sysrq key

kernel.sysrq = 0

# Decrease the time default value for tcp_fin_timeout connection

net.ipv4.tcp_fin_timeout = 15

# Decrease the time default value for tcp_keepalive_time connection net.ipv4.tcp_keepalive_time = 1800

# Turn off the tcp_window_scaling

net.ipv4.tcp_window_scaling = 0

# Turn off the tcp_sack

net.ipv4.tcp_sack = 0

# Turn off the tcp_timestamps

net.ipv4.tcp_timestamps = 0

# Enable TCP SYN Cookie Protection

net.ipv4.tcp_syncookies = 1

# Enable ignoring broadcasts request

net.ipv4.icmp_echo_ignore_broadcasts = 1

# Enable bad error message Protection

net.ipv4.icmp_ignore_bogus_error_responses = 1

# Log Spoofed Packets, Source Routed Packets, Redirect Packets net.ipv4.conf.all.log_martians = 1

# Increases the size of the socket queue (effectively, q0).

net.ipv4.tcp_max_syn_backlog = 1024

# Increase the tcp-time-wait buckets pool size

net.ipv4.tcp_max_tw_buckets = 1440000

# Allowed local port range

net.ipv4.ip_local_port_range = 16384 65536

CTRL + X to exit and save the file

To make your changes take effect immediately, type this command: /sbin/sysctl -p

引用自:FreeBSD下构建安全的Web服务器

作者:heiyeluren https://www.doczj.com/doc/2d13783511.html,

编辑/etc/sysctl.conf 文件,在里面加入如下内容:(有注释)

#最大的待发送TCP数据缓冲区空间

net.inet.tcp.sendspace=65536

#最大的接受TCP缓冲区空间

net.inet.tcp.recvspace=65536

#最大的接受UDP缓冲区大小

net.inet.udp.sendspace=65535

#最大的发送UDP数据缓冲区大小

net.inet.udp.maxdgram=65535

#本地套接字连接的数据发送空间

net.local.stream.sendspace=65535

#加快网络性能的协议

net.inet.tcp.rfc1323=1

net.inet.tcp.rfc1644=1

net.inet.tcp.rfc3042=1

net.inet.tcp.rfc3390=1

#最大的套接字缓冲区

kern.ipc.maxsockbuf=2097152

#系统中允许的最多文件数量

kern.maxfiles=65536

#每个进程能够同时打开的最大文件数量

kern.maxfilesperproc=32768

#当一台计算机发起TCP连接请求时,系统会回应ACK应答数据包。该选项设置是否延迟ACK应答数据包,把它和包含数据的数据包一起发送,在高速网络和低负载的情况下会略微提高性能,但在网络连接较差的时候,对方计算机得不到应答会持续发起连接请求,反而会降低性能。

net.inet.tcp.delayed_ack=0

#屏蔽ICMP重定向功能

net.inet.icmp.drop_redirect=1

net.inet.icmp.log_redirect=1

net.inet.ip.redirect=0

net.inet6.ip6.redirect=0

#防止ICMP广播风暴

net.inet.icmp.bmcastecho=0

net.inet.icmp.maskrepl=0

#限制系统发送ICMP速率

net.inet.icmp.icmplim=100

#安全参数,编译内核的时候加了options TCP_DROP_SYNFIN才可以用

net.inet.icmp.icmplim_output=0

net.inet.tcp.drop_synfin=1

#设置为1会帮助系统清除没有正常断开的TCP连接,这增加了一些网络带宽的使用,但是一些死掉的连接最终能被识别并清除。死的TCP连接是被拨号用户存取的系统的一个特别的问题,因为用户经常断开modem而不正确的关闭活动的连接

net.inet.tcp.always_keepalive=1

#若看到net.inet.ip.intr_queue_drops这个在增加,就要调大net.inet.ip.intr_queue_maxlen,为0最好

net.inet.ip.intr_queue_maxlen=1000

#防止DOS攻击,默认为30000

net.inet.tcp.msl=7500

#接收到一个已经关闭的端口发来的所有包,直接drop,如果设置为1则是只针对TCP包net.inet.tcp.blackhole=2

#接收到一个已经关闭的端口发来的所有UDP包直接drop

net.inet.udp.blackhole=1

#为网络数据连接时提供缓冲

net.inet.tcp.inflight.enable=1

#如果打开的话每个目标地址一次转发成功以后它的数据都将被记录进路由表和arp数据表,节约路由的计算时间,但会需要大量的内核内存空间来保存路由表

net.inet.ip.fastforwarding=0

#kernel编译打开options POLLING功能,高负载情况下使用低负载不推荐SMP不能和polling一起用

#kern.polling.enable=1

#并发连接数,默认为128,推荐在1024-4096之间,数字越大占用内存也越大

kern.ipc.somaxconn=32768

#禁止用户查看其他用户的进程

security.bsd.see_other_uids=0

#设置kernel安全级别

kern.securelevel=0

#记录下任何TCP连接

net.inet.tcp.log_in_vain=1

#记录下任何UDP连接

net.inet.udp.log_in_vain=1

#防止不正确的udp包的攻击

net.inet.udp.checksum=1

#防止DOS攻击

net.inet.tcp.syncookies=1

#仅为线程提供物理内存支持,需要256兆以上内存

kern.ipc.shm_use_phys=1

# 线程可使用的最大共享内存

kern.ipc.shmmax=67108864

# 最大线程数量

kern.ipc.shmall=32768

# 程序崩溃时不记录

kern.coredump=0

# lo本地数据流接收和发送空间

net.local.stream.recvspace=65536

net.local.dgram.maxdgram=16384

net.local.dgram.recvspace=65536

# 数据包数据段大小,ADSL为1452。

net.inet.tcp.mssdflt=1460

# 为网络数据连接时提供缓冲

net.inet.tcp.inflight_enable=1

# 数据包数据段最小值,ADSL为1452

net.inet.tcp.minmss=1460

# 本地数据最大数量

net.inet.raw.maxdgram=65536

# 本地数据流接收空间

net.inet.raw.recvspace=65536

#ipfw防火墙动态规则数量,默认为4096,增大该值可以防止某些病毒发送大量TCP连接,导致不能建立正常连接

net.inet.ip.fw.dyn_max=65535

#设置ipf防火墙TCP连接空闲保留时间,默认8640000(120小时)

net.inet.ipf.fr_tcpidletimeout=864000

=================================================================== ==

所有的TCP/IP调优参数都位于/proc/sys/net/目录。例如, 下面是最重要的一些调优参数, 后面是它们的含义:'

1. /proc/sys/net/core/rmem_max —最大的TCP数据接收缓冲。

2. /proc/sys/net/core/wmem_max —最大的TCP数据发送缓冲。

3. /proc/sys/net/ipv4/tcp_timestamps —时间戳在(请参考RFC 1323)TCP的包头增加12个字节。

4.

/proc/sys/net/ipv4/tcp_sack —有选择的应答。

5. /proc/sys/net/ipv4/tcp_window_scaling —支持更大的TCP窗口. 如果TCP窗口最大超过

65535(64KB), 必须设置该数值为1。

6. rmem_default —默认的接收窗口大小。

7. rmem_max —接收窗口的最大大小。

8. wmem_default —默认的发送窗口大小。

9. wmem_max —发送窗口的最大大小。

/proc目录下的所有内容都是临时性的, 所以重启动系统后任何修改都会丢失。

建议在系统启动时自动修改TCP/IP参数:

把下面代码增加到/etc/rc.local文件, 然后保存文件, 系统重新引导的时候会自动修改下面的TCP/IP参数:

TCP/IP参数都是自解释的, TCP窗口大小设置为256960, 禁止TCP的时间戳(取消在每个数据包的头中增加12字节), 支持更大的TCP窗口和TCP有选择的应答。

上面数值的设定是根据互连网连接和最大带宽/延迟率来决定。

注: 上面实例中的数值可以实际应用, 但它只包含了一部分参数。

另外一个方法: 使用/etc/sysctl.conf 在系统启动时将参数配置成您所设置的值:

=================================================================== ==

更改运行中的的

向员提供可以在运行时更改内核,而不需要重新引导内核/系统。这是通过/proc 虚拟文件系统实现的。

1、如何更改系统正常运行中的内核的参数

不使用编辑器来更改任何这些文件。每当更改/proc 文件系统中的任何内容时,应该使用echo 命令,然后从命令行将输出重定向至/proc 下所选定的文件中。例如:echo "Your-New-Kernel-Value" > /proc/your/file

查看/proc 中的信息,应该使用专门用于此用途的命令,或者使用命令行下的cat 命令。

2、更改什么

/proc最通常的情况是它的大多数文件是只读的,除了/proc/sys 目录。该目录下存放着大多数的内核参数(而不是信息),并且设计成可以在系统运行的同时进行更改。

3、进行更改

--->echo指令

echo "16384" > /proc/sys/fs/file-max

echo "scsi add-single-device w x y z" > /proc/scsi/scsi

--->sysctl指令

sysctl -w fs.file-max="16384"

---> 在/etc/sysctl.conf 后加入: fs.file-max="16384"

要想使重启后的更改仍然生效, 就必须使用这种

===================================

例如:

proc/scsi

/proc/scsi/scsi

在有热交换驱动器情况下,如何不重启系统就可以添加更多磁盘空间。假使不使用/proc ,您可以插入驱动器,但为了使系统识别新磁盘,必须随即重新引导系统。这里,可以用以下命令来使系统识别新的驱动器:

echo "scsi add-single-device w x y z" > /proc/scsi/scsi

为使该命令正常运行,必须指定正确的参数值w、x、y 和z,如下所示:

w 是主机适配器标识,第一个适配器为零(0)

x 是主机适配器上的SCSI 通道,第一个通道为零(0)

y 是设备的SCSI 标识

z 是LUN 号,第一个LUN 为零(0)

一旦将磁盘添加到系统中之后,可以挂装任何先前已格式化的文件系统,也可以开始对它进行格式化等。例如,如果不确定磁盘是什么设备,或者想检查任何先前已有的分区,则可以用如fdisk -l 这样的命令来向您报告这方面的信息。

相反的,在不重新引导系统的情况下将设备从系统中除去的命令是:

echo "scsi remove-single-device w x y z" > /proc/scsi/scsi

在输入这条命令并将热交换SCSI 磁盘从系统中除去之前,请确保首先卸下已从该磁盘安装的任何文件系统。

==========================

使内核设置具有持久性的程序sysctl

它使您可以更改运行中的内核,但它还有一个在系统引导时执行的配置文件。这使您可以更改运行中的内核,并将这些更改添加到配置文件,以便于在系统重新引导之后,这些更改仍然生效。

sysctl 的配置文件是/etc/sysctl.conf ,可以编辑该文件。sysctl 将/proc/sys 下的文件视为可以更改的单个变量。

例如:

/proc/sys 下的文件/proc/sys/fs/file-max 为例,它表示系统中所允许的文件句柄的最大数目,这个文件被表示成fs.file-max 。

#sysctl -w fs.file-max="16384"

这个示例揭示了sysctl 表示法不一般的用法:

由于sysctl 只能更改/proc/sys 目录下的变量,并且人们始终认为变量是在这个目录下,因此省略了变量名的那一部分(/proc/sys)。另一个要说明的更改是,将目录分隔符(正斜杠/)换成了英文中的句号(点 .)。

将/proc/sys 中的文件转换成sysctl 中的变量有两个简单的规则:

去掉前面部分/proc/sys 。

将文件名中的正斜杠变为点。

这两条规则使您能将/proc/sys 中的任一文件名转换成sysctl 中的任一变量名。一般文件到变量的转换为:

/proc/sys/dir/file --> dir.file

dir1.dir2.file --> /proc/sys/dir1/dir2/file

可以使用命令# sysctl -a 查看所有可以更改的变量和其当前设置。

用sysctl 还可以更改变量,它所做的工作与上面所用的echo 方法完全一样。其表示法为:#sysctl -w dir.file="value"

还是用file-max 作为示例,使用下面两种方法中的一种将该值更改为16384:

#sysctl -w fs.file-max="16384"

#echo "16384" > /proc/sys/fs/file-max

不要忘记sysctl 不会将所做的更改添加到配置文件中;这要您用手工来完成。如果您希望在重新引导之后,前面所做的更改仍然有效,则必须维护这个配置文件。

即在/etc/sysctl.conf 后加入: fs.file-max="16384"(要想使重启后的更改仍然生效, 就必须

使用这种方法).

=============================

内核参数介绍

----------------

/proc/sys/fs

/proc/sys/fs/file-max

该文件指定了可以分配的文件句柄的最大数目。如果用户得到的错误消息声明由于打开文件数已经达到了最大值,从而他们不能打开更多文件,则可能需要增加该值。可将这个值设置成有任意多个文件,并且能通过将一个新数字值写入该文件来更改该值。

缺省设置:4096

/proc/sys/fs/file-nr

该文件与file-max 相关,它有三个值:

已分配文件句柄的数目

已使用文件句柄的数目

文件句柄的最大数目

该文件是只读的,仅用于显示信息。

/proc/sys/fs/inode-*

任何以名称“inode”开头的文件所执行的操作与上面那些以名称“file”开头的文件所执行的操作一样,但所执行的操作与索引节点有关,而与文件句柄无关。

/proc/sys/fs/overflowuid 和/proc/sys/fs/overflowgid

这两个文件分别保存那些支持16 位用户标识和组标识的任何文件系统的用户标识(UID)和组标识(GID)。可以更改这些值,但如果您确实觉得需要这样做,那么您可能会发现更改组和密码文件项更容易些。

缺省设置:65534

/proc/sys/fs/super-max

该文件指定超级块处理程序的最大数目。挂装的任何文件系统需要使用超级块,所以如果挂

装了大量文件系统,则可能会用尽超级块处理程序。

缺省设置:256

/proc/sys/fs/super-nr

该文件显示当前已分配超级块的数目。该文件是只读的,仅用于显示信息。

----------------------

/proc/sys/kernel

/proc/sys/kernel/acct

该文件有三个可配置值,根据包含日志的文件系统上可用空间的数量(以百分比表示),这些值控制何时开始进行进程记帐:

如果可用空间低于这个百分比值,则停止进程记帐

如果可用空间高于这个百分比值,则开始进程记帐

检查上面两个值的频率(以秒为单位)

要更改这个文件的某个值,应该回送用空格分隔开的一串数字。

缺省设置:2 4 30

如果包含日志的文件系统上只有少于2% 的可用空间,则这些值会使记帐停止,如果有4% 或更多可用空间,则再次启动记帐。每30 秒做一次检查。

/proc/sys/kernel/ctrl-alt-del

该文件有一个二进制值,该值控制系统在接收到ctrl+alt+delete 按键组合时如何反应。这两个值表示:

零(0)值表示捕获ctrl+alt+delete,并将其送至init 程序。这将允许系统可以完美地关闭和重启,就好象您输入shutdown 命令一样。

壹(1)值表示不捕获ctrl+alt+delete,将执行非干净的关闭,就好象直接关闭电源一样。

缺省设置:0

/proc/sys/kernel/domainname

该文件允许您配置网络域名。它没有缺省值,也许已经设置了域名,也许没有设置。

/proc/sys/kernel/hostname

该文件允许您配置网络主机名。它没有缺省值,也许已经设置了主机名,也许没有设置。

/proc/sys/kernel/msgmax

该文件指定了从一个进程发送到另一个进程的消息的最大长度。进程间的消息传递是在内核的内存中进行,不会交换到磁盘上,所以如果增加该值,则将增加操作系统所使用的内存数量。

缺省设置:8192

/proc/sys/kernel/msgmnb

该文件指定在一个消息队列中最大的字节数。

缺省设置:16384

/proc/sys/kernel/msgmni

该文件指定消息队列标识的最大数目。

缺省设置:16

/proc/sys/kernel/panic

该文件表示如果发生“内核严重错误(kernel panic)”,则内核在重新引导之前等待的时间(以秒为单位)。零(0)秒设置在发生内核严重错误时将禁止重新引导。

缺省设置:0

/proc/sys/kernel/printk

该文件有四个数字值,它们根据日志记录消息的重要性,定义将其发送到何处。关于不同日志级别的更多信息,请阅读syslog(2) 联机帮助页。该文件的四个值为:

控制台日志级别:优先级高于该值的消息将被打印至控制台

缺省的消息日志级别:将用该优先级来打印没有优先级的消息

最低的控制台日志级别:控制台日志级别可被设置的最小值(最高优先级)

缺省的控制台日志级别:控制台日志级别的缺省值

缺省设置:6 4 1 7

/proc/sys/kernel/shmall

该文件是在任何给定时刻系统上可以使用的共享内存的总量(以字节为单位)。

缺省设置:2097152

/proc/sys/kernel/shmax

该文件指定内核所允许的最大共享内存段的大小(以字节为单位)。

缺省设置:33554432

/proc/sys/kernel/shmmni

该文件表示用于整个系统共享内存段的最大数目。

缺省设置:4096

/proc/sys/kernel/sysrq

如果该文件指定的值为非零,则激活System Request Key。

缺省设置:0

/proc/sys/kernel/threads-max

该文件指定内核所能使用的线程的最大数目。

缺省设置:2048

------------------------

/proc/sys/net

/proc/sys/net/core/message_burst

写新的警告消息所需的时间(以1/10 秒为单位);在这个时间内所接收到的其它警告消息会被丢弃。这用于防止某些企图用消息“淹没”您系统的人所使用的拒绝服务(Denial of Service)攻击。

缺省设置:50(5 秒)

/proc/sys/net/core/message_cost

该文件存有与每个警告消息相关的成本值。该值越大,越有可能忽略警告消息。

缺省设置:5

/proc/sys/net/core/netdev_max_backlog

该文件指定了,在接口接收包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

缺省设置:300

/proc/sys/net/core/optmem_max

该文件指定了每个套接字所允许的最大缓冲区的大小。

/proc/sys/net/core/rmem_default

该文件指定了接收套接字缓冲区大小的缺省值(以字节为单位)。

/proc/sys/net/core/rmem_max

该文件指定了接收套接字缓冲区大小的最大值(以字节为单位)。

/proc/sys/net/core/wmem_default

该文件指定了发送套接字缓冲区大小的缺省值(以字节为单位)。

/proc/sys/net/core/wmem_max

该文件指定了发送套接字缓冲区大小的最大值(以字节为单位)。

/proc/sys/net/ipv4

所有IPv4 和IPv6 的参数都被记录在内核源代码文档中。请参阅文件

/usr/src/linux/Documentation/networking/ip-sysctl.txt 。

/proc/sys/net/ipv6

同IPv4。

/proc/sys/vm

/proc/sys/vm/buffermem

该文件控制用于缓冲区内存的整个系统内存的数量(以百分比表示)。它有三个值,通过把用空格相隔的一串数字写入该文件来设置这三个值。

用于缓冲区的内存的最低百分比

如果发生所剩系统内存不多,而且系统内存正在减少这种情况,系统将试图维护缓冲区内存的数量。

用于缓冲区的内存的最高百分比

缺省设置:2 10 60

/proc/sys/vm/freepages

该文件控制系统如何应对各种级别的可用内存。它有三个值,通过把用空格相隔的一串数字写入该文件来设置这三个值。

如果系统中可用页面的数目达到了最低限制,则只允许内核分配一些内存。

如果系统中可用页面的数目低于这一限制,则内核将以较积极的方式启动交换,以释放内存,从而维持系统性能。

内核将试图保持这个数量的系统内存可用。低于这个值将启动内核交换。

缺省设置:512 768 1024

/proc/sys/vm/kswapd

该文件控制允许内核如何交换内存。它有三个值,通过把用空格相隔的一串数字写入该文件来设置这三个值:

内核试图一次释放的最大页面数目。如果想增加内存交换过程中的带宽,则需要增加该值。内核在每次交换中试图释放页面的最少次数。

内核在一次交换中所写页面的数目。这对系统性能影响最大。这个值越大,交换的数据越多,花在磁盘寻道上的时间越少。然而,这个值太大会因“淹没”请求队列而反过来影响系统性能。

缺省设置:512 32 8

/proc/sys/vm/pagecache

该文件与/proc/sys/vm/buffermem 的工作内容一样,但它是针对文件的内存映射和一般高速缓存。

-------------

调整内核网络参数

linux系统位于目录/proc/sys/net/ipv4/下的部分内核网络参数

所有内核网络参数配置文件位于/proc/sys/net/ipv4/目录下

0、icmp_destunreach_rate:设置内容为“Destination Unreachable”icmp包的响应速率。设置值应为整数。

Linux内核修改与编译图文教程

Linux 内核修改与编译图文教程 1

1、实验目的 针对Ubuntu10.04中,通过下载新的内核版本,并且修改新版本内核中的系统调用看,然后,在其系统中编译,加载新内核。 2、任务概述 2.1 下载新内核 https://www.doczj.com/doc/2d13783511.html,/ 2.2 修改新内核系统调用 添加新的系统调用函数,用来判断输入数据的奇偶性。 2.3 进行新内核编译 通过修改新版内核后,进行加载编译。最后通过编写测试程序进行测试 3、实验步骤 3.1 准备工作 查看系统先前内核版本: (终端下)使用命令:uname -r 2

3.2 下载最新内核 我这里使用的内核版本是 3.3 解压新版内核 将新版内核复制到“/usr/src”目录下 在终端下用命令:cd /usr/src进入到该文件目录 解压内核:linux-2.6.36.tar.bz2,在终端进入cd /usr/src目录输入一下命令: bzip2 -d linux-2.6.36.tar.bz2 tar -xvf linux-2.6.36.tar 文件将解压到/usr/src/linux目录中 3

使用命令: ln -s linux-2.6.36 linux 在终端下输入一下命令: sudo apt-get install build-essential kernel-package libncurses5-dev fakeroot sudo aptitude install libqt3-headers libqt3-mt-dev libqt3-compat-headers libqt3-mt 4

Linux操作系统网络配置命令

vi /etc/sysconfig/network-scripts/ifcfg-eth0 命令配置IP vi进入后,按i变成编辑模式,屏幕下方有个INSERT字样,这时跟windows 的记事本一样了,改吧。内容见下 改完后按ESC键,再输入冒号x——:x保存退出。 service network restart 你的IP就出来了。 DEVICE=eth0 BOOTPROTO=none IPADDR=192.168.0.1 GATEWAY=192.168.0.254 ONBOOT=yes TYPE=Ethernet 1、ifconfig 可以使用ifconfig命令来配置并查看网络接口的配置情况。 例如: (1)配置eth0的IP地址,同时激活该设备。 #ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up (2)配置eth0别名设备eth0:1的IP地址,并添加路由。 #ifconfig eth0 192.168.1.3 #route add –host 192.168.1.3 dev eth0:1 (3)激活设备。 #ifconfig eth0 up (4)禁用设备。 #ifconfig eth0 down (5)查看指定的网络接口的配置。 #ifconfig eth0 (6)查看所有的网络接口配置。

#ifconfig 2、route 可以使用route命令来配置并查看内核路由表的配置情况。 例如: (1)添加到主机的路由。 #route add –host 192.168.1.2 dev eth0:0 #route add –host 10.20.30.148 gw 10.20.30.40 (2)添加到网络的路由。 #route add –net 10.20.30.40 netmask 255.255.255.248 eth0 #route add –net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41 #route add –net 192.168.1.0/24 eth1 (3)添加默认网关。 #route add default gw 192.168.1.1 (4)查看内核路由表的配置。 #route (5)删除路由。 #route del –host 192.168.1.2 dev eth0:0 #route del –host 10.20.30.148 gw 10.20.30.40 #route del –net 10.20.30.40 netmask 255.255.255.248 eth0 #route del –net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41 #route del –net 192.168.1.0/24 eth1

实验二 Linux基本网络配置

实验二Linux基本网络配置 一、实验内容 1.linux图形界面方式和命令方式下对网络的配置 2.网络配置文件的含义 二、实验目的及要求 1.掌握在图形界面方式配置网络 2.掌握在命令方式下配置网络 3.理解网络配置文件的含义 三、实验环境及条件 软件:PC 机+操作系统RHEL5 。 四、实验实施步骤 1.图形界面方式配置网络 对一个Linux系统进行网络配置,配置的主要参数如下: 网络IP地址:10.10.52.* 子网掩码:255.255.255.0 默认网关:10.10.52.1 DNS服务器地址:192.168.1.13,192.168.1.14,202.99.160.68 启动redhat-config-network管理工具,方法有以下两种: 1)依次单击面板上的“主菜单→系统设置→网络”,可打开如图对话框。 2)在终端的提示符下输入“redhat-config-network”命令,可打开如图对话框。

2、使用常用命令配置网络 (1)hostname # hostname “你自己的名字”(2)ifconfig (3)ifconfig eth0 10.10.52.*/24

(4)为一块网卡设置多个ip地址 Ifconfig eth0:1 *.*.*.*/24 Ifconfig eth0:2 *.*.*.*/24 (5)添加网关 route add default gw 10.10.52.1 (6)ifup和ifdonw

(7) ping 3、熟悉网络配置文件 (1)请修改网络设置文件/etc/sysconfig/network 中的主机名为linux (2)请修改网络配置文件/etc/sysconfig/network-scripts/ifcfg-eth0 ,将网络配置dhcp改成static配置,增加IPADDR为10.10.52.*,增加NETMASK为255.255.255.0,增加GATEWAY为10.10.52.1 (3)请修改配置DNS客户文件/etc/resolv.conf,DNS服务器为192.168.1.13,192.168.1.14,202.99.160.68 (4)将网络服务重新启动:service network restart 五、思考题 在局域网中有一台Linux主机,其通过网关连接到互联中,现在该Linux主机不能通过浏览器访问到互联网中的某个站点,通常如何查找故障?

(整理)嵌入式系统的以太网接口设计及linux内核网络设备驱动.

嵌入式系统的以太网接口设计及linux驱动 1 以太网概述 以太网(Ethernet)是当今局域网采用的最通用的通信协议标准。在以太网中,所有计算机被连接在一条电缆上,采用带冲突检测的载波侦听多路访问(CSMA/CD)方法,采用竞争机制和总线拓扑结构。基本上,以太网由共享传输媒体,如双绞线电缆或同轴电缆、多端口集线器、网桥或交换机构成。 按照OSI(Open System Interconnection Reference Model,开放式系统互联参考模型)7层参考模型,以太网定义的是物理层(PHY)和数据链路层(对应以太网的MAC层)的标准。 2 嵌入式处理器上扩展以太网接口 以太网接口控制器主要包括MAC乘PHY两部分,如图1所示为嵌入式处理器集成MAC层控制器。 MAC层控制器和PHY的连接是通过MII、RMII等接口实现的。在IEEE802的标准系列中,数据链路层包括LLC和MAC两个子层。其中MAC负责完成数据帧的封装、解封、发送和接受功能。PHY层的结构随着传输速率的不同而有一定的差异。对于1OBaseT等网络,从以太网PHY芯片输出的就是传输所需的差分信号。但是还需要一个网络隔离变压器组成图2的结构。网络隔离变压器可起到抑制共模干扰、隔离线路以及阻抗匹配等作用。 本文介绍一种新款网络接口芯片DM9000A,它可以很方便的实现与嵌入式CPU的接口,实现扩展以太网口的功能。DM9000A是中国台湾DAVICOM公司推出的一款高速以太网接口芯片,其基本特征是:集成10/100M物理层接口;内部带有16K字节SRAM用作接收发送的FIFO缓存;支持8/16bit两种主机工作模式:

linux内核的网络配置

文章来源 https://www.doczj.com/doc/2d13783511.html,/p/2088592067 第9节, Networking support 关于网络支持 上图 讲解; RF switch subsystem support 这个一般是要的,因为有些无线和蓝牙放在一张卡上 选m,wireless(无线)里面的一些选项随之会自动选m,上图 注意: cfg80211 wireless extensions compatibility 这个兼容选项要选择,3.7默认是没有选择

如果没有选择,iwconfig会报告没有扩展 Bluetooth subsystem support 蓝牙,可以自己选择,如果有m就行 还有子选项自己看下 如果还有红外线,无线电,对应选择,这个设备应该是很少networking option最上面的,全局网络选项,上图

Packet socket和Unix domain sockets 备必,而且不能成模块,不然udev会报一段信息给你 Transformation user configuration interface 选m,其实也很少用,像ipsec,下面的ipsec也可以选成模块 TCP/IP networking 要的,要的,子选项大部分不用,你也可以选上 IP: multicasting 多播 IP: advanced router 高级路由 你需要选上 IP: TCP syncookie support ~~sync flooding,同时还必须。。。个人没什么意义Large Receive Offload提高网络的东西,这个Y,如果你觉得现在不用,先m TCP: advanced congestion control这个你也可以Y The IPv6 protocol 很多要用到,虽然在兲现在没用,像systemd就要了 Security Marking和Network packet filtering framework (Netfilter) 个人没什么意义,你可以试下

如何安装Linux内核源代码

如何获取Linux内核源代码 下载Linux内核当然要去官方网站了,网站提供了两种文件下载,一种是完整的Linux 内核,另一种是内核增量补丁,它们都是tar归档压缩包。除非你有特别的原因需要使用旧版本的Linux内核,否则你应该总是升级到最新版本。 使用Git 由Linus领头的内核开发队伍从几年前就开始使用Git版本控制系统管理Linux内核了(参考阅读:什么是Git?),而Git项目本身也是由Linus创建的,它和传统的CVS不一样,Git是分布式的,因此它的用法和工作流程很多开发人员可能会感到很陌生,但我强烈建议使用Git下载和管理Linux内核源代码。 你可以使用下面的Git命令获取Linus内核代码树的最新“推送”版本: $ git clone git://https://www.doczj.com/doc/2d13783511.html,/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 然后使用下面的命令将你的代码树与Linus的代码树最新状态同步: $ git pull 安装内核源代码 内核包有GNU zip(gzip)和bzip2格式。Bzip2是默认和首选格式,因为它的压缩比通常比gzip更好,bzip2格式的Linux内核包一般采用linux-x.y.z.tar.bz2形式的文件名,这里的x.y.z是内核源代码的具体版本号,下载到源代码包后,解压和抽取就很简单了,如果你下载的是bzip2包,运行: $ tar xvjf linux-x.y.z.tar.bz2 如果你下载的是gzip包,则运行: $ tar xvzf linux-x.y.z.tar.gz 无论执行上面哪一个命令,最后都会将源代码解压和抽取到linux-x.y.z目录下,如果你使用Git下载和管理内核源代码,你不需要下载tar包,只需要运行git clone命令,它就会自动下载和解压。 内核源代码通常都会安装到/usr/src/linux下,但在开发的时候最好不要使用这个源代码树,因为针对你的C库编译的内核版本通常也链接到这里的。 应用补丁

Linux设置内核参数的方法

Linux设置内核参数的方法 1内核参数的查看方法 使用“sysctl -a”命令可以查看所有正在使用的内核参数。内核参数比较多(一般多达500项),按照前缀主要分为以下几大类:net.ipv4、net.ipv6、net.core、vm、fs、dev.parport、dev.cdrom 、dev.raid、kernel等等。相同的linux,安装的组件和使用的方式不一样,正在使用的内核参数是不一样的。 所有的内核参数的说明文档是放到/usr/src/linux/Documentation/sysctl中的,如果想知道对内核参数的说明,可以到该目录下查看相应的说明文档。 2内核参数的的设置方法 由于Linux的内核参数信息都存在内存中,因此可以通过命令直接修改,并且修改后直接生效。也可以通过文件的方式进行设置。下面就介绍这两种修改方法。 2.1命令设置的方式 可以用两种方法实现。 1、使用“sysctl -w 参数名=值”的方式 假设我们把net.ipv4.ip_forward的值修改为1,使用命令“sysctl -w net.ipv4.ip_forward=1”。 2、修改内核参数对应的proc文件 内核参数位于/proc/sys/之下,参数名称是以文件所在的路径,并将“/”以“.”来取代。举例来说,/proc/sys/net/ip_forward的参数名称为net.ipv4.ip_forward。 同样把net.ipv4.ip_forward的值修改为1,使用命令“echo “1”> /proc/sys/net/ipv4/ip_forward”。 注意,这里proc文件跟普通的文件不一样。一般一个文件用echo写入内容之后,会变成一个文本文件,但echo修改proc文件之后还是个空文件。 2.2文件设置的方式 更改的内核参数默认保存在/etc/sysctl.conf文件中。修改的时候可以直接用vi编辑sysctl.conf文件,增加要修改的内核参数内容,修改的格式为:参数名=值。例如,把net.ipv4.ip_forward的值修改为1,在sysctl.conf中增加下面这行内容:net.ipv4.ip_forward=1 文件修改好后,进行保存。然后使用“sysctl -p 配置文件名”来使配置生效,如果配置文件是默认的,可以不用输配置文件名,即使用“sysctl -p”。 通过文件设置的方式修改的内核参数是在系统重启后将失效(我之前认为修改后的内核参数放在文件中,系统启动的时候会读这个文件,重启后设置应该不会失效。但经过验证,一般会失效,但如果把将默认的boot.sysctl服务打开,所以系统启动时就会执行这个文件的设置)。把我们修改参数的命令写入启动执行脚本文件里/etc/rc.local,这样系统重启后配置就不会失效。 文件方式的好处是内核参数设置的值可以用文件保留下来,调用“sysctl -p”可以使文

实验六 Linux软件包管理与基本网络配置

实验六Linux软件包管理与基本网络配置 一. 一.实验目的: 1.1.学会find命令的使用方法; 2.2.学习利用rpm和tar命令实现软件包的管理; 3.3.掌握如何在Linux下的TCP/IP网络的设置; 4.4.学会使用命令检测网络配置; 5.5.学会启用和禁用系统服务。 二. 二.实验内容: 1.1.利用find命令查找满足条件的文件; 2.2.利用rpm和tar命令管理软件包; 3.3.使用ifconfig命令配置网络接口; 4.4.使用route命令加默认网关; 5.5.使用hostname命令设置主机名; 6.6.修改/etc/hosts实现Linux的静态地址解析; 7.7.修改/etc/resolv.conf配置Linux的DNS客户端; 8.8.使用ping、netstat命令检测配置; 9.9.设置系统启动时自动配置网络参数; 10.10.用service命令和ntsysv命令控制守护进程。 三. 三.实验练习: 任务一 rpm软件包的管理 本部分实验内容按照课本P171-P178页的各个小的实验内容进行练习。 任务二 find命令的使用 1.1.在/var/lib目录下查找所有文件其所有者是games用户的文件。 $ find /var/lib –user games 2> /dev/null 2.2.在/var目录下查找所有文件其所有者是root用户的文件。 $ find /var –user root –group mail 2>/dev/mull 3.3.查找所有文件其所有者不是root,bin和student用户并用长格式显示(如ls –l 的显示结果)。$ find / -not –user root –not –user bin –not –user student –ls 2> /dev/null or $find / ! –user root ! –user bin ! –user student –exec ls –ld {} \; 2> /dev/null 4.4.查找/usr/bin目录下所有大小超过一百万byte的文件并用长格式显示(如ls –l 的显示结果)。$ find /usr/bin –size +1000000c –ls 2> /dev/null 5.5.对/etc/mail目录下的所有文件使用file命令。 $find /etc/maill –exec file {} \; 2 > /dev/null

linux的网络接口以及详细配置

Linux 网络接口2012-06-21 10:29:45 分类:LINUX 在 Linux 中,所有的网络通讯都发生在软件接口与物理网络设备之间。与网络接口配置相关的文件,以及控制网络接口状态的脚本文件,全都位于 /etc/sysconfig/netwrok-scripts/ 目录下。虽然在不同的系统之间,这些文件的类型和数量并不一定相同,但大致来讲,都包含以下几类与网络相关的配置文件: 1.网络接口配置文件 2.网络接口控制脚本 3.与网络相关的函数库文件(function files) 各种的网络设备都需要用到这些文件保证设备的正常动作 本章将深入探讨这些文件的用途,以及使用它们的方式。 Linux 网络接口 网络接口配置文件 在 Linux 中,网络接口配置文件用于控制系统中的软件网络接口,并通过接口实现对网络设备的控制。当系统启动时,系统通过这些接口配置文件决定启动哪些接口,以及如此对这些接口进行配置。 在 Linux 中,网络接口配置文件用于控制系统中的软件网络接口,并通过这些接口实现对网络设备的控制。当系统启动时,系统通过这些接口配置文件决定启动哪些接口,以及如何对这些接口进行配置。接口配置文件的名称通常类似于 ifcfg-,其中 与配置文件所控制的设备的名称相关。 在所有的网络接口中,我们日常中最常用到的接口类型就是以太网接口。

以太网接口 在所有的网络配置文件中,最常用的就是 ifcfg-eth0,因为它是系统中第一块网卡的配置文件。如果系统中有多块网卡,ifcfg-eth 后面的数字就会依次递增。正因为每个设备都有对应的一个配置文件,因此管理员也能够单独地控制每一个设备。 以下是一个 ifcfg-eth0 配置文件的示例,在配置中已经为网卡设置好了 IP 地址。 DEVICE=eth0 BOOTPROTO=none ONBOOT=yes NETWORK=10.0.1.0 NETMASK=255.255.255.0 IPADDR=10.0.1.27 USERCTL=no // 是否允许非root用户控制网卡 在接口配置文件中,选项之间存在着一些关联,如果不像上例中那样使用固定 IP,使用 DHCP 获取 IP 地址的配置文件又会不一样。以下就是将网卡配置成通过 DHCP 获取 IP 地址的配置: DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes 使用网络管理工具(system-config-network) 对网络接口文件进行更改是比较方便的一种方式,但通过学习手动更改配置文件,能够更好的在各种 Linux 发行版中执行网络配置的工作。 有关网络管理工具的使用方法,可以参考下一章翻译文档 - 《Fedora/Linux 网络配置工具》 下面是以太网接口配置文件中常用的一些选项:

史上最全linux内核配置详解

对于每一个配置选项,用户可以回答"y"、"m"或"n"。其中"y"表示将相应特性的支持或设备驱动程序编译进内核;"m"表示将相应特性的支持或设备驱动程序编译成可加载模块,在需要时,可由系统或用户自行加入到内核中去;"n"表示内核不提供相应特性或驱动程序的支持。只有<>才能选择M 1. General setup(通用选项) [*]Prompt for development and/or incomplete code/drivers,设置界面中显示还在开发或者还没有完成的代码与驱动,最好选上,许多设备都需要它才能配置。 [ ]Cross-compiler tool prefix,交叉编译工具前缀,如果你要使用交叉编译工具的话输入相关前缀。默认不使用。嵌入式linux更不需要。 [ ]Local version - append to kernel release,自定义版本,也就是uname -r可以看到的版本,可以自行修改,没多大意义。 [ ]Automatically append version information to the version string,自动生成版本信息。这个选项会自动探测你的内核并且生成相应的版本,使之不会和原先的重复。这需要Perl的支持。由于在编译的命令make-kpkg 中我们会加入- –append-to-version 选项来生成自定义版本,所以这里选N。 Kernel compression mode (LZMA),选择压缩方式。 [ ]Support for paging of anonymous memory (swap),交换分区支持,也就是虚拟内存支持,嵌入式不需要。 [*]System V IPC,为进程提供通信机制,这将使系统中各进程间有交换信息与保持同步的能力。有些程序只有在选Y的情况下才能运行,所以不用考虑,这里一定要选。 [*]POSIX Message Queues,这是POSIX的消息队列,它同样是一种IPC(进程间通讯)。建议你最好将它选上。 [*]BSD Process Accounting,允许进程访问内核,将账户信息写入文件中,主要包括进程的创建时间/创建者/内存占用等信息。可以选上,无所谓。 [*]BSD Process Accounting version 3 file format,选用的话统计信息将会以新的格式(V3)写入,注意这个格式和以前的v0/v1/v2 格式不兼容,选不选无所谓。 [ ]Export task/process statistics through netlink (EXPERIMENTAL),通过通用的网络输出工作/进程的相应数据,和BSD不同的是,这些数据在进程运行的时候就可以通过相关命令访问。和BSD类似,数据将在进程结束时送入用户空间。如果不清楚,选N(实验阶段功能,下同)。 [ ]Auditing support,审计功能,某些内核模块需要它(SELINUX),如果不知道,不用选。 [ ]RCU Subsystem,一个高性能的锁机制RCU 子系统,不懂不了解,按默认就行。 [ ]Kernel .config support,将.config配置信息保存在内核中,选上它及它的子项使得其它用户能从/proc/ config.gz中得到内核的配置,选上,重新配置内核时可以利用已有配置Enable access to .config through /proc/config.gz,上一项的子项,可以通过/proc/ config.gz访问.config配置,上一个选的话,建议选上。 (16)Kernel log buffer size (16 => 64KB, 17 => 128KB) ,内核日志缓存的大小,使用默认值即可。12 => 4 KB,13 => 8 KB,14 => 16 KB单处理器,15 => 32 KB多处理器,16 => 64 KB,17 => 128 KB。 [ ]Control Group support(有子项),使用默认即可,不清楚可以不选。 Example debug cgroup subsystem,cgroup子系统调试例子 Namespace cgroup subsystem,cgroup子系统命名空间 Device controller for cgroups,cgroups设备控制器

Linux内核分析-网络[五]:网桥

看完了路由表,重新回到netif_receive_skb ()函数,在提交给上层协议处理前,会执行下面一句,这就是网桥的相关操作,也是这篇要讲解的容。 view plaincopy to clipboardprint? 1. s kb = handle_bridge(skb, &pt_prev, &ret, orig_dev); 网桥可以简单理解为交换机,以下图为例,一台linux机器可以看作网桥和路由的结合,网桥将物理上的两个局域网LAN1、LAN2当作一个局域网处理,路由连接了两个子网1.0和2.0。从eth0和eth1网卡收到的报文在Bridge模块中会被处理成是由Bridge收到的,因此Bridge也相当于一个虚拟网卡。 STP五种状态 DISABLED BLOCKING LISTENING LEARNING FORWARDING 创建新的网桥br_add_bridge [net\bridge\br_if.c] 当使用SIOCBRADDBR调用ioctl时,会创建新的网桥br_add_bridge。 首先是创建新的网桥: view plaincopy to clipboardprint?

1. d ev = new_bridge_dev(net, name); 然后设置dev->dev.type为br_type,而br_type是个全局变量,只初始化了一个名字变量 view plaincopy to clipboardprint? 1. S ET_NETDEV_DEVTYPE(dev, &br_type); 2. s tatic struct device_type br_type = { 3. .name = "bridge", 4. }; 然后注册新创建的设备dev,网桥就相当一个虚拟网卡设备,注册过的设备用ifconfig 就可查看到: view plaincopy to clipboardprint? 1. r et = register_netdevice(dev); 最后在sysfs文件系统中也创建相应项,便于查看和管理: view plaincopy to clipboardprint? 1. r et = br_sysfs_addbr(dev); 将端口加入网桥br_add_if() [net\bridge\br_if.c] 当使用SIOCBRADDIF调用ioctl时,会向网卡加入新的端口br_add_if。 创建新的net_bridge_port p,会从br->port_list中分配一个未用的port_no,p->br会指向br,p->state设为BR_STATE_DISABLED。这里的p实际代表的就是网卡设备。 view plaincopy to clipboardprint? 1. p = new_nbp(br, dev); 将新创建的p加入CAM表中,CAM表是用来记录mac地址与物理端口的对应关系;而刚刚创建了p,因此也要加入CAM表中,并且该表项应是local的[关系如下图],可以看到,CAM表在实现中作为net_bridge的hash表,以addr作为hash值,链入 net_bridge_fdb_entry,再由它的dst指向net_bridge_port。

Linux内核中的Kconfig用法与说明

Linux内核中的Kconfig文件 本节不对内核的Kconfig文件进行深入展开,更多Kconfig语法和说明请阅读 。 内核源码树每个目录下都还包含一个Kconfig文件,用于描述所在目录源代码相关的内核配置菜单,各个目录的Kconfig文件构成了一个分布式的内核配置数据库。通过make menuconfig(make xconfig或者make gconfig)命令配置内核的时候,从Kconfig文件读取菜单,配置完毕保存到文件名为.config的内核配置文件中,供Makefile文件在编译内核时使用。 1.1.1 Kconfig基本语法 如程序清单0.1所示代码摘自文件,是一个比较典型的Kconfig 文件片段,包含了Kconfig的基本语法。 程序清单0.1drivers/char/Kconfig片段 menu "Character devices" source "drivers/tty/Kconfig" config DEVKMEM bool "/dev/kmem virtual device support" default y help Say Y here if you want to support the /dev/kmem device. The /dev/kmem device is rarely used, but can be used for certain kind of kernel debugging operations. When in doubt, say "N". …… endmenu 1.子菜单 通过menu和endmenu来定义一个子菜单,程序清单0.1所示代码定义了一个“Character devices”子菜单,子菜单在界面中用“--->”表示,如图0.1所示。 图0.1menu定义的子菜单 子菜单的菜单项则由config来定义,随后的“bool”、“default”、“help”等都是该菜单 项的属性:

linux 网络配置命令

Linux设置用永久静态IP 配置文件位于: /etc/sysconfig/network-script s/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.3 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 使IP地址生效: /sbin/ifdown eth0 /sbin/ifup eth0 通知网关更新信息: /etc/init.d/network restart 如果想给该网卡设置多IP则: 1.执行“cp ifcfg-eth0 ifcfg-eth0:1”复制eth0的配置文件,文件名在原文件名后加":1". 2.编辑修改ifcfg-eth0:1中相应的字段,具体如下:

懂得网络配置命令是一般技术人员必备的技术,经过一段时间的研究和学习,总结了一些常用的命令和示例以便日后查阅. 传统的在1--3点,ip高级路由命令在4--12点,两者部分可以通用,并达到同样的目的,但ip 的功能更强大,可以实现更多的配置目的. 首先,先了解传统的网络配置命令: 1. 使用ifconfig命令配置并查看网络接口情况 示例1: 配置eth0的IP,同时激活设备: # ifconfig eth0 192.168.4.1 netmask 255.255.255.0 up 示例2: 配置eth0别名设备eth0:1 的IP,并添加路由 # ifconfig eth0:1 192.168.4.2 # route add –host 192.168.4.2 dev eth0:1 示例3:激活(禁用)设备 # ifconfig eth0:1 up(down) 示例4:查看所有(指定)网络接口配置 # ifconfig (eth0) 2. 使用route 命令配置路由表 示例1:添加到主机路由 # route add –host 192.168.4.2 dev eth0:1 # route add –host 192.168.4.1 gw 192.168.4.250 示例2:添加到网络的路由 # route add –net IP netmask MASK eth0 # route add –net IP netmask MASK gw IP # route add –net IP/24 eth1

16.Linux基本网络配置

Linux基本网络配置: 查看及测试网络接口信息: 命令ifconfig:查看系统中处于活动状态的网络接口设备: [root@localhost ~]# ifconfig 查看指定网络接口的基本配置信息: 查看eth0网卡的基本配置信息: [root@localhost ~]# ifconfig eth0 查看所有网络接口配置信息: [root@localhost ~]# ifconfig –a 查看主机路由表信息: 查看linux主机中的路由表信息:(或[root@localhost ~]# netstat -nr) [root@localhost ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.20.0 * 255.255.255.0 U 1 0 0 eth0 default 192.168.20.1 0.0.0.0 UG 0 0 0 eth0 [root@localhost ~]# 其中default的行表示当前主机的默认网关记录。 查看linux主机中的路由信息,以数字形式显示地址: [root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.20.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0 0.0.0.0 192.168.20.1 0.0.0.0 UG 0 0 0 eth0 [root@localhost ~]# 使用这种方式,默认不会出现*,而是0.0.0.0。 跟踪数据包的路由途径: [root@localhost ~]# traceroute https://www.doczj.com/doc/2d13783511.html, 查看主机名称: [root@localhost ~]# hostname localhost.localdomain [root@localhost ~]# 设置主机名称: (重启失效) [root@localhost ~]# hostname zhangserver

Linux网络配置与管理作业3答案

1 分数: 5 Apache不能支持哪种功能?() 选择至少一个答案 a. AppleTalk b. SSL c. CGI d. NFS 正确 这次提交的分数:5/5。 Question2 分数: 5 B类网络最多可以有多少个网络地址?() 选择一个答案 a. 97150 b. 16382 c. 126 d. 2097150 正确 这次提交的分数:5/5。 Question3 分数: 5 IP别名是什么?() 选择一个答案 a. 允许一个网卡上绑定多个ip地址 b. 允许几个不同的网络以一个统一的网络面 c. 允许一个网上的多台机器共享一个ip

d. 允许其他协议使用ip地址 正确 这次提交的分数:5/5。 Question4 分数: 5 Ip地址211.21.210.20,它是属于哪一类网?如果掩码是255.255.255.0,它的广播地址是什么?() 选择一个答案 a. B类 255.0.0.0 b. A类 255.0.0.0 c. C类 255.255.0.0 d. C类 211.21.210.255 正确 这次提交的分数:5/5。 Question5 分数: 5 下列关于xinetd的描述哪些是正确的?() 选择至少一个答案 a. 必要时它会调用其他守护进程 b. 每个普通用户都可以运行xinetd c. xinetd能与TCP_Wraper一起控制对某个网络服务的访问 d. 它的配置文件是/etc/xinetd.conf 正确 这次提交的分数:5/5。 Question6 分数: 5 下列选项中哪个不是Apache基于主机的访问控制指令?() 选择一个答案 a. ALL

Linux下基本的网络配置

Linux下基本的网络配置 1、实验目的 (1)理解TCP/IP网络模型及其相关概念 (2)掌握Linux以太网接口配置 (3)掌握Linux下TCP/IP常用网络命令 (4)掌握Linux下网络配置常用到的文件 2、实验内容 (1)网络接口参数的设定 (2)网络侦错 (3)网络查询 (4)远程连接 (5)文本浏览器 3、理论知识 (1)TCP/IP网络协议栈 (2)常用到的网络协议 (3)TCP/IP常用到的配置文件及其功能 1)etc/sysconfig/network 包含了计算机最基本的网络信息,用于系统启动 文件如下: 2)etc/sysconfig/network-script 为网络接口信息的配置目录,该目录下的文件为网络接口的配置脚步。在Linux中,可以使用# ifconfig 命令来查看网络接口的配置信息。其中eth0,表示Linux中的第一块以太网卡,如果有多网卡的主机,则依次以eth1,eth2,······来表示。另外,在一个网卡上可以绑定多个IP 地址,每一个IP地址相当于以太网的一个子接口,例如在eth0上设置两个子接

口,可以用eth0:1,eth0:2来表示。相应地,每一个子接口也会产生一个脚本配置文件,这些文件也都是存放在network-script下的。 [root@azuo root]# ls /etc/sysconfig/network-scripts/ ifcfg-eth0 ifdown-ipv6 ifup ifup-isdn ifup-sit ifcfg-lo ifdown-isdn ifup-aliases ifup-plip ifup-sl ifdown ifdown-post ifup-cipcb ifup-plusb ifup-wireless ifdown-aliases ifdown-ppp ifup-ippp ifup-post init.ipv6-global ifdown-cipcb ifdown-sit ifup-ipv6 ifup-ppp network-functions ifdown-ippp ifdown-sl ifup-ipx ifup-routes network-functions-ipv6 在上图中,我们可以看到ifcfg-eth0文件,该文件就是eth0,也就是第一块网卡的脚本配置文件。 4、实验步骤 (1)网络接口参数的设置 设置网络接口参数,主要以下几种方法: 1)使用GUI工具配置,这个比较简单,如同windows的图形界面,这里就不再多说,只是给出简单的截图而已。

配置和编译Linux内核

配置和编译Linux内核 对内核进行正确配置后,才能进行编译。配置不当的内核,很有可能编译出错,或者不能正确运行。 1.1.1 快速配置内核 进入Linux内核源码数顶层目录,输入make menuconfig命令,可进入如图0.1所示的基于Ncurses的Linux内核配置主界面(注意:主机须安装ncurses相关库才能正确运行该命令并出现配置界面)。如果没有在Makefile中指定ARCH,则须在命令行中指定: $ make ARCH=arm menuconfig 图0.1基于Ncurses的Linux内核配置主界面 基于Ncurses的Linux内核配置界面不支持鼠标操作,必须用键盘操作。基本操作方法: ?通过键盘的方向键移动光标,选中的子菜单或者菜单项高亮; ?按TAB键实现光标在菜单区和功能区切换; ?子菜单或者选项高亮,将光标移功能区选中