网络服务:是指一些在网络上运行的、面向服务的软件模块
网络服务的标准:可以使用各种协议通过网络进行远程访问的软件模块(常见协议:http/ftp/telnet/smtp 等)
CentOS6.x | CentOS7.x | |
---|---|---|
文件系统 | Ext4 | XFS |
防火墙 | iptables | firewalld |
默认数据库 | MySQL | MariaDB |
时间同步 | ntpq -p |
chronyc sources |
修改时区 | /etc/sysconfig/clock |
timedatectl set-timezone Asia/Shanghai |
修改语言 | /etc/sysconfig/i18n |
localectl set-locale LANG=zh_CN.UTF-8 |
主机名 | /etc/sysconfig/network |
/etc/hostname 可以使用 hostnamectl set-hostname heping 来设置主机名 |
操作行为 | CentOS6.X | CentOS7.X |
---|---|---|
启动指定服务 | service 服务名 start |
systemctl start 服务名 |
关闭指定服务 | service 服务名 stop |
systemctl stop 服务名 |
重启指定服务 | service 服务名 restart |
systemctl restart 服务名 |
查看指定服务状态 | service 服务名 status |
systemctl status 服务名 |
查看所有服务状态 | service --status-all |
systemctl list-units |
设置服务自启动 | chkconfig 服务名 on |
systemctl enable 服务名 |
设置服务不自启动 | chkconfig 服务名 off |
systemctl disable 服务名 |
查看所有服务自启动状态 | chkconfig --list |
systemctl list-unit-files |
CentOS6.X | CentOS7.X | |
---|---|---|
网卡名 | CentOS6.X 网卡名是: eth0 |
CentOS7.X 网卡名:ens33 |
网络配置命令 | ifconfig/setup |
ip/nmtui |
网络服务 | 默认使用 network 服务 | 默认使用 NetworkManager 服务 |
① 配置文件目录
/etc/sysconfig/network-scripts/ifcfg-ens33
② 配置管理命令
ifconfig/ip address show
③ 配置文件内容
DEVICE=ens33 # 设备名称
NAME=ens33 # 网卡名称
BOOTPROTO=static # 连接方式(dhcp/static)
ONBOOT=yes # 是否开机加载
IPADDR=192.168.141.11 # ip 地址
NETMAST=255.255.255.0 # 子网掩码(PREFIX=24)
GATEWAY=192.168.12.1 # 网关
DNS1=8.8.8.8 # DNS
注:
网卡的配置文件中选项要大写,小写不报错,但不生效,参数可以小写
1)、网络地址和物理地址
- 网络地址:互联网协议地址(IP 地址)为互联网上每一个网络或主机分配一个逻辑地址,IP 地址工作在网络层
- 物理地址:物理地址(MAC 地址)为每一个设备设置一个固定的硬件地址,MAC 地址工作在链路层。
2)、TCP/IP 五层常见协议
- 应用层协议:FTP、HTTP、SMTP、Telnet、DNS
- 传输层协议:TCP、UDP
- 网络层协议:IP、ICMP、ARP
- 数据链路层协议:PPP 协议等
- 物理层:不常用
3)、端口配置文件
/etc/services
route -n
查看系统中路由表信息
添加和删除网关:
1)、临时生效
网关
添加:
route add default gw ip地址
删除:
route del default gw ip地址
2)、永久生效
网关
/etc/sysconfig/network-scripts/ifcfg-eth0
nslookup
域名解析测试命令
配置 DNS
配置文件:
局部(如果有多块网卡这种局部配置就有问题了):
/etc/sysconfig/network-scripts/ifcfg-eth0
DNS=ip地址
全局:
/etc/resolv.conf
nameserver ip地址
[root@hadoop1 sbin]# nslookup www.baidu.com
Server: 192.168.148.2
Address: 192.168.148.2#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 183.232.231.174
Name: www.a.shifen.com
Address: 183.232.231.172
arp 地址解析协议,将 ip 地址解析成 MAC 地址
选项:
-a
:查看所有
-d ip地址
:删除某条 ARP 记录使用 arp 命令,需要先 ping 一下对应的 ip 地址,进行通信一下,然后才能查看
前提:客户端已经把自己的公钥放到了服务器上
1、客户端拿着自己的公钥,去请求连接服务器,服务器要求客户端接收自己的公钥文件
2、服务器接收客户端的公钥,验证本地存放的和接收到的是否一致
3、若不一致,则直接拒绝登录请求(该公钥未在本机登录注册)。若一致,则使用客户端的公钥加密一串质疑信息,发送到客户端
4、客户端收到加密内容后,使用客户端私钥进行解密,解密后,再使用服务器公钥将结果加密,然后传给服务器。
5、服务器接收到客户端发送的数据包,使用服务器私钥进行解密,若结果和当时发给客户端的质疑内容一样,则成功建立起安全远程连接
PS:
客户端有三个文件:
客户端公钥、客户端私钥、服务器公钥
服务器有三个文件:
服务器公钥、服务器私钥、客户端公钥
1)、用户密码验证
Linux 主机之间我们可以直接使用 ssh 进行远程登录
格式:
ssh 用户名@ip地址
注:
可以直接
ssh ip地址
如果不写用户名的话,默认使用 root 用户登录
2)、密钥对验证
Linux 主机之间密钥对登录验证
① 客户端生成密钥对文件
ssh-keygen -t rsa -b 2048
-t
:指定加密类型(rsa/dsa等)
-b
:指定密钥对加密长度执行上述命令过程中会有两个询问:
询问1:执行过程中会询问保存位置,一般默认保存在当前用户家目录下的
.ssh
目录下询问2:是否对密钥文件进行加密
若加密,则在调用密钥文件时需要先验证密钥的密码,密码正确才能使用密钥文件
若不加密,则密钥文件可以直接被调用,整个登录验证过程无需输入任何密码,即为免密登录
② 将公钥文件上传至服务器端
ssh-copy-id 用户名@服务器ip地址
这里的用户名要和用来登录服务器的用户名一致
③ 客户端尝试登录服务器
ssh 用户名@服务器ip 地址
1)、修改默认端口
ssh 作为一个用来远程管理服务器的工具,需要特别的安全,默认情况下使用 TCP 的 22 端口,若不进行修改,很容器被利用遭到攻击,所以我们一般会修改端口,尽量修改一个高位端口(范围 1-65535)
配置文件:
/etc/ssh/sshd_config
Port 端口
service sshd restart
修改完端口之后,需要重启 ssh 服务修改完端口之后,你如果想要使用 ssh 去登录服务器的话,就需要这么用:
ssh -p 端口号 root@服务器ip
因为 ssh 默认使用 22 端口,你端口改了,登录的时候肯定就需要加上端口号
2)、限制 ssh 监听 ip
有些服务器安全级别更高,不允许使用外网直接登录,只有通过局域网才能登录。我们可以在机房里设置其中一台可以被外网远程连接,其他的主机都通过这个机器进行远程连接即可。
配置文件:
/etc/ssh/sshd_config
ListenAddress 192.168.148.141 # 这个监听的就是本机的哪个网卡的 ip 地址 # 真正的生产服务器,一台服务器可以有多个网卡,那么就有多个 ip 地址(因此你如果想要服务器有多个 ip 地址,最简单的办法就是加网卡)
小技巧:
将一张网卡设置多个 ip 地址
ifconfig eth0:0 192.168.148.22 up
eth0:x
虚拟网络接口,建立在 eth0 上,取值范围 0-255192.168.148.xxx
ip 别名,想加多少加多少up
表示立即激活该网卡(可以省略不写)清除 ip 别名
ifconfig eth0:0 192.168.148.22 down
scp
scp :安全的远程文件复制命令
scp 是 secure copy 的简写,用于在 Linux 下进行远程拷贝文件
格式:
scp 本地文件路径 用户名@服务器ip:远程服务器路径
scp /home/hpshen/aa.txt [email protected]:/home
sftp
sftp:安全的文件传输协议
sftp 是 Secure FileTransferProtocol 的缩写,安全文件传送协议。sftp 与 ftp 有着几乎一样的语法和功能。由于这种传输方式使用了加密/解密技术,所以 sftp 比 ftp 更安全一些,但传输效率会低一点。
格式:
sftp 用户名@服务器ip
同步与异步:
同步与异步的重点在消息通知的方式上,也就是调用结果的通知方式不同
- 同步:当一个同步调用发出去后,调用者要一直等待调用的结果通知后,才能进行后续的执行
- 异步:当一个异步调用发出去后,调用者不必一直等待调用结果的返回。异步调用,要想获取结果一般有两种方式:
- 主动轮询异步调用的结果
- 被调用方通过 callback(回调)来通知调用方调用结果
阻塞与非阻塞:
阻塞与非阻塞的重点在于进程/线程等待消息时候的行为,也就是在等待消息的时候,当前进程/线程是挂起状态还是非挂起状态。
- 阻塞:调用在发出去后,在消息返回之前,当前线程/进程会被挂起,直到有消息返回,当前进程/线程才会被激活
- 非阻塞:调用在发出去后,不会阻塞当前进程/线程,而会立即返回
为什么 Nginx 比其他 web 服务器并发高(Nginx 工作原理)
Nginx 是以异步非阻塞方式工作,能够轻松处理百万级的并发连接。
处理过程:
每进来一个 request ,会有一个 worker 进程去处理。但不是全程的处理,处理到可能发生阻塞的地方,比如向后端服务器转发 request,并等待请求返回。那么这个处理的 worker 不会这么傻等着,它会在发送完请求后,注册一个事件:“如果服务器端返回了,告诉我一声,我再接着干”。于是他就去休息去了。此时如果有新的 request 进来,它就可以很快再按这种方式处理。而一旦后端服务器返回了,就会触发这个事件,worker 才会来接手,这个 request 才会继续往下走。通过这种快速处理快速释放请求的方式,达到同样的配置可以处理更大的并发量的目的。
nginx 是一个高性能的 http 和反向代理服务器。其特点是占有内存少,并发能力强。
nginx 有两种工作模式,master-worker 模式和单进程模式。在 master-worker 模式下,有一个 master 进程和至少一个 worker 进程。单进程模式顾名思义就是只有一个进程。
1)、master-worker 模式
该模式下,nginx 启动成功后,会有一个 master 进程和至少一个 worker 进程。master 进程负责处理系统信号,加载配置,管理 worker 进程(启动、杀死、监控,发送消息/信号等)。worker 进程负责处理具体的业务逻辑,也就是说,对外部来说,真正提供服务的是 worker 进程。生产环境下一般都使用这种模式,因为这种模式有以下优点:
- 稳定性高,只要还有 worker 进程存活,就能够提供服务,并且一个 worker 进程挂掉,master 进程会立即启动一个新的 worker 进程,保证 worker 进程数量不变,降低服务中断的概率。
- 可以充分利用多核 cpu 的优势,提升性能
- 处理信号、配置重新加载、升级时可以做到尽可能少或者不中断服务
2)、单进程模式
单进程模式下,nginx 启动后只有一个进程,nginx 的所有工作都由这个进程负责。该模式一般只在开发和调试阶段使用,生产环境下不会使用。
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个工作在应用层的局域网网络协议,数据传输时使用 UDP 不可靠传输协议工作,通常被用在大型的局域网络环境中。主要作用是集中的管理、分配网络资源,使网络环境中的主机能动态的获得 IP 地址、Gateway 地址、DNS 服务器地址等信息,并能够提升地址的使用率。