linux核心基础-系统服务管理
1、ifconfig
ifconfig命令的英文全称是“network interfaces configuring”,即用于配置和显示Linux内核中网络接口的网络参数。
用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在,需要写入配置文件,方可永久生效
作用,获取网络设备信息
windows ipconfig
linux/Mac ifconfig
IP命令(ip a)
ip 命令是新一代的网络配置工具,被设计用来替代传统的 ifconfig 命令。尽管 ip 命令在某些方面更复杂,但它提供了更多功能和更大的灵活性。
2、网卡配置文件
# 网卡目录
[root@localhost opt]# ls /etc/sysconfig/network-scripts/
# 网卡文件名字,和我们ifconfig看到的一样
[root@localhost opt]# ls -l /etc/sysconfig/network-scripts/ifcfg-*
-rw-r--r--. 1 root root 310 Dec 31 18:36 /etc/sysconfig/network-scripts/ifcfg-ens33
-rw-r--r--. 1 root root 254 Jan 3 2018 /etc/sysconfig/network-scripts/ifcfg-lo
配置文件详解
3、ssh命令
ssh为 Secure Shell 的缩写
ssh 用于登录远程主机, 并且在远程主机上执行命令
同时在不安全的网络之上, 两个互不 信任的主机之间, 提供加密的, 安全的通信连接。
SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
SSH是标准的网络协议,可用于大多数UNIX操作系统,能够实现字符界面的远程登录管理,它默认使用22号端口,采用密文的形式在网络中传输数据,相对于通过明文传输的Telnet,具有更高的安全性。
SSH提供了口令和密钥两种用户验证方式,这两者都是通过密文传输数据的。不同的是,口令用户验证方式传输的是用户的账户名和密码,这要求输入的密码具有足够的复杂度才能具有更高的安全性。
4、systemctl
systemctl(英文全拼:system control)用于控制 systemd 系统和管理服务。
语法
systemctl [OPTIONS...] COMMAND [UNIT...]
command 选项字如下:
unit(单元,服务,指的是如sshd,network,nginx,这样的服务名(unit))
这几个指令,就替代了旧版的service 服务名 start/stop/等等
start:启动指定的 unit。
stop:关闭指定的 unit。
restart:重启指定 unit。
reload:重载指定 unit。
status:查看指定 unit 当前运行状态。
is-enabled :查看是否设置了开机自启
替代了旧版的chkconfig 服务名 on/off
enable:系统开机时自动启动指定 unit,前提是配置文件中有相关配置。 设置开机自启
disable:开机时不自动运行指定 unit。 禁用开机自
参数:unit 是要配置的服务名称。
#列出系统中,所有的内置服务,名字,和状态 (同windows中的任务管理)
systemctl list-units --type service --all
#只列出active的
systemctl list-units --type service
systemctl使用时加载的配置文件
/usr/lib/systemd/system/sshd.service
/usr/lib/systemd/system/firewalld.service
/usr/lib/systemd/system/vsftpd.service
/etc/rc.d/init.d/network
5、修改网络模式,静态ip
5.1、找到配置文件
[root@muserver1 /]# cd /etc/sysconfig/network-scripts/
[root@muserver1 network-scripts]# ls |grep en
ifcfg-ens160
[root@muserver1 network-scripts]#
5.2需要关闭,禁用centos7在图形化下,设置的网络服务,同时管理wifi和有线
服务名 NetworkManager
systemctl stop NetworkManager # 关闭
systemctl is-enabled NetworkManager # 查看是否开机自启
# 禁止开机运行
systemctl disable NetworkManager
5.3理解DHCP
DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。
5.4改为静态ip的步骤
[root@yuanlai-0224 network-scripts]# cat ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
# 你要根据你的网络环境修改的信息如下这几个
BOOTPROTO="static"
IPADDR="10.96.0.77"
NETMASK="255.255.255.0"
GATEWAY="10.96.0.2"
DNS1='114.114.114.114'
DNS2='115.115.115.115'
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="c00d6dd2-38dd-4f08-ba63-44333a825502"
DEVICE="ens33"
ONBOOT="yes"
5.5重启服务
systemctl restart network
6、0SI七层模型各层功能概述
OSl是Open System Interconnect的缩写,意为开放式系统互联。其各个层次的划分遵循下列原则:
(1)同一层中的各网络节点都有相同的层次结构,具有同样的功能。
(2)同一节点内相邻层之间通过接口进行通信。
(3) 七层结构中的每一层使用下一层提供的服务,并且向其上层提供服务。
(4)不同节点的同等层按照协议实现对等层之间的通信。
7、ntp时间同步服务
7.1 名词解释
7.1.1 NTP解释
NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。
7.1.2 NTP授时网站:
7.1.3标准时间是哪里来的?
现在的标准时间是由原子钟报时的国际标准时间UTC(Universal Time Coordinated,世界协调时),所以NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。
7.1.4 CST解释
CST(北京时间)
北京时间,China Standard Time,中国标准时间。
在时区划分上,属东八区,比协调世界时早8小时,记为UTC+8。
7.1.5 UTC
UTC(世界标准时间)
协调世界时,又称世界标准时间或世界协调时间,简称UTC(从英文“Coordinated Universal Time")
整个地球分为二十四时区,每个时区都有自己的本地时间,在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时。
7.1.6GMT
格林威治标准时间指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线(UTC与GMT时间基本相同)。
7.1.7DST
夏令时指在夏天太阳升起的比较早时,将时间拨快一小时,以提早日光的使用,中国不使用。
7.1.8 RTC时间
本地硬件时钟(主板上的纽扣电池供电,提供机器的时间正确,在主板的集成电路上)默认以UTC为准了
7.2timedatectl 命令
timedatectl(英文全拼:timedate control)命令用于在 Linux 中设置或查询系统时间
centos6时代,修改系统的时区、时间,需要用到
修改时间、日期、date命令
修改时区,cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改硬件时间、hwclock命令
在centos7提供了更强大的timedatectl命令,整合了时间、时区操作。
timedatectl [OPTIONS...] COMMAND ...
命令command
status :显示当前的时间设置。
show :显示 systemd-timedated 的属性。
set-time TIME :设置系统时间。
set-timezone ZONE :设置系统时区。
list-timezones :显示已知时区。
set-local-rtc BOOL :控制 RTC 是否在当地时间。(BOOL 的值可以是 1 / true 或 0 / false)
set-ntp BOOL :启用或禁用网络时间同步。(BOOL 的值可以是 1 / true 或 0 / false)
timesync-status :显示 systemd-timesyncd 的状态。
show-timesync :显示 systemd-timesyncd 的属性。
选项
选项:
-h, --help :显示帮助信息。
--version :显示软件包版本。
--no-pager :不用将输出通过管道传输到寻呼机(pager)。
--no-ask-password :不提示输入密码。
-H, --host=[USER@]HOST :在远程主机上操作。
-M, --machine=CONTAINER :在本地容器上操作。
--adjust-system-clock :更改本地 RTC 模式时调整系统时钟。
--monitor :监控 systemd-timesyncd 的状态。
-p, --property=NAME :仅显示此名称的属性。
-a, --all :显示所有属性,包括空属性。
--value :显示属性时,只打印值。
timedatectl实战
timedatectl status ##显示当前系统时间、日期
timedatectl set-timezone "Europe/Amsterdam" ##将本地时区从上海(Asia/Shanghai)设置为阿姆斯特丹(Europe/Amsterdam)
timedatectl list-timezones ##列出机器上支持的所有时区
timedatectl set-timezone "Asia/Shanghai" ##本地时区,恢复为亚洲、上海
timedatectl set-time "07:25:46" ##设置系统时间(格式:HH:MM:SS)
timedatectl set-time "2021-12-12" ##设置系统日期(格式:YYYY-MM-DD)
timedatectl set-ntp true/false ##设置ntp服务开启(得先安装ntp时间同步服务)
修改RTC硬件时间
[root@yuanlai-0224 ~]# timedatectl set-local-rtc 0 # 以UTC时s间为准,更改rtc时间
[root@yuanlai-0224 ~]# timedatectl set-local-rtc 1 # 以local time为准,更改rtc时间
7.3时间同步操作
- 时间同步,搭建ntpd服务
- 时间校准,ntpdate命令
7.3.1手动同步ntpdate
ntpdate 时间服务器地址
# NTP中国服务器,cn.ntp.org.cn
# 用法
[root@yuchao-linux01 ~]# ntpdate cn.ntp.org.cn
16 Jan 16:30:08 ntpdate[5312]: step time server 182.92.12.11 offset 45505765.702122 sec
7.3.2自动同步ntpd服务(推荐使用)
# 查看是否安装
[root@yuchao-linux01 ~]#
[root@yuchao-linux01 ~]# rpm -q ntp
package ntp is not installed
# 如果没有安装过的话,可以执行此命令安装
[root@yuchao-linux01 ~]# yum install ntp -y
自动同步需要开启linux的ntp服务
systemctl start/stop/restart ntpd
配置文件更改
修改 /etc/ntp.conf 配置文件,参考如下修改
3 # #系统时间与BIOS事件的偏差记录
4 driftfile /var/lib/ntp/drift
5
6 # by yuchao create ntpd.log
7 logfile /var/log/ntpd.log
8
9 # by yuchao create ntpd.pid
10 pidfile /var/run/ntpd.pid
注释掉默认的这几行
19 # Use public servers from the pool.ntp.org project.
20 # Please consider joining the pool (http://www.pool.ntp.org/join.html).
21 #server 0.centos.pool.ntp.org iburst
22 #server 1.centos.pool.ntp.org iburst
23 #server 2.centos.pool.ntp.org iburst
24 #server 3.centos.pool.ntp.org iburst
添加新的互联网中ntp服务器
# prefer表示为优先,表示本机优先同步该服务器时间
# 阿里云的延迟明显很低 https://help.aliyun.com/document_detail/92704.html
server times.aliyun.com iburst prefer
server ntp.aliyun.com iburst
server cn.pool.ntp.org iburst
添加新的ntp服务器地址,参数解释 iburst,当某一个ntp挂掉时,向它发送一些数据包,检测是否挂掉。
########## 参数解释
ntpd.conf配置文件采用restrict实现权限控制
Restrict [IP] mask [netmask_IP] [parameter]
Parameter 的
ignore :拒绝所有类型的NTP联机。
nomodify: 客户端不能使用ntpc与ntpq这两个程序来修改服务器的时间参数,但客户端可透过这部主机来进行网络校时;
noquery:客户端不能够使用ntpc与ntpq等指令来查询时间服务器,不提供NTP的网络校时。
notrap:不提供trap 这个运程事件登入的功能。
notrust:拒绝没有认证的客户端。
Kod:kod技术可以阻止“Kiss of Death “包对服务器的破坏。
Nopeer:不与其他同一层的NTP服务器进行时间同步。
利用server 设定上层NTP服务器,格式如下:
server [IP or hostname] [prefer]
参数主要如下:
perfer:表示优先级最高
burst :当一个运程NTP服务器可用时,向它发送一系列的并发包进行检测。
iburst :当一个运程NTP服务器不可用时,向它发送一系列的并发包进行检测。
用法如
server times.aliyun.com iburst prefer # prefer表示为优先,表示本机优先同步该服务器时间
server ntp.aliyun.com iburst
server cn.pool.ntp.org iburst
设置系统时间和硬件时间同步
实现clock时间与system时间同步,配置/etc/sysconfig/ntpd文件
ntp服务,默认只会同步系统时间。
如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件,在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes这样,就可以让硬件时间与系统时间一起同步。
[root@yuchao-linux01 ~]# cat /etc/sysconfig/ntpd
# Command line options for ntpd
OPTIONS="-g"
SYNC_HWCLOCK=yes
启动ntpd服务
启动ntpd程序
[root@yuchao-linux01 ~]# systemctl start ntpd
检查ntpd运行后,生成的相关文件
[root@yuchao-linux01 ~]# ll /var/log/ntpd.log
-rw-r--r-- 1 root root 864 Mar 17 18:25 /var/log/ntpd.log
[root@yuchao-linux01 ~]# ll /var/run/ntpd.pid
-rw-r--r-- 1 root root 4 Mar 17 18:25 /var/run/ntpd.pid
ntpstat
确认本地NTP与上层NTP服务器是否联通
[root@yuchao-linux01 ~]# ntpstat
# 以和162.159.200.123服务器同步过
synchronised to NTP server (162.159.200.123) at stratum 4
# 时间校正到相差1110ms之内
time correct to within 1110 ms
# 每64秒会向上级NTP轮询更新一次时间
polling server every 64 s
ntpq
查看时间同步状态
-p 显示时间服务器列表
[root@yuchao-linux01 ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*120.25.115.20 10.137.53.7 2 u 20 64 7 41.614 19.046 4.108
+203.107.6.88 10.137.38.86 2 u 24 64 7 15.996 23.737 6.711
+time.cloudflare 10.28.12.207 3 u 23 64 17 282.792 -14.257 59.448
参数详解
remote :本地主机所连接的上层NTP服务器,最左边的符号如下:
如果有[*] 代表目前正在使用当中的上层NTP服务器。
如果有[+] 代表也有连上上层NTP服务器,可以作为提高时间更新的候选NTP服务器
如果有[-] 代表同步的该NTP服务器被认为是不合格的NTP Server
如果有[x] 代表同步的外网NTP服务器不可用
refid :指的是给上层NTP服务器提供时间校对的服务器。
St:上层NTP服务器的级别。
When: 上一次与上层NTP服务器进行时间校对的时间(单位:s)
Poll :本地主机与上层NTP服务器进行时间校对的周期(单位:s)
reach:已经向上层 NTP 服务器要求更新的次数
delay:网络传输过程当中延迟的时间,单位为 10^(-6) 秒
offset:时间补偿的结果,单位为10^(-6) 秒
jitter:Linux 系统时间与 BIOS 硬件时间的差异时间, 单位为 10^(-6) 秒。
7.4date
可用来设置系统日期与时间。只有管理员才有设置日期与时间的权限,一般用户只能用date 命令显示时间。
若不加任何参数,data 会显示目前的日期与时间。
-s, --set=STRING
根据 STRING 设置时间
格式化修改时间+日期
[root@yuchao-linux01 ~]# date -s '20180808 13:13:13'
Wed Aug 8 13:13:13 CST 2018
格式化修改时间
[root@yuchao-linux01 ~]# date -s '18:00:00'
Wed Aug 8 18:00:00 CST 2018
格式化修改日期
[root@yuchao-linux01 ~]# date -s '20120606'
Wed Jun 6 00:00:00 CST 2012
[root@yuchao-linux01 ~]#
[root@yuchao-linux01 ~]# date '+%F'
2012-06-06
7.5hwclock
hwclock命令是一个硬件时钟访问工具,它可以显示当前时间、设置硬件时钟的时间和设置硬件时钟为系统时间,也可设置系统时间为硬件时钟的时间。
在Linux中有硬件时钟与系统时钟两种时钟。
硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。
系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。
所有Linux相关指令与函数都是读取系统时钟的设定。
语法参数
--systohc 将硬件时钟调整为与目前的系统时钟一致。
--hctosys 将系统时钟调整为与目前的硬件时钟一致。
--show 显示硬件时钟的时间与日期。
--debug 显示hwclock执行时详细的信息。
-w, --systohc set the hardware clock from the current system time
--systz set the system time based on the current timezone
--adjust adjust the RTC to account for systematic drift since
以系统时间为准,修改硬件时钟
[root@yuchao-linux01 ~]# hwclock --hctosys
[root@yuchao-linux01 ~]# hwclock --show
Thu 17 Mar 2022 07:07:42 PM CST -0.833680 seconds
[root@yuchao-linux01 ~]#
以硬件时间为准,修改系统时间
[root@yuchao-linux01 ~]# hwclock --systohc
[root@yuchao-linux01 ~]# hwclock --show
Thu 17 Mar 2022 07:08:18 PM CST -0.740291 seconds
7.6开机自启ntpd
# 默认为CentOS7的配置,CentOS6中需要使用chkconfig命令
[root@yuchao-linux01 ~]# systemctl enable ntpd
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.