Linux切换运行级别、关闭防火墙、禁用selinux、关闭sshd、时间同步、修改时区、拍摄快照、克隆操作、修改语言环境

1. Linux运行级别及切换

在系统输入vim /etc/inittab可以查看系统的运行级别:

可以看到,Linux有7个运行级别,分别是:

  • 0: 系统停止(关机)
  • 1:单用户模式
  • 2:无网络的多用户模式
  • 3:有网络的多用户模式(完整多用户模式)
  • 4:未使用
  • 5:图形化界面
  • 6:重启

id:3:initdefault表示系统初始化的运行级别为3,一般常用的运行级别是3 和 5。如果要修改系统初始化的运行级别,那么只需修改 “id:” 后面的数字即可。

查看当前运行级别

输入runlevel可以查看系统当前的运行级别:

上图,N表示自系统启动后运行级别尚未更改,3表示系统的当前运行级别。

切换运行级别

除了通过修改inittab文件中的默认运行级别之外,管理员还可以通过init命令来任意切换 7个级别,值得一提的是,init 0init 6等效于 shutdown 和 reboot 。

执行init命令,将系统级别切换到5,再将级别切换回3:

上图,5 3表示系统更改之前的运行级别为5,当前运行级别为3。

查看系统中所有服务在各运行级别中的启动状态

输入chkconfig

上图0代表关闭,1代表启用。

查看network服务在各运行级别中的启动状态

输入chkconfig --list network

2. 关闭防火墙并禁止开机启动

在Linux系统中,iptables表示防火墙的服务名,输入chkconfig --list iptables查看防火墙在系统各运行级别的启动状态。

可以看到,iptables在运行级别2,3,4,5是on,

输入命令chkconfig iptables off全部禁止开机启动

现在我们只是禁止了开机启动,并没有关闭当前运行的防火墙服务,可以输入service iptables status查看防火墙的状态:

可以看到,防火墙还在运行状态,输入命令service iptables stop以关闭防火墙服务:

到了这里,防火墙服务以及防火墙开机启动都关闭成功了。

3. 禁用selinux

安全增强型 Linux(Security-Enhanced Linux)简称 seLinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。selinux可能会带来一些权限方面的问题,这是我们在开发过程中不愿看到的,一般将其关闭。

首先在命令行输入getenforce 查看selinux的状态:

可以看到,selinux在运行中。

在命令行输入 vim /etc/selinux/config 编辑selinux的配置文件:

SELINUX=enforcing注释,增加一行SELINUX=disabled,保存并退出,输入init 6重启虚拟机才能生效。

4. 关闭sshd服务

一般我们通过关闭sshd服务的DNS以加快SSH登录速度

在命令行输入vim /etc/ssh/sshd_config ,在vim的命令模式下输入/UseDNS查找UseDNS的位置(可以使用n选择下一个匹配的项目),然后将去掉UseDNS的注释,并将yes改为no,保存退出。

输入service sshd restart重启sshd服务:

重启之后,修改的配置项就加载了。

5. 时间同步

输入date可以查看当前时间:

发现时间不对,这时输入yum install ntp -y,安装完ntp之后系统中多了两个服务:ntpdntpdate,如下所示:

可以看到,ntpd的状态都是off,也就是这个服务不会开机启动,现在设置ntp为开机启动。

输入chkconfig ntpd on,再次通过chkconfig查看:

这时,ntpd服务在系统的2、3、4、5级别上已设置为开机启动。

输入 service ntpd status查看ntpd的服务状态,如果显示stopped表示没有启动,此时输入service ntpd start启动服务,过几分钟(5分组左右)就通过网络自动同步到当前时间了。

6. 修改时区

输入date查看当前系统的时间和时区:

可以看到,当前时区为EST(英国时间),现在我们要改为CST(北京时间),可以采用如下步骤:

(1)拷贝时区文件

输入 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

(2)修改/etc/sysconfig/clock

输入vim /etc/sysconfig/clock将文件里的内容改为:

1
2
3
ZONE="Asia/Shanghai"
UTC=true
ARC=false

这里补充一下,ZONE、UTC、ARC、SRM:

  • ZONE:指定时区,ZONE的值是一个文件的相对路径名,这个文件是相对 /usr/share/zoneinfo 目录下的一个时区文件。比如ZONE的值可以是:“Asia/Shanghai"、“US/Pacific”、“UTC” 等。
  • UTC:指定BIOS中保存的时间是否是GMT/UTC时间,true表示BIOS里面保存的时间是UTC时间,false表示BIOS里面保存的时间是本地时间。
  • ARC:这个选项一般配置false,在一些特殊硬件(Alpha)下才配置该选项为true。
  • SRM:同ARC,该选项一般配置false,在一些特殊硬件下才配置该选项为false。

(3)修改/etc/profile

输入以下命令追加写入到/etc/profile中:

1
2
echo "TZ='Asia/Shanghai'; export TZ  ">>/etc/profile
source /etc/profile #编译立即生效

需要注意的是:

  • /etc/profile:影响所有用户
  • ~/.bashrc:影响当前用户

想要了解更多source和profile的内容,可参考source /etc/profile作用

