01网络服务基础
1、网络服务简介
1.1 网络服务
指一些在网络上运行的、提供特定功能的软件模块
○供客户端远程访问
○IP区分哪台服务器、port区分哪个服务
○基于特定的协议
如何访问到一个网站?
![[image-20230513090823291.png]]
1.2 网络服务内容
●动态主机配置协议(DHCP)
●域名解析服务(DNS)
●网站服务(Apache、Nginx、Tomcat)
●数据库服务(MySQL、Redis)
●开发环境( LAMP、LNMP )
●文件传输协议(ftp、nfs)
●数据备份服务(rsync)
●邮件服务(Extmail)
1.3 网络服务特点
●特点:原理性强、操作性强、熟练性强
●要求:
○对原理:总结自己的理解,可以使用图片、语音等
○对实验:整理详细的搭建手册(步骤+截图)
○对服务:相关实验至少做两遍(分系统、分参数)
2、CentOS版本及对比
2.1 本质区别
●内核版本(uname -r)
○CentOS6.x:2.6.x
○CentOS7.x:3.10.x
●发行版本(/etc/redhat-release)
●文件系统(/etc/fstab)
○CentOS6.x:ext4
○CentOS7.x:xfs
2.2 启动级别的区别
CentOS7的启动级别修改:
●修改:vim /etc/inittab #查看修改命令
○ systemctl set-default multi-user.target
●查看: systemctl get-default
○multi-user.target
2.3 服务设置的区别
设置主机名:
●设置主机名(永久)
○CentOS6.x:
■vim /etc/sysconfig/network -重启
○CentOS7.x:
■vim /etc/hostname -重启
■hostnamectl set-hostname 新主机名 -退出
默认服务:
●默认防火墙
○CentOS6.x:iptables
○CentOS7.x:firewalld、iptables
●默认数据库
○CentOS6.x:MySQL
○CentOS7.x:MariaDB
●网络服务
○CentOS6.x:network、NetworkManager
○CentOS7.x:network、NetworkManager
■NetworkManager同network服务,是管理网络连接的服务
■NetworkManager优先级更高
■NetworkManager在图形化安装时默认存在
■关闭NetworkManager服务不能再使用nmtui命令
服务管理
网络设置的区别
配置网卡:
●设置网卡信息
○图形界面:
■CentOS6.x:setup
■CentOS7.x:nmtui
○配置文件:
■/etc/sysconfig/network-scripts/ifcfg-网卡名
网卡配置文件:
●默认网卡名:
○CentOS6.x:eth0
○CentOS7.x:ens33
●装系统前添加的网卡名:
○CentOS6.x:eth1
○CentOS7.x:ens34
●装系统后添加的网卡名:
○CentOS6.x:eth1
○CentOS7.x:ens37、ens38…
3、常用网络管理命令
3.1 ping命令:
●ping:测试网络的连通性
●使用的是ICMP协议( Internet Control Message,因特网报文控制协议)
常见选项:
-c :指定ping的次数,默认无限次
-I:指定发送请求的网卡
-s :指定数据包的大小、默认字节,指定后加上8字节的ICMP头信息
-i :指定发送请求的间隔时间,默认0.6s
3.2 arp命令:
●ARP:Address Resolution Protocol,地址转换协议
●是一个链路层协议,工作在OSI 模型的第二层
●不能识别32位的IP地址,以48位以太网地址(MAC地址)传输以太网数据包
常见选项:
-a :查看所有mac地址
指定ip地址:查看某个ip的mac地址
traceroute命令:
●traceroute:查看本地主机与目标主机之间的路由路径
●使用的是ICMP协议( Internet Control Message,因特网报文控制协议)
选项:
-p:使用UDP端口进行测试,默认端口是33434
-q 4:指定测试时发送的数据包个数
-n:以IP方式进行连接测试,不用DNS解析
####3.3 netstat命令:
●**netstat****:**查看系统的网络连接状态等
选项:
-a:显示所有网络状态的连接
-n:以数字形式显示
-t:显示使用TCP协议的连接
-u:显示使用UDP协议的连接
-p:显示PID和进程名
-l:仅显示监听状态的连接
3.3 ss命令:
●**ss****:**查看系统的网络连接状态等,作用和参数同netstat
优点:
1.产生的并发连接数更多
2.直接查询统计信息,更快
3.在很多Linux系统中被支持、且默认安装
nmap命令:
3.4 nmap:
网络探测的扫描命令**
主要功能(先安装):
○主机发现:nmap 192.168.指定网段.1/24
○端口扫描(用SYN):nmap -sS 指定IP
○应用和版本侦查
○操作系统侦测
3.5 nslookup命令:
●nslookup:域名解析命令
○解析使用DNS服务器配置的正反向记录
○解析结果
■正向解析:nslookup 域名 =》 IP + 解析使用的DNS服务器
■逆向解析:nslookup IP地址 =》域名 + 解析使用的DNS服务器
进程命令
ps命令:侧重静态地查看系统中正在运行的进程
top命令:侧重动态地查看进程和服务器的健康状态
pstree命令:用于查看进程树
3.6 ps命令:
格式:ps [选项]
选项:aux 或 -ef
•a:显示当前终端的所有进程
•u:显示进程的归属用户
•x:显示没有控制终端的进程
•-e:显示所有进程
•-f:显示完整格式
3.7 抓包命令
tcpdump:
网络数据包捕获(抓包)工具
常见选项:
-c 数字:控制抓取包的数量、默认抓48字节
-i 网卡名:监听指定网卡的流量
-n:以IP形式显示,不进行域名反解
-A:以ASCII码的格式显示
port 端口:监听指定端口的报文
-v:显示抓取的报文的详细信息
-w:将抓取的数据写入文件
-r:查看使用-w写入的抓包文件
抓取ssh服务的数据包
tcpdump -nA port 22 -i ens33 #直接打印在控制台上
或: tcpdump -nA port 22 -i ens33 > 文件名 #重定向到数据文件里
抓取icmp协议的数据包
○tcpdump -nA -i ens33 icmp
或: tcpdump -nA -i ens33 icmp > 文件名
3.8 网关路由命令
●路由:
○不同网段的数据转发
○路由选择
●网关:
○不同网段的数据转发
○路由选择
○默认路由
○NAT转换
route -n:
查看系统中的路由表信息
●置默认路由(网关)
○临时设网关:
■添加:route add default gw 网关地址
■删除:route del default gw 网关地址
○永久设网关:
■vim /etc/sysconfig/network-script/ifcfg-网卡名
●硬路由:以特有的硬设备提供设定的路由器功能
○如:路由器
●软路由:指利用台式机或服务器配合软件达成路由器的功能
○如:虚拟机模拟路由
○条件:多网卡、具有转发功能 (不同网段的主机添加该网卡IP为路由)
实验
安装参数:
1.安装桌面版、双网卡(仅主机、NAT)
双网卡(仅主机模式、vmnet1、设置static的IP、开启;NAT模式、vmnet8网卡、设置dhcp自动获取IP、先关闭)
2.分配分区:/boot设600M,swap设2G,根分区剩余容量
CentOS7 安装后基础设置
#配置IP
$ vim /etc/sysconfig/network-scripts/ifcfg-ens33
NAME="ens33"
DEVICE="ens33"
ONBOOT=yes
NETBOOT=yes
UUID="2d2724fd-400e-4435-b33a-55692275fdf5"
IPV6INIT=yes
BOOTPROTO=static
IPADDR=192.168.66.x
PREFIX=24
TYPE=Ethernet
$ vim /etc/sysconfig/network-scripts/ifcfg-ens34
NAME="ens34"
DEVICE="ens34"
ONBOOT=no #默认不启动第二张网卡,需要时再开启
NETBOOT=yes
UUID="cfeb6289-f1f7-46b9-89f3-c730dff8edbd"
IPV6INIT=yes
BOOTPROTO=dhcp
TYPE=Ethernet
$ systemctl restart network
验证:ip addr
#注意:若是在装完系统添加网卡,默认不会生成配置文件,可以:
$ cd /etc/sysconfig/network-scripts
$ cp -a ifcfg-ens33 ifcfg-ens38
$ vim ifcfg-ens38
#修改NAME值为ens38
#修改DEVICE值为ens38
#修改UUID值,通过nmcli con查看,该命令需要开启NetworkManager;也可以去掉UUID
---------
#关NetworkManager
$ systemctl stop NetworkManager
$ systemctl disable NetworkManager
---------
#更改系统启动级别(配置好yum源)
$ systemctl get-default #查看默认启动级别
$ ll /lib/systemd/system/runlevel*.target #查看所有可用的启动级别
$ systemctl set-default multi-user.target #设置默认启动级别
---------
#配置光盘yum源
$ 虚拟机连接上DVD(已连接)
$ mkdir /mnt/cdrom #创建挂载点
$ vim /etc/fstab
/dev/sr0 /mnt/cdrom iso9660 defaults 0 0
$ mount -a #挂载在配置文件中存在,但实际没挂载的sr0
验证:mount
$ cd /etc/yum.repos.d/
$ mkdir bak
$ mv * bak/
$ mv bak/CentOS-Media.repo .
$ vim CentOS-Media.repo
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom/ #指明yum源所在位置
gpgcheck=1 #开启证书验证
enabled=1 #开启使用该文件配置的yum源
#切换yum源时
$ yum clean all #清yum缓存
$ yum makecache #重新构建元数据
验证:yum list
结果:列出包的来源是光盘源(c7-media)
#安装基础软件
$ yum -y install vim lrzsz gcc gcc-c++ tree
-----------
#关防火墙
$ iptables -L #查看防火墙规则
$ iptables -F #(镜像防火墙规则未清理)
$ yum -y install iptables-services
$ service iptables save
$ systemctl stop iptables
$ systemctl disable iptables
$ systemctl stop firewalld
$ systemctl disable firewalld
验证:systemctl status firewalld
#关SELinux
$ vim /etc/selinux/config
SELINUX=disabled
$ reboot #可最后重启
验证:getenforce
结果:Disabled
-----------------
#添加默认shell类型(C7.6)
$ vim /etc/shells
/sbin/nologin
-----
#优化SSH服务
$ vim /etc/ssh/sshd-config
UseDNS no
$ systemctl restart sshd
----
#重启、关机建快照
$ reboot
CentOS6 安装后基础设置
#配置IP
$ vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:86:9D:8E
TYPE=Ethernet
UUID=cd370987-136c-4f4b-924e-c9e571c27f7f
ONBOOT=yes #设置开机自启
NM_CONTROLLED=yes
BOOTPROTO=static #更改为static模式
IPADDR=192.168.66.13 #配置IP地址
NETMASK=255.255.255.0 #配置子网掩码
$ vim /etc/sysconfig/network-scripts/ifcfg-eth1 (NAT)
DEVICE=eth1
HWADDR=00:0C:29:86:9D:98 #复制文件注意修改MAC地址
TYPE=Ethernet
UUID=5bf59b4d-7af2-4633-9af0-7400d165265d
ONBOOT=no #默认不启动第二张网卡,需要时再开启
NM_CONTROLLED=yes
BOOTPROTO=dhcp
$ service network restart
验证:ip addr
#注意:若是在装完系统添加网卡,默认不会生成配置文件,可以:
$ cd /etc/sysconfig/network-scripts
$ cp -a ifcfg-eth0 ifcfg-eth1
$ vim ifcfg-eth1
#修改DEVICE值为eth1
#修改HWADDR值,通过ip addr查看
#修改UUID值,通过nmcli con查看,该命令需要开启NetworkManager;也可以去掉UUID
--------
#关闭NetworkManager服务
$ service NetworkManager stop
$ chkconfig NetworkManager off
验证:service NetworkManager status
-----------
#更改系统启动级别(5->3)
$ vim /etc/inittab
id:3:initdefault:
验证:runlevel
结果:N 3
-----------------
#配置光盘yum源
$ 虚拟机连接上DVD1(已连接)
$ mkdir /mnt/cdrom #创建挂载点
$ vim /etc/fstab
/dev/sr0 /mnt/cdrom iso9660 defaults 0 0
$ mount -a #挂载在配置文件中存在,但实际没挂载的sr0
验证:mount
$ cd /etc/yum.repos.d/
$ mkdir bak
$ mv * bak/
$ mv bak/CentOS-Media.repo .
$ vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom/ #指明yum源所在位置
gpgcheck=1 #开启证书验证
enabled=1 #开启使用该文件配置的yum源
#切换yum源时
$ yum clean all #清yum缓存
$ yum makecache #重新构建元数据
验证:yum list
结果:列出包的来源是光盘源(c6-media)
#安装基础软件
$ yum -y install vim lrzsz gcc gcc-c++ tree openssl openssl-devel
----------
#关防火墙
$ service iptables stop #关闭防火墙服务
$ iptables -F #清空防火墙规则
$ service iptables save #保存防火墙规则设置进配置文件
$ chkconfig iptables off
验证:service iptables status
结果:iptables:未运行防火墙
#关SELinux
$ vim /etc/selinux/config
SELINUX=disabled
$ reboot #需要重启生效,但可最后重启
验证:getenforce
结果:Disabled
--------
#优化SSH服务
$ vim /etc/ssh/sshd-config
UseDNS no
$ systemctl restart sshd
----
#重启、关机建快照
$ reboot
虚拟主机模拟路由器
网络设置
VM1:192.168.66.13(vmnet1)
VM2:192.168.88.23(vmnet2)
模拟路由器:192.168.66.14(vmnet1)、192.168.88.14(vmnet2)
vm1
#设置网卡为vmnet1
$ vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.66.13
NETMASK=255.255.255.0
#添加模拟路由上同网段的IP、为默认网关
GATEWAY=192.168.66.14
$ service network restart 或 $ systemctl restart network
vm2
#设置网卡为vmnet2
$ vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=192.168.88.23
PREFIX=24
#添加模拟路由上同网段的IP、为默认网关
GATEWAY=192.168.88.14
$ systemctl restart network
模拟路由器
#设置双网卡为vmnet1、vmnet2(网段在虚拟网络编辑器中确认)
$ vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.66.14
NETMASK=255.255.255.0
$ vim /etc/sysconfig/network-scripts/ifcfg-eth1
IPADDR=192.168.88.14
NETMASK=255.255.255.0
$ systemctl restart network
#开启路由转发
#CentOS6 或 Centos7:
$ vim /etc/sysctl.conf
#修改0为1
net.ipv4.ip_forward=1
#验证开启成功
$ sysctl -p
------------------------------
#CentOS7标准化:
$ vim /usr/lib/sysctl.d/50-default.conf
#添加下面两行设置
net.ipv4.conf.default.ip_forward = 1
net.ipv4.conf.all.ip_forward = 1
#设置生效
$ reboot
测试
vm1 能ping通 vm2