linux系统配置服务哪些是默认开启
Linux内核版本号的规则?
Linux内核版本号的规则?
Linux内核版本有两种:稳定版和开发版 ,Linux内核版本号由3个数字组成:r.x.y
r:目前发布的内核主版本。
x:偶数表示稳定版本;奇数表示开发中版本。
y:错误修补的次数。
内核版本号每位都代表什么 ?
以版本号为例: 2.6.9-5.ELsmp ,
r: 2 , 主版本号
x: 6 , 次版本号,表示稳定版本
y: 9 , 修订版本号 , 表示修改的次数
头两个数字合在一齐可以描述内核系列。如稳定版的2.6.0,它是2.6版内核系列。
5: 表示这个当前版本的第5次微调patch , 而ELsmp指出了当前内核是为ELsmp特别调校的
EL : Enterprise Linux ; smp : 表示支持多处理器 , 表示该内核版本支持多处理器
知识延伸
一般的有三种
1 smp
2 bigmem
3 一般的内核
Red Hat Linux开机的时候,GRUB的启动菜单会有两个选项,分别是
Red Hat Enterprise Linux ES (版本号.ELsmp)
Red Hat Enterprise Linux ES-up (版本号.EL)
这两个分别是代表什么含义呢?
其实这个就是系统开机时由GRUB引导启动 - 单处理器 与 对称多处理器启动核心文件的区别。
Red Hat Enterprise Linux ES (版本号.ELsmp) multiple processor (symmetric multiprocessing )
Red Hat Enterprise Linux ES-up (版本号.EL) uniprocessor
下面就把SUSE与Red Hat启动菜单内可选择的选项,列举出来
SUSE
版本号-default: SUSE Linux kernel for uniprocessor machines 默认选项,支持单处理器机器
版本号-smp: SUSE Linux kernel that supports symmetric multiprocessing and up to 4 GB of RAM
支持4GB内存的对称多处理器机器
版本号-bigsmp: SUSE Linux kernel supports symmetric multiprocessing and up to 64 GB
支持64GB内存的对称多处理器机器
Red Hat Linux
版本号.EL: Red Hat Linux kernel for uniprocessor machines 支持单处理器机器
版本号.ELhugemem: Red Hat Linux kernel that supports up to 64 GB of RAM
支持64GB内存的对称多处理器机器
版本号.ELsmp: Red Hat Linux kernel that supports symmetric multiprocessing 对称多处理器机器,支持4G内存
有些情况下你需要支持1和2特性,那么你可以:重新编译一下内核,在处理器及内存选择项上选择与你配置相对应的选项即可。
如何下载对应内核版本的源代码 ?
一般情况下,可以直接到官网:下载,
缺点是:对于任何内核做过特殊优化调校的发行版是不合适的,尤其是fedora ubuntu 这一类的,毕竟他们在内核中打了大量的补丁,做了很多优化,如果直接使用官方源码 ,你就无法享受到这些东西 ,内核不是越新越好的 越合适越好
因此最好到发行商的官网去下载,因为官方已经提供了编译好的源码rpm包。
如何使用对应的内核源码包 ?
以fedora官方提供的内核源码: 为例
首先,安装源码
[ ~]# rpm -ivh
然后,转换源码
转换之前,请确保/usr/src/目录下有redhat目录(一般/usr/src/是空目录)。
[ ~]# rpmbuild -bp --target$(uname -m) /usr/src/redhat/SPECS/kernel.spec
这样会将源码放置在/usr/src/redhat/BUILD/kernel-2.6.23/。
这里有两个有用的文件夹:.
——这个是 提供的包经过Fedora 补丁和升级得到的。也就是 2.6.23.9-85.fc8 这个 打过补丁的内核
ARCH 与uname-m 的输出结果一致,通常为i686。如果你想得到不同的输出,你可以使用
“--target”这个选项来进行指定。
vanilla——这个是标准的、由 提供的没有经过补丁和升级的源码。
linux运维,超时连接配置tmout和sshd_config中ClientAliveInterval参数配置有何区别?
回答行业问题
这个其实是shell环境和ssh会话的问题,问题看似简单,其实说起来,话题很长。
首先解答问题中两者的区别,然后对ssh会话和shell环境的关系、ssh会话和会话超时之间展开说明。
TMOUT是shell环境下的变量,从名字就可以看出是控制超时时间的,ClientAliveInterval参数是sshd服务会话连接保活的参数。
前者是超时时间,后者是保活连接,看似是一个很对立的关系,但是它们之间,首先来说一下它们的区别。
两者区别shell空闲等待时间TMUOT变量
TMOUT是shell环境下的一个环境变量,它控制shell环境系统空闲等待时间。一般配置在/etc/profile文件当中,Linux系统默认不配置TMOUT环境变量的值。
当TMOUT的值大于0时,比如为10,shell进空闲等待当终端超过10秒没所有输入,bash将关闭当前shell环境,终端连接断开,长时间离开电脑后断开终端连接,对服务器也是一种保护。
从上图可以看出,配置TMOUT环境的值变量为10之后,ssh终端就自动断开了。
ClientAliveInterval sshd服务保活参数
这个参数和ClientAliveCountMax参数配合使用,sshd服务配置这两个参数之后,比如ClientAliveInterval 300、ClientAliveCountMax 3。sshd服务会每隔300秒会给客户端发送心跳包,当客户端没有响应时会进行3次重试,重试后依然没有响应,断开ssh连接。
到这里就看出它们的区别了,TMOUT是控制shell环境虚拟终端层面,当终端没有输入时,多长时间断开终端。而ClientAliveInterval参数是控制sshd服务和ssh客户端之间,没有网络通信时多长时间断开和客户端的连接。
总是说shell环境和sshd服务,那它们之间有什么关系呢?继续往下。
shell环境和sshd服务的关系现在使用的的终端工具比如xshell、putty、CRT等都集成了ssh客户端,当终端发起ssh请求和sshd服务建立连接,并且通过验证,这时sshd服务将创建一个会话,然后调用系统接口创建一个新的pts字符设备文件,同时sshd服务会创建一个shell环境。
最后将ssh会话和pts字符设备文件绑定,字符设备文件再和和shell绑定,这样就创建了ssh会话和shell环境的连接。
当终端输入命令时,首先会将数据通过ssh协议发送给sshd服务,sshd将数据发送给对应的会话,会话将数据发送给pst字符设备文件,字符设备文件将数据最终转发到shell环境。
shell处理完命令请求,然后依次shell--pts符号设备文件--ssh会话--终端工具,这样就完成了终端界面,控制Linux shell的过程。
从上面的阐述可以得出,shell是sshd服务创建的,但是它们又是独立的,通过pts字符设备文件联系在一起。
ssh会话保活和自动超时平时使用ssh工具连接linux服务器时,总是超时,这时就可以配置sshd服务定时进行心跳检测,防止通信超时断开。
现在ssh工具也都具备网络保活的功能,也可以通过设置客户端程序来进行连接保活,原理和sshd服务一样,定期发送心跳包。
对于安全比较重视的人来说,这样显然是不合理的,这时就可以设置shell环境变量TMOUT定义系统空闲等待时间,在不使用终端时自动断开。
这里一直是在说超时,那么什么都不配置,ssh会话为什么超时了?继续往下看。
ssh会话为什么会超时?ssh会话属于TCP长连接,linux系统定义了TCP长连接的超时时间,一般是7200秒,也就是两个小时,长连接达到这个时间就会发起心跳包,检测TCP连接,但是在实际场景到不了这个时间就会断开,比如NAT环境。
ipv4地址有限,我们的上网环境一般都在NAT路由设备后面,NAT路由维护着一张NAT表,当tcp连接长时间没有数据通信,NAT路由就会将这个连接从NAT表中移除,这会引起ssh会话就中断超时。
NAT超时时间远远达不到两个小时,所以TCP长连接如果没有心跳,很容易出现超时现象,再有就是网络不稳定,也会造成连接断开。
总结,我们从最初的shell环境变量TMOUT出发,将shell和sshd服务进行关联,介绍了它们之间的关系,引出了shell环境超时和sshd服务超时,并说明了自动超时和保活会话的应用,最后解释了服务超时的原因,环环相连,到这里我想对于ssh会话已经有了基本了解。
以上回答希望能够帮助到你,欢迎大家评论留言。