(4)再次输入date查看,发现已经修改成功了

7. 删除70-persistent-net.rules文件

我们先来看看为什么要删除70-persistent-net.rules文件:

  • 许多Linux distribution使用udev来动态管理设备文件,并根据设备的信息对其进行持久化命名。
  • udev 会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来,并记录在udev的规则脚本中。
  • 当我们在克隆新的虚拟机时,会自动为虚拟机的网卡生成MAC地址。由于你使用的是以前系统虚拟硬盘的信息,而该系统中已经有eth0(表示第一块有线网卡)的信息,对于这个新的网卡,udev会自动将其命名为eth1 (累加的原则)。
  • udev记录网络规则的脚本为:/etc/udev/rules.d/70-persistent-net.rules,当克隆新虚拟机打开该文件后,会发现,里面有eth0,eth1 这两个网卡的信息,但实际上输入ifconfig时只能发现eth1这一个网卡的信息,这是因为eth0根本就不存在。

我在第一次克隆完虚拟机后,输入vim /etc/udev/rules.d/70-persistent-net.rules 确实发现有两条mac地址和网卡名称的对应记录,如下图所示:

此时,系统使用的是新的网卡eth1,,输入 vi /etc/sysconfig/network-scripts/ifcfg-eth0查看当前虚拟机的网络配置文件,可以发现该虚拟机使用是eth0,如下图所示:

这样就对应不上了,此时解决的方法有两个。

方法一:将70-persistent-net.rules中eth0的那条记录删除,将eht1改为eth0

但是,如果我们要克隆多台虚拟机,采用方法一,岂不是要修改多次,所以最好采用方法二。

方法二:输入rm -rf /etc/udev/rules.d/70-persistent-net.rules删除70-persistent-net.rules

删除70-persistent-net.rules后,再输入init 0关机,这时再克隆虚拟机。启动新克隆的虚拟机后,系统会自动产生70-persistent-net.rules文件,并且只有eth0这一个网卡记录,这样就对应上了,可以愉快的联网了。

8. 拍摄快照

虽然开机的时候也可以拍摄快照,但为了防止系统的不稳定,最好在关机之后拍,因为系统在运行过程中也会产生数据。

拍摄快照的步骤如下:

(1)点击下图按钮

(2)点击“拍摄快照”,输入快照名称,再点击弹出框的拍摄快照。

这样就完成了一个快照的拍摄了。

9. 克隆虚拟机

虚拟机的克隆有两种方式链接克隆完整克隆

  • 链接克隆就是在被克隆的虚拟机上创建了一个链接指向新的虚拟机,但是如果被克隆的虚拟机系统损坏,则在此基础上所有链接克隆的虚拟机都将不能用。但是链接克隆一个好处是克隆出来的虚拟机不会占用整个虚拟机的磁盘空间,同时链接克隆速度比较快,不用经历安装虚拟机要命的超长等待时间。
  • 完整克隆是对被克隆虚拟机的一个完整副本,此副本虚拟机完全独立,但需要较多的存储磁盘空间。

这里为了速度和存储空间,我们选择链接克隆的方式。步骤如下:

(1)点击下图按钮

(2)选择一个虚拟机的快照,点击“克隆”。

(3)点击下一步,选择“现有快照”,再点下一步。

(4)选择创建链接克隆,点击下一步。

(5)填写克隆的虚拟机名称,选择位置,点击完成。

此时,克隆操作已经完成,但是新克隆出来的虚拟机还不能上网,必须进程配置。

启动新克隆的虚拟机并登陆,用户名和密码与原来的虚拟机一样。

登陆完毕后,输入 vim /etc/sysconfig/network修改计算机名称(hostname):

然后输入 vim /etc/sysconfig/network-scripts/ifcfg-eth0 配置网络:

这是修改之前的网络配置

这是修改之后的网络配置

把网络的IP地址修改一下,别和之前的冲突就行。

重启layne1虚拟机,使用XShell连接,在XShell中输入ssh root@192.168.218.51

点击“接受并保存”,输入密码,连接成功!

输入ifconfig查看网络配置,可以看到,刚刚配置已经生效。

输入ping www.baidu.com,连网成功

输入vim /etc/hosts编辑CentOS的hosts文件,将192.168.218.50改为192.168.218.51,将layne改为layne1

输入ping layne1,可以看到,layne1被解析为了192.168.218.51,大功告成。

在自己的windows上,进入C:\Windows\System32\drivers\etc目录修改host文件:

然后,windows平台就可以和克隆的虚拟机进行通信了。

10. 修改语言环境

首先,查看当前语言环境:

1
2
[root@layne ~]# echo $LANG
en_US.UTF-8

所以需要修改系统的语言环境:

1
2
3
[root@layne ~]# LANG=zh_CN.UTF-8
[root@layne ~]# echo $LANG
zh_CN.UTF-8

这样就修改为中文环境了,但是这样修改在断开连接或者下次重启系统,就无效了。如何才能长期有效呢?

输入vim /etc/sysconfig/i18n,将之前的语言变量注释,加入以下信息即可:

参考文档

修改系统时间为UTC时